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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 平仓出场问题

   

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


  共有3564人关注过本帖树形打印复制链接

主题:平仓出场问题

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/8/2 16:36:12    Post IP:180.169.30.6[显示全部帖子]

 //上次平仓前一个K的持仓小于0
//EXITBARS是平仓历时,但是平仓当根K返回值是-1,所以判断EXITBARS+1情况
cond: ((ref(holding,EXITBARS+2)<0 and EXITBARS+1>=3 ) or ref(holding,EXITBARS+2)>0)and holding=0;

看下这个是否满足。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/8/2 17:18:52    Post IP:180.169.30.6[显示全部帖子]

 zs:(TYPE(1)=3 or (TYPE(1)=4 and TYPEBAR(1,4)>=3)) and holding=0;
 这样呢?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/8/3 8:51:59    Post IP:180.169.30.6[显示全部帖子]

 那你需要统计完整的开空条件,那个条件触发的时候 一定是能触发开空下单就行了。

另外4楼的代码其实是可以的,至多应用到你具体代码上需要微调下。你可以单独输出下TYPE, TYPEBAR的返回值进行一些调试。我这里 距离3个K的统计是不包括平空K本身的。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/8/3 10:48:02    Post IP:180.169.30.6[显示全部帖子]

 diff := ema( close,12 ) - ema( close,26 );
dea := ema( diff,9 ) ;            
macd := 2 * ( diff - dea ) ;       
      
                      
Buycondition:ref( cross( diff,dea ),1 ),NODRAW ;                          
Sellcondition:ref( cross( dea,diff ),1 ),NODRAW;             
if ref( cross( dea,diff ),1 ) then sell( holding > 0, holding , limitr, open - 1 * mindiff ), ignorecheckprice ;
if  ref( cross( diff,dea ),1 ) then sellshort( holding < 0, holding , limitr, open + 1 * mindiff ), ignorecheckprice ;     
            
if holding = 0 and  Buycondition then buy( 1, 1, limitr, open + 1 * mindiff ),ignorecheckprice ;

zs:(TYPE(1)=2 or (TYPE(1)=4 and TYPEBAR(1,4)>=3)),NODRAW;   //调整下位置,因为你这个有很多是同个K平多开空的,因此这行代码需要在这里,才能正确判断
if holding = 0 and Sellcondition and zs  then  buyshort( 1, 1, limitr, open - 1 * mindiff ), ignorecheckprice ;         


此外你这种上下穿作为开平条件的 平多开空或者平空开多很多都是一个K上触发的,你希望的至少三个K之后开空,好像是无法触发的。因为开空触发的那个必然也是平多触发的,按照你之前给的思路,那也就直接开空了。


看下上面的,之前是有个地方写错了,函数参数写错了。另外你原先把zs直接放到Sellcondition里面是不行的,这个也要注意下。
[此贴子已经被作者于2018/8/3 10:48:49编辑过]


命数如织,当如磐石。
 回到顶部