
等级: 新手上路
- 注册:
- 2024-7-5
- 曾用名:
|

楼主 |
发表于 2025-2-23 12:22
|
显示全部楼层
VAR
MA5, MA34, MA170: DOUBLE; // 5日、34日、170日简单移动平均线
MACDLine, SignalLine, MACDHist: DOUBLE; // MACD指标
UpTrend, DownTrend: BOOLEAN; // 上涨趋势和下跌趋势标志
UpCenterLine, DownCenterLine: DOUBLE; // 上涨中枢线和下跌中枢线
BuySignal1, BuySignal2, BuySignal3, BuySignal4: BOOLEAN; // 买点信号
SellSignal1, SellSignal2, SellSignal3: BOOLEAN; // 卖点信号
BEGIN
// 计算移动平均线
MA5 := MA(CLOSE, 5);
MA34 := MA(CLOSE, 34);
MA170 := MA(CLOSE, 170);
// 计算MACD指标
MACDLine := EMA(CLOSE, 12) - EMA(CLOSE, 26);
SignalLine := EMA(MACDLine, 9);
MACDHist := MACDLine - SignalLine;
// 判断趋势
UpTrend := MA5 > MA34 AND MA34 > MA170;
DownTrend := MA5 < MA34 AND MA34 < MA170;
// 上涨趋势中寻找MACD顶背离及上涨中枢线
IF UpTrend THEN
BEGIN
// MACD顶背离判断
IF MACDHist < 0 AND MACDLine < REF(MACDLine, 1) AND CLOSE > REF(CLOSE, 1) THEN
BEGIN
// 顶背离信号
END;
// 上涨中枢线判断
IF CROSS(MA5, MA34) THEN
BEGIN
IF CLOSE >= MA5 THEN
BEGIN
IF CLOSE < MA5 THEN
UpCenterLine := LOW;
ELSE IF OPEN < REF(CLOSE, 1) AND OPEN < MA5 THEN
UpCenterLine := HIGH;
END;
END;
// 更新上涨中枢线
IF UpCenterLine > REF(UpCenterLine, 1) THEN
UpCenterLine := UpCenterLine;
END;
// 下跌趋势中寻找MACD底背离及下跌中枢线
IF DownTrend THEN
BEGIN
// MACD底背离判断
IF MACDHist > 0 AND MACDLine > REF(MACDLine, 1) AND CLOSE < REF(CLOSE, 1) THEN
BEGIN
// 底背离信号
END;
// 下跌中枢线判断
IF CROSS(MA34, MA5) THEN
BEGIN
IF CLOSE <= MA5 THEN
BEGIN
IF CLOSE > MA5 THEN
DownCenterLine := HIGH;
ELSE IF OPEN > REF(CLOSE, 1) AND OPEN > MA5 THEN
DownCenterLine := LOW;
END;
END;
// 更新下跌中枢线
IF DownCenterLine < REF(DownCenterLine, 1) THEN
DownCenterLine := DownCenterLine;
END;
// 买点判断
BuySignal1 := MACDHist > 0 AND CROSS(MA5, DownCenterLine); // 买点1
BuySignal2 := CROSS(MA5, MA34); // 买点2
BuySignal3 := REF(CLOSE, 1) < UpCenterLine AND MA5 >= UpCenterLine AND CLOSE > MA5; // 买点3
BuySignal4 := CROSS(MA5, UpCenterLine); // 买点4
// 卖点判断
SellSignal1 := MACDHist < 0 AND CROSS(MA5, UpCenterLine); // 卖点1
SellSignal2 := CROSS(MA34, MA5); // 卖点2
SellSignal3 := CROSS(MA5, DownCenterLine); // 卖点3
// 输出买卖信号
IF BuySignal1 THEN
BUY('买点1');
IF BuySignal2 THEN
BUY('买点2');
IF BuySignal3 THEN
BUY('买点3');
IF BuySignal4 THEN
BUY('买点4');
IF SellSignal1 THEN
SELL('卖点1');
IF SellSignal2 THEN
SELL('卖点2');
IF SellSignal3 THEN
SELL('卖点3');
END.
补充内容 (2025-2-23 12:28):
老师,提示语句末尾缺少分号无法编辑
补充内容 (2025-2-23 12:30):
哪里出问题,请帮忙解决
补充内容 (2025-2-24 10:49):
能幸苦下帮我解决下 |
|