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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 能否不用ignorecheckprice函数实现ignorecheckprice的功能

   

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


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

主题:能否不用ignorecheckprice函数实现ignorecheckprice的功能

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


加好友 发短信
等级:论坛游侠 帖子:388 积分:0 威望:0 精华:0 注册:2014/11/22 18:13:16
能否不用ignorecheckprice函数实现ignorecheckprice的功能  发帖心情 Post By:2021/4/20 9:15:37    Post IP:183.6.175.114[只看该作者]

如题:
事实:在使用限价时,当策略发出信号但是有时限价在当根K线价格波动范围。这时必须使用ignorecheckprice函数保证发出信号,等待以后K线满足价格条件成交。
目的:能否不用ignorecheckprice函数实现ignorecheckprice的功能。保证在随后K线价格满足时成交
MA1:=REF(MA((HIGH+LOW+CLOSE)/3,AVGLENGTH),1);//定义MA1
UPPERBAND:=MA1+REF(MA(TR,40),1);//上轨
LOWERBAND:=MA1-REF(MA(TR,40),1);//下轨
ENTRYLONGCOND:=MA1>REF(MA1,1) ;//开多条件
EXITLONGCOND:=HIGH>=MA1;//平空条件
//交易系统
KDL:MAX(OPEN,UPPERBAND),COLORMAGENTA;
KKL:MIN(OPEN,LOWERBAND)-1*MINDIFF,COLORCYAN;
PKL:MIN(OPEN,MA1)+1*MINDIFF,COLORGREEN;
PDL:MAX(OPEN,MA1)-1*MINDIFF,COLORRED;
IF HOLDING=0 THEN BEGIN //若持仓为0
 IF ENTRYLONGCOND THEN //且满足开多条件
  BUY(between(KDL,L,H),手数,LIMIT,KDL),IGNORECHECKPRICE;//
  KPJ:=KDL;   
END
IF HOLDING>0 THEN BEGIN//若持有空单
 IF EXITLONGCOND THEN//且满足平空条件
  SELL(between(PDL,L,H),HOLDING,LIMIT,PDL),IGNORECHECKPRICE;//
  KPJ:=PDL; 
END
我的方法如下:
VARIABLE:KPJ=0,mKDPK=0,mKKPD=0,mKDL=0,mPDL=0,  mHolding=0;
MA1:=REF(MA((HIGH+LOW+CLOSE)/3,AVGLENGTH),1);//定义MA1
UPPERBAND:=MA1+REF(MA(TR,40),1);//上轨
LOWERBAND:=MA1-REF(MA(TR,40),1);//下轨
ENTRYLONGCOND:=MA1>REF(MA1,1) ;//开多条件
EXITLONGCOND:=HIGH>=MA1;//平空条件
//交易系统
KDL:MAX(OPEN,UPPERBAND),COLORMAGENTA;
KKL:MIN(OPEN,LOWERBAND)-1*MINDIFF,COLORCYAN;
PKL:MIN(OPEN,MA1)+1*MINDIFF,COLORGREEN;
PDL:MAX(OPEN,MA1)-1*MINDIFF,COLORRED;
IF HOLDING=0 and ENTRYLONGCOND THEN BEGIN //若持仓为0
  mKKPD:=0;
  mKDPK:=1;  
  mKDL:=KDL;  
END
IF HOLDING>0 and EXITLONGCOND THEN BEGIN//若持有空单
  mKKPD:=1;
  mKDPK:=0;  
  PDL:=PDL;   
END
IF HOLDING=0 and mKDPK=1 and between(mKDL,L,H) THEN BEGIN //若持仓为0
  BUY(1,手数,LIMIT,mKDL);//开多单  KPJ:=MAX(OPEN,UPPERBAND);
  mHolding:=1;      
END
IF HOLDING>0 and mKKPD=1 and between(mPDL,L,H) THEN BEGIN//若持有空单
  SELL(1,HOLDING,LIMIT,mPDL);//平空单
  mHolding:=0;    
END
问题:我的错误在哪?谢谢老师

 回到顶部
总数 18 1 2 下一页