 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
VARIABLE:A=0;
VARIABLE:止盈止损计数=0;
VARIABLE:上次交易结果=0; // 0 表示初始状态,1 表示止盈,-1 表示止损
// 计算MA10日均线
MA10:MA(CLOSE,10);
// 判断开仓条件
CONDBUY:=MA10<CLOSE; // 10日均线在K线下方,做多
CONDSELL:=MA10>CLOSE; // 10日均线在K线上方,做空
// 平仓逻辑
IF (c-TAVGENTERPRICEEX2(ZH1,PZ1,0)>6*MINDIFF OR TAVGENTERPRICEEX2(ZH1,PZ1,0)-C>6*MINDIFF) THEN BEGIN
TSELL(1,TBUYHOLDINGEX(ZH1,PZ1,0),MKT,0,0,ZH1,PZ1);
止盈止损计数:=止盈止损计数+1; // 记录止盈止损次数
IF c-TAVGENTERPRICEEX2(ZH1,PZ1,0)>6*MINDIFF THEN 上次交易结果:=1; // 止盈
ELSE 上次交易结果:=-1; // 止损
END
// 开仓逻辑
IF (CONDBUY OR CONDSELL) THEN BEGIN
IF TBUYHOLDINGEX(ZH1,PZ1,0)=0 THEN BEGIN // 如果空仓,则开仓
IF 上次交易结果=1 THEN BEGIN // 如果上次止盈,则买入1手
TBUY(1,1,LMT,CLOSE,0,ZH1,PZ1);
END ELSE IF 上次交易结果=-1 THEN BEGIN // 如果上次止损,则买入2手
TBUY(1,2,LMT,CLOSE,0,ZH1,PZ1);
END ELSE BEGIN // 初始状态,买入1手
TBUY(1,1,LMT,CLOSE,0,ZH1,PZ1);
END;
END;
END
// 加减仓逻辑
IF TBUYHOLDINGEX(ZH1,PZ1,0)>0 THEN BEGIN
IF 上次交易结果=1 AND TBUYHOLDINGEX(ZH1,PZ1,0)=2 THEN BEGIN // 如果止盈且持仓为2手,则平掉1手
TSELL(1,TBUYHOLDINGEX(ZH1,PZ1,0),MKT,0,ZH1,PZ1);
END;
IF (止盈止损计数 MOD 2) = 0 AND 上次交易结果=-1 THEN BEGIN // 如果止盈止损次数为偶数且上次止损,则平掉所有仓位
TSELL(TBUYHOLDINGEX(ZH1,PZ1,0)>0,TBUYHOLDINGEX(ZH1,PZ1,0),MKT,0,ZH1,PZ1);
END;
END
|
|