以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://www.weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://www.weistock.com/bbs/list.asp?boardid=2)
----  [求助]请教王锋  (http://www.weistock.com/bbs/dispbbs.asp?boardid=2&id=154389)

--  作者:qwer123
--  发布时间:2017/5/31 9:30:28
--  [求助]请教王锋
这是一个图表交易程序:

ma5:=ma(c,5);
ma10:=ma(c,10);

if cross(ma5,ma10) then
begin
sellshort(1,abs(holding),limitr,c);
buy(holding=0,1,limitr,c);
end
if cross(ma10,ma5) then
begin
sell(1,holding,limitr,c);
buyshort(holding=0,1,limitr.c);
end

正常情况下,如果改为后台应该是这样的:

ma5:=ma(c,5);
ma10:=ma(c,10);

if tholding<=0 and cross(ma5,ma10) then
begin
tsellshort(1,1,lmt,c);
tbuy(1,1,lmt,c);
end
if tholding>=0 and cross(ma10,ma5) then
begin
tsell(1,1,lmt,c);
tbuyshort(1,1,lmt.c);
end

我为了取得这个程序的理论持仓并作为交易条件。后台程序变成这样:
ma5:=ma(c,5);
ma10:=ma(c,10);

if cross(ma5,ma10) then
begin
tsellshort(1,abs(holding),lmt,c);
sellshort(1,abs(holding),limitr,c);
tbuy(holding=0,1,lmt,c);
buy(holding=0,1,limitr,c);
end
if cross(ma10,ma5) then
begin
tsell(1,holding,lmt,c);
sell(1,holding,limitr,c);
tbuyshort(holding=0,1,lmt.c);
buyshort(holding=0,1,limitr,c);
end

这样在后台程序中同时使用图表函数holding,会不会导致其他我没法考虑到的问题。当然在后台启动之前,我会人工调整理论持仓和实际持仓一致。

--  作者:yukizzc
--  发布时间:2017/5/31 9:36:04
--  
if cross(ma5,ma10) and holding<0 then
begin
tsellshort(1,abs(holding),lmt,c);
sellshort(1,abs(holding),limitr,c);
tbuy(holding=0,1,lmt,c);
buy(holding=0,1,limitr,c);
end
 
条件加一个holding<0以及开多时候加个holding>0条件

--  作者:qwer123
--  发布时间:2017/5/31 9:41:26
--  
好的,那么holding 用于后台应该也没有问题吧?
--  作者:yukizzc
--  发布时间:2017/5/31 9:44:39
--  

没有问题的, 注意下后台有参与计算k数量,这个和图表上参与计算的数量是一个道理

对于一些跨日策略,你的样本数量不同可能会造成当前holding不同


--  作者:qwer123
--  发布时间:2017/5/31 10:05:27
--  
好的,谢谢!