以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  公式模型编写问题提交  (http://222.73.7.161/bbs/list.asp?boardid=4)
----  [求助]关于交易函数Nextopen的使用  (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=182265)

--  作者:Ritter
--  发布时间:2020/9/21 9:57:45
--  [求助]关于交易函数Nextopen的使用

请教老师:

      将交易函数MARKETR改为NEXTOPEN后,大部分的交易信号都是在一根Bar上显示开平信号,求助这个该如何解决?

        

 

 

 

                   谢谢!!

 


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20200921094034.png
图片点击可在新窗口打开查看

--  作者:FireScript
--  发布时间:2020/9/21 10:12:35
--  
贴下代码,工作人员本地测试看下。
--  作者:Ritter
--  发布时间:2020/9/21 10:16:39
--  

IF (KD3 OR KD4 OR KD5 OR KD6) AND KD2 THEN BEGIN
SELLSHORT(1,0,NEXTOPEN);
BUY(HOLDING=0,CW%,NEXTOPEN);
END

IF (KK3 OR KK4 OR KK5 OR KK6 ) AND KK2  THEN BEGIN
SELL(1,0,NEXTOPEN);
BUYSHORT(HOLDING=0,CW%,NEXTOPEN);
END

zg:=hhv(h,enterbars+1);
CS:=LLV(L,ENTERBARS+1);

IF (ZG-AVGENTERPRICE)/AVGENTERPRICE>=ZY*0.2 AND C<AVGENTERPRICE THEN BEGIN
 SELL(1,0,NEXTOPEN);
END
IF  (AVGENTERPRICE-CS)/CS>=ZY*0.2  AND  C>AVGENTERPRICE THEN BEGIN
 SELLSHORT(1,0,NEXTOPEN);
END

if (zg-avgenterprice)/avgenterprice>=ZY*0.4 and (C-avgenterprice)<=(zg-avgenterprice)*0.5 then begin
   sell(1,0,NEXTOPEN);  
END
 if (avgenterprice-CS)/CS>=ZY*0.4 and (avgenterprice-C)<=(avgenterprice-CS)*0.5 then begin 
   sellshort(1,0,NEXTOPEN);       
End

if (zg-avgenterprice)/avgenterprice>=ZY*0.6 and (C-avgenterprice)<=(zg-avgenterprice)*0.6 then begin
   sell(1,0,NEXTOPEN);  
END
 if (avgenterprice-CS)/CS>=ZY*0.6 and (avgenterprice-C)<=(avgenterprice-CS)*0.6 then begin 
   sellshort(1,0,NEXTOPEN);     
End

if (zg-avgenterprice)/avgenterprice>=ZY*0.8 and (C-avgenterprice)<=(zg-avgenterprice)*0.7 then begin
   sell(1,0,NEXTOPEN);  
END
 
if (avgenterprice-CS)/CS>=ZY*0.8 and (avgenterprice-C)<=(avgenterprice-CS)*0.7 then begin 
   sellshort(1,0,NEXTOPEN);     
End

if (zg-avgenterprice)/avgenterprice>=ZY and (C-avgenterprice)<=(zg-avgenterprice)*0.8 then begin
   sell(1,0,NEXTOPEN);  
END
 
if (avgenterprice-CS)/CS>=ZY and (avgenterprice-C)<=(avgenterprice-CS)*0.8 then begin 
   sellshort(1,0,NEXTOPEN);    
End


多单止损:=sell(avgenterprice-c>c*ZS and holding>0 ,0,NEXTOPEN);
空单止损:=sellshort(c-avgenterprice>c*ZS and holding<0 ,0 ,NEXTOPEN);


--  作者:FireScript
--  发布时间:2020/9/21 10:26:42
--  
 你这个影响到了avgenterprice的值了。
这2个指令下,均价返回值有差异。
NEXTOPEN:
交易方式控制符:交易评测时按照次周期开盘价操作,处于图表交易时按照实际交易市价操作
marketr:
交易方式控制符:交易评测时按照本周期收盘价操作,处于图表交易时按照实际交易市价操作

所以导致你信号位置都变了。

--  作者:Ritter
--  发布时间:2020/9/21 10:36:40
--  
信号位置改变我可以理解,我就是想要对比两个函数实际应用的差异,但是,现在出现的情况应该是异常了,无法完成回测和正常交易了,我应该如何解决呢?
--  作者:FireScript
--  发布时间:2020/9/21 11:07:45
--  
 这2个函数实际交易的时候都是市价,他们在下单上是没有区别的。 在你这个指标上目前造成的影响主要也是因为用到了avgenterprice函数,从而间接影响到了信号。如果说你下单就是纯粹的ma的金叉死叉来控制,那么这2个实际交易下单时候毫无区别。只在回测上有些差异。   


--  作者:Ritter
--  发布时间:2020/9/21 11:20:37
--  

但是,现在的情况完全不是一回事儿啊


图片点击可在新窗口打开查看此主题相关图片如下:marketr.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:nextopen.png
图片点击可在新窗口打开查看


--  作者:Ritter
--  发布时间:2020/9/21 11:24:37
--  

使用MARKETR,策略可以正常的止盈止损,但是更改为NEXTOPEN,策略根本就没有止盈止损的机会,同时显示开平仓信号,如何正常交易呢?


--  作者:FireScript
--  发布时间:2020/9/21 12:17:41
--  
你自己的思路就是会受到这个avgenterprice 变化的影响,你使用不同指令导致了avgenterprice读取不一样。
又想用这个NEXTOPEN又想避开它对avgenterprice的影响肯定是难2全的。现在你只能试着把止盈止损的平仓语句全部放到开仓语句前面试下,如果还不行就没办法了。

--  作者:Ritter
--  发布时间:2020/9/21 12:50:16
--  
可行的!谢谢啦!!