 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
// 参数设置
INPUT:A_THRESHOLD(30,1,100,1); // A指标阈值
INPUT:B_THRESHOLD(30,1,100,1); // B指标阈值
// 判断是否为收盘K线(2300、1130、1500)
IS_CLOSE_K := TIME = 230000 OR TIME = 113000 OR TIME = 150000;
// 开仓信号
BUY_SIGNAL := A > A_THRESHOLD;
SELL_SIGNAL := B > B_THRESHOLD;
// 同根K线同时满足时的处理
IF BUY_SIGNAL AND SELL_SIGNAL THEN BEGIN
IF A > B THEN BEGIN
BUY_SIGNAL := 1;
SELL_SIGNAL := 0;
END ELSE BEGIN
BUY_SIGNAL := 0;
SELL_SIGNAL := 1;
END;
END;
// 交易执行逻辑
// 强制平仓
IF IS_CLOSE_K AND HOLDING > 0 THEN BEGIN
SELL(1, HOLDING, MARKET);
END;
IF IS_CLOSE_K AND HOLDING < 0 THEN BEGIN
SELLSHORT(1, HOLDING, MARKET);
END;
// 正常开平仓逻辑
IF HOLDING = 0 THEN BEGIN
// 无持仓时开仓
IF BUY_SIGNAL THEN BEGIN
BUY(1, 1, MARKET);
END;
IF SELL_SIGNAL THEN BEGIN
BUYSHORT(1, 1, MARKET);
END;
END ELSE IF HOLDING > 0 THEN BEGIN
// 持有多单时平多开空
IF SELL_SIGNAL THEN BEGIN
SELL(1, HOLDING, MARKET);
BUYSHORT(1, 1, MARKET);
END;
END ELSE IF HOLDING < 0 THEN BEGIN
// 持有空单时平空开多
IF BUY_SIGNAL THEN BEGIN
SELLSHORT(1, HOLDING, MARKET);
BUY(1, 1, MARKET);
END;
END;
|
|