 
等级: 超级版主
- 注册:
- 2021-5-18
- 曾用名:
|
INPUT:手数(1,1,10000,1); // 开仓手数参数
// 计算 MA4 和 MA12 均线
MA4 := MA(CLOSE, 4);
MA12 := MA(CLOSE, 12);
// 绘制 MA4 均线,始终绘制,颜色为白色,线宽为 2,线条样式为实线
DRAWLINE(1, MA4, COLORWHITE, 2, 1);
// 绘制 MA12 均线,始终绘制,颜色为黄色,线宽为 2,线条样式为实线
DRAWLINE(1, MA12, COLORYELLOW, 2, 1);
// 计算 MACD 指标
DIFF := EMA(CLOSE, 12) - EMA(CLOSE, 26);
DEA := EMA(DIFF, 9);
MACD := 2 * (DIFF - DEA);
// 定义金叉和死叉信号
JC := CROSS(MA4, MA12);
SC := CROSS(MA12, MA4);
// 记录前一根 K 线的 MACD 值和收盘价
PRE_MACD := REF(MACD, 1);
PRE_CLOSE := REF(CLOSE, 1);
// 开多单条件及操作
IF JC THEN BEGIN
BUY(1,手数, MARKET); // 金叉时开多单
END
// 多单止盈条件及操作
IF MACD < PRE_MACD AND HOLDING > 0 THEN BEGIN
SELL(1,HOLDING, MARKET); // MACD 下降且持有多头仓位超过一根 K线则止盈
END
// 多单止损条件及操作
IF C < PRE_CLOSE AND HOLDING > 0 THEN BEGIN
SELL(1,HOLDING, MARKET); // 收盘价低于前一根 K线并持有多头仓位则止损
END
// 开空单条件及操作
IF SC THEN BEGIN
BUYSHORT(1,手数, MARKET); // 死叉时开空单
END
// 空单止盈条件及操作
IF MACD < PRE_MACD AND HOLDING < 0 THEN BEGIN
SELLSHORT(1,HOLDING, MARKET); // MACD 下降且持有空头仓位超过一根 K线则止盈
END
// 空单止损条件及操作
IF C > PRE_CLOSE AND HOLDING < 0 THEN BEGIN
SELLSHORT(1,HOLDING, MARKET); // 收盘价高于前一根 K线并持有空头仓位则止损
END |
|