//中间变量
MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,10);
VAR1:=(CLOSE+HIGH+LOW)/3;
VAR2:=HHV(HIGH,10);
当MA1向上金叉MA2,并且VAR1>MA1,并且VAR1>VAR2.当同时满足以上三个条件时,在下一个周期开盘价开多2手;
当MA1向下死叉MA2,并且VAR1<MA1,并且VAR1<VAR2.当同时满足以上三个条件时,在下一个周期开盘价开空2手;
请问老师们这个交易语句要怎么写,谢谢
MA1:=MA(CLOSE,5);
MA2:=MA(CLOSE,10);
VAR1:=(CLOSE+HIGH+LOW)/3;
VAR2:=HHV(HIGH,10);
buycond:cross(ma1,ma2) and var1>ma1 and var1>var2;
sellcond:cross(ma2,ma1) and var1<ma1 and var1<var2;
if buycond then
begin
sellshort(holding<0,holding,market);
buy(holding=0,2,market);
end
if sellcond then
begin
sell(holding>0,holding,market);
buyshort(holding=0,2,market);
end
运行模式选择走完K线就可以了。
老师我再问一下,我把这公式引用到图表上,图表上怎么没信号,谢谢
不满足开平条件,自然没有信号输出,你自己扩充k线数量看一下。
上面的代码符合你一楼形容的需求,建议你把条件的:=改成:输出自己的条件,分析下各个条件需求。分析下逻辑上的限制问题
好的,谢谢老师,还有个问题想请教一下,应该怎么修改,公式如下:
MA1:=MA(CLOSE,5);MA2:=MA(CLOSE,10);VAR1:=(CLOSE+HIGH+LOW)/3;VAR2:=HHV(HIGH,10);buycond:cross(ma1,ma2) and var1>ma1 and var1>var2;sellcond:cross(ma2,ma1) and var1<ma1 and var1<var2;if buycond then beginsellshort(holding<0,holding,market);buy(holding=0,2,market); endif sellcond then begin sell(holding>0,holding,market);buyshort(holding=0,2,market);end
当满足开多条件开多两手,在接下来的运行过程中,如再有满足开多条件的,便再加仓2手,只要每次有信号都加仓2手,直到平多开空离场. 开空也一样,开空后只要有符合条件的也都加仓2手,直到平空离场,
这两个加仓操作应该怎么添加,谢谢老师帮忙修改一下. |
if buycond then beginsellshort(holding<0,holding,market);buy(1,2,market); endif sellcond then begin sell(holding>0,holding,market);buyshort(1,2,market);end
开仓条件里面改下就可以了。现在只要触发开仓条件就会开2手
[此贴子已经被作者于2018/6/12 10:47:37编辑过]