欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 能不能做到?

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有12833人关注过本帖平板打印复制链接

主题:能不能做到?

帅哥哟,离线,有人找我吗?
zwdqx
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:黑侠 帖子:749 积分:0 威望:0 精华:0 注册:2016/9/4 18:09:26
  发帖心情 Post By:2017/8/8 5:37:05    Post IP:59.60.12.226[只看该作者]

温老师:你好!
1、你给我的49楼代码中  if 开仓日期<>0 and week and  DATEDIFF(开仓日期,date)>5-week  then begin  
    开仓日期<>0 作用是判断本周有开仓记录,  DATEDIFF(开仓日期,date)>5-week 作用是本周走完,那  week  的作用是什么? 感觉少个数学判断条件。

2、我自己加了个移动止损,但输出好像有问题,不知问题出在什么地方?请帮我看一下
以下是策略:
macd00z:=stkindi('','macd.macd1',0,7);
macd01z:=stkindi('','macd.macd1',0,7,-1);
macd02z:=stkindi('','macd.macd1',0,7,-2);

debugfile('e:\test_sh.txt', STKLABEL +'位置1--引用变量输出: '+' MACD00Z= ['+NUMTOSTR(macd00z,6)+' ] macd01z=[ '+NUMTOSTR(macd01z,6)+' ] macd02z= [ '+NUMTOSTR(macd02z,6)+' ]',0);
debugfile('e:\test_sh.txt', STKLABEL +'位置2--买入条件触发状态:**['+NUMTOSTR((GETINIFILE( 'C:\buy_date.INI','SETTING',STKLABEL+'DATE')=0 and macd00z>macd01z and macd01z<macd02z  and  tbuyholding(1)=0),0)+']** 详细条件输出: buy_date.date= ['+NUMTOSTR(GETINIFILE( 'C:\buy_date.INI','SETTING',STKLABEL+'DATE'),0)+' ]  tbuyholding(1)=[ '+NUMTOSTR(tbuyholding(1),0)+']', 0 );
if GETINIFILE( 'C:\buy_date.INI','SETTING',STKLABEL+'DATE')=0 and macd00z>macd01z and macd01z<macd02z  and  tbuyholding(1)=0  then begin
  tbuy(1,10000/close,MKT); 
  WRITEINIFILE('C:\buy_date.INI','SETTING',STKLABEL+'DATE',date);//写文件记录开仓日期。
 WRITEINIFILE('C:\buy_date.INI','SETTING',STKLABEL+'WEEK',WEEKDAY);
end
debugfile('e:\test_sh.txt', STKLABEL +'位置3--卖出条件触发状态 :**['+NUMTOSTR((macd00z<macd01z and tbuyholding(0)>0),0)+']** 详细条件输出: buy_date.date= ['+NUMTOSTR( GETINIFILE('C:\buy_date.INI','SETTING',STKLABEL+'DATE'),0)+' ] tbuyholding(1)=[ '+NUMTOSTR(tbuyholding(1),0)+']', 0 );
if macd00z<macd01z and tbuyholding(0)>0 then  BEGIN
 tsell(1,0,mkt);
 WRITEINIFILE('C:\buy_date.INI','SETTING',STKLABEL+'DATE',0);//平仓时将其置为0 
 WRITEINIFILE('C:\buy_date.INI','SETTING',STKLABEL+'WEEK',0);
debugfile('e:\test_sh.txt', STKLABEL +'位置3--探针输出: buy_date.date= ['+NUMTOSTR(GETINIFILE('C:\buy_date.INI','SETTING',STKLABEL+'DATE'),0)+']', 0 );
end
 
开仓日期:GETINIFILE( 'C:\buy_date.INI','SETTING',STKLABEL+'DATE');
week:GETINIFILE( 'C:\buy_date.INI','SETTING',STKLABEL+'week');
debugfile('e:\test_sh.txt', STKLABEL +'位置4--时间控制变量输出:**['+NUMTOSTR((DATEDIFF(开仓日期,date)>5-week),0)+']**  开仓日期= ['+NUMTOSTR( 开仓日期,0)+' ] week=[ '+NUMTOSTR(week,0)+' ] DATEDIFF(开仓日期,date)= [ '+NUMTOSTR(DATEDIFF(开仓日期,date),0)+' ]   5-week= [ '+NUMTOSTR(5-week,0)+'  ]'  ,0  );
if 开仓日期<>0 and week and  DATEDIFF(开仓日期,date)>5-week  then begin
 WRITEINIFILE('C:\buy_date.INI','SETTING',STKLABEL+'DATE',0);//下周第一个交易日时将其置为0,
 WRITEINIFILE('C:\buy_date.INI','SETTING',STKLABEL+'WEEK',0);
debugfile('e:\test_sh.txt', STKLABEL +'位置4--探针输出: buy_date.date= ['+NUMTOSTR(GETINIFILE( 'C:\buy_date.INI','SETTING',STKLABEL+'DATE'),0)+']', 0 );
 end
//将A赋值为1,表示当前有持仓
IF TBUYHOLDINGEX('','',0 )>0 AND EXTGBDATA('a')=0 THEN BEGIN
EXTGBDATASET('a',1 );
END
//使A始终表示监控开始后的最高价
IF DYNAINFO(7)>EXTGBDATA('a') and EXTGBDATA('a')>0 THEN BEGIN
EXTGBDATASET('a',DYNAINFO(7));
END
//发现价格回落止损,并将A赋值为0表示移动止损动作完成
IF EXTGBDATA('a')*0.97>DYNAINFO(7) and EXTGBDATA('a')>0 THEN BEGIN
TSELL(1,0,MKT);
debugfile('e:\test_sh.txt', STKLABEL +'位置5--移动止损触发状态 :**['+NUMTOSTR((EXTGBDATA('a')*0.97>DYNAINFO(7) and EXTGBDATA('a')>0),0)+']** 详细条件输出:止损价= ['+NUMTOSTR(EXTGBDATA('a')*0.97,6)+'] 最新价=[ '+NUMTOSTR(DYNAINFO(7),6)+']', 0 );
EXTGBDATASET('a',0);
END

以下是输出:

2017-08-07 09:35:49.054    002643位置1--引用变量输出:  MACD00Z= [-0.275691 ] macd01z=[ -0.185874 ] macd02z= [ -0.107319 ]

2017-08-07 09:35:49.054    002643位置2--买入条件触发状态:**[0]** 详细条件输出: buy_date.date= [0 ]  tbuyholding(1)=[ 0]

2017-08-07 09:35:49.054    002643位置3--卖出条件触发状态 :**[0]** 详细条件输出: buy_date.date= [0 ] tbuyholding(1)=[ 0]

2017-08-07 09:35:49.054    002643位置4--时间控制变量输出:**[0]**  开仓日期= [0 ] week=[ 0 ] DATEDIFF(开仓日期,date)= [ 0 ]   5-week= [ 5  ]

2017-08-07 09:35:49.054    002643位置5--移动止损触发状态 :**[1]** 详细条件输出:止损价= [17.857700] 最新价=[ 12.940000]




感觉输出的所有满足条件的止损价都有问题,不知问题出在什么地方?


 回到顶部
总数 77 1 2 3 4 5 6 7 8 下一页