我是新手,请老师编写一程序,当股指指数周线macd为正,sar为红点,ma5金叉ma10时,在股指连续上5分钟线ma5
金叉ma10时开多1手股指
还有个问题问老师,我昨天第一次编了个程序做白银夜盘的多单和多平,开多当时是根据信号手动的,然后就睡觉了,今天早上看到平多信号了,但程序没操作,程序如下M1:EMA(CLOSE,N1);
M2:EMA(CLOSE,N2);
平空开多条件 :=CROSS(M1,M2);
平多开空条件 :=CROSS(M2,M1);
BUY(平空开多条件 and HOLDING=0,1,market);//开多操作
SELL(平多开空条件 and HOLDING>0,HOLDING,market); //平多操作
ASSET,NOAXIS,COLORRED;
请老师指教,谢谢
没有操作有很多种原因,最简单的查询方法,就是看 查看 交易状态

此主题相关图片如下:1.png
首先,系统自带的SAR公式要改成这样
sar1:SAR(P,STEP,MAXP),CIRCLEDOT
此主题相关图片如下:1.png

然后补充一下IF13的日线数据,方法是: 工具 数据补充;
然后交易策略这样写,使用在股指连续5分钟周期上,注意这个公式只写了开仓,平仓要自行添加代码,不然就会只有一个开仓信号:
l_if13:=callstock('if13',vtlow,7);
macd_if13:=stkindi('if13','macd.macd1',0,7);
sar_if13:=stkindi('if13','sar.sar1',0,7);
ma5_if13:=stkindi('if13','ma.ma1',0,7);
ma10_if13:=stkindi('if13','ma.ma2',0,7);
cond_macd:=macd_if13>0;
cond_sar:=sar_if13<l_if13;
cond_ma:=cross(ma5_if13,ma10_if13);
ma5:ma(c,5);
ma10:ma(c,10);
if cond_macd and cond_sar and cond_ma and cross(ma5,ma10) then buy(holding=0,1,market);
老师,我只加了最后一句死叉平仓,怎么啥都不显示,我初学两天,麻烦您指教
l_if13:=callstock('if13',vtlow,7);
macd_if13:=stkindi('if13','macd.macd1',0,7);
sar_if13:=stkindi('if13','sar.sar1',0,7);
ma5_if13:=stkindi('if13','ma.ma1',0,7);
ma10_if13:=stkindi('if13','ma.ma2',0,7);
cond_macd:=macd_if13>0;
cond_sar:=sar_if13<l_if13;
cond_ma:=cross(ma5_if13,ma10_if13);
ma5:ma(c,5);
ma10:ma(c,10);
if cond_macd and cond_sar and cond_ma and cross(ma5,ma10) then buy(holding=0,1,market);
sell(cross(ma10,ma5) and HOLDING>0,HOLDING,market);
另外我早晨让程序执行平仓时,执行market成交,只有部分成交,我又撤单再发命令,如何确保自动交易时全部成交
因为你用的是周线的数据
周线数据在一个礼拜的5分钟都是同一个数值,所以一旦条件比较难以实现,那么你的条件永远满足不了