
等级: 新手上路
- 注册:
- 2025-4-22
- 曾用名:
|
大咖帮我看一下这段测试的策略代码,怎么开平仓的顺序不对啊?
策略意图是先平仓,后开仓。逻辑上很简单,先平仓以后,才能腾出资金,更便于开仓啊。但是实际运行中,在上面的先平仓代码,执行起来反而是在先开仓之后。
是不是还有别的地方不对啊?
附这段完整策略代码:
//MACD指标的后台程序化——MACD平仓反手
input:S(12,5,40,4),P(26,20,100,8),M(9,2,60,6); //参数
//中间变量:
DIFF:=EMA(close,S)-EMA(close,P);
DEA:=EMA(DIFF,M);
MACD1:=2*(DIFF-DEA),COLORSTICK; //彩色颜色
//指标条件:
jincha:=cross(DIFF,DEA); //平空开多条件
sicha:=cross(DEA,DIFF); //平多开空条件
tbuyh:=tbuyholding(1); //多头持仓
tsellh:=tsellholding(1); //空头持仓
//开仓语句:
if jincha and thuyh=0 tbuy(1,1,mkt); //开多
if sicha and tsellh=0 tbuyshort(1,1,mkt); //开空
if jincha and tsell<0 then begin //检查有空头持仓
tsellshort(1,1,mkt); //先平空
tbuy(1,1,mkt); //开多
end
if sicha and tbuyh>0 then begin //检查有多头持仓
tsell(1,1,mkt); //平多
tbuyshort(1,1,mkt); //开空
end
——就是上述代码,拜托了!
|
|