
等级: 新手上路
- 注册:
- 2025-3-10
- 曾用名:
|
INPUT:手数(1,1,10000,1); // 开仓手数参数
// 计算 MA4 和 MA12 均线
MA4 :MA(CLOSE, 4);
MA12 :MA(CLOSE, 12);
// 绘制均线
DRAWLINE(1, MA4, COLORWHITE, 2, 1);
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); // 金叉:MA4上穿MA12
SC := CROSS(MA12, MA4); // 死叉:MA12上穿MA4(即MA4下穿MA12)
// 前值记录
PRE_MACD := REF(MACD, 1);
PRE_CLOSE := REF(CLOSE, 1);
// 处理持仓方向
当前持仓 := HOLDING;
// 开多单条件:金叉且无多单持仓
IF JC AND 当前持仓 <= 0 THEN BEGIN
IF 当前持仓 < 0 THEN BEGIN
BUY(1, ABS(当前持仓), MARKET); // 先平空仓
END
BUY(1, 手数, MARKET); // 开多单
END
// 多单止盈:MACD下降
IF MACD < PRE_MACD AND 当前持仓 > 0 THEN BEGIN
SELL(1, 当前持仓, MARKET);
END
// 多单止损:收盘价低于前收盘
IF CLOSE < PRE_CLOSE AND 当前持仓 > 0 THEN BEGIN
SELL(1, 当前持仓, MARKET);
END
// 开空单条件:死叉且无空单持仓
IF SC AND 当前持仓 >= 0 THEN BEGIN
IF 当前持仓 > 0 THEN BEGIN
SELL(1, 当前持仓, MARKET); // 先平多仓
END
BUYSHORT(1, 手数, MARKET); // 开空单
END
// 空单止盈:MACD上升(趋势减弱)
IF MACD > PRE_MACD AND 当前持仓 < 0 THEN BEGIN
BUY(1, ABS(当前持仓), MARKET); // 平空单
END
// 空单止损:收盘价高于前收盘
IF CLOSE > PRE_CLOSE AND 当前持仓 < 0 THEN BEGIN
BUY(1, ABS(当前持仓), MARKET);
END
|
|