VARIABLE: POSITION := 0;
DISPLAY_LEVEL := 1; // 显示级别:1=显示所有价位线 0=仅显示信号
ALERT_SOUND := 1; // 信号是否发声提醒:1=是 0=否
SMOOTH_PERIOD := 3; // 平滑期数
SIGNAL_THRESHOLD := 0.01; // 信号触发阈值
//———————- 2. 前一日价格数据 ———————-
REF_H := REF(HHV(H,DAYBARPOS), DAYBARPOS); // 前一日最高价
REF_L := REF(LLV(L,DAYBARPOS), DAYBARPOS); // 前一日最低价
REF_C := REF(C, DAYBARPOS); // 前一日收盘价
P := (0.5 * REF_H + 0.3 * REF_L + 0.2 * REF_C) / 1.0; // 加权中心价
//———————- 3. 计算6个关键价位 ———————-
BREAK_BUY := REF_H + 2 * P – 2 * REF_L; // 突破买入价(趋势做多触发)
OBS_SELL := REF_H + P – REF_L; // 观察卖出价
REV_SELL :=2 * P – REF_L; // 反转卖出价(多单反手做空触发)
REV_BUY := 2 * P – REF_H; // 反转买入价(空单反手做多触发)
OBS_BUY := P – (REF_H – REF_L); // 观察买入价
BREAK_SELL := REF_L – 2* (REF_H – P); // 突破卖出价(趋势做空触发)
//———————- 4. 绘制价位线(可选) ———————-
BREAK_BUY_SMOOTH := SMA(BREAK_BUY, SMOOTH_PERIOD,1);
BREAK_SELL_SMOOTH := SMA(BREAK_SELL, SMOOTH_PERIOD,1);
DRAWTEXT(ISLASTBAR, BREAK_BUY_SMOOTH, ‘突破买入价’), COLORRED, FONTSIZE10;
DRAWTEXT(ISLASTBAR, OBS_SELL, ‘观察卖出价’), COLORYELLOW, FONTSIZE10;
DRAWTEXT(ISLASTBAR, REV_SELL, ‘反转卖出价’), COLORGREEN, FONTSIZE10;
DRAWTEXT(ISLASTBAR, REV_BUY, ‘反转买入价’), COLORGREEN, FONTSIZE10;
DRAWTEXT(ISLASTBAR, OBS_BUY, ‘观察买入价’), COLORYELLOW, FONTSIZE10;
DRAWTEXT(ISLASTBAR, BREAK_SELL_SMOOTH, ‘突破卖出价’), COLORBLUE, FONTSIZE10;
//———————- 5. 信号状态与持仓模拟 ———————-
// 状态变量:0=空仓 1=持多单 -1=持空单
VOLATILITY1 := REF_H – REF_L; // 前一日波幅(用于过滤小波动)
TREND_BUY := C > (BREAK_BUY + SIGNAL_THRESHOLD) AND REF(C, 1) <= (BREAK_BUY + SIGNAL_THRESHOLD); // 向上突破买入信号
TREND_SELL := C < (BREAK_SELL – SIGNAL_THRESHOLD) AND REF(C, 1) >= (BREAK_SELL – SIGNAL_THRESHOLD); // 向下跌破卖出信号
// 观察位触碰标记
TOUCH_OBS_SELL := H >= OBS_SELL AND REF(H, 1) < OBS_SELL; // 触碰观察卖出价
TOUCH_OBS_BUY := L <= OBS_BUY AND REF(L, 1) >OBS_BUY; // 触碰观察买入价
// 反转信号(需先触碰观察位)
REV_SELL_SIG := C < REV_SELL AND REF(C, 1) >= REV_SELL; // 多单反转做空
REV_BUY_SIG := C > REV_BUY AND REF(C, 1) <= REV_BUY; // 空单反转做多
// 持仓状态模拟(仅用于指标信号展示,非实盘交易)
POSITION := IF(TREND_BUY, 1, IF(TREND_SELL, -1,
IF(REV_SELL_SIG, -1, IF(REV_BUY_SIG, 1, REF(POSITION, 1)))));
//———————- 6. 绘制交易信号 ———————-
// 趋势做多信号
DRAWICON(TREND_BUY, L*0.9995, 1), COLORRED; // 1=向上箭头
DRAWTEXT(TREND_BUY, L*0.999, ‘趋势做多’), COLORRED, FONTSIZE11;
TREND_BUY, BK;
// 趋势做空信号
DRAWICON(TREND_SELL, H*1.0005, 2), COLORBLUE; // 2=向下箭头
DRAWTEXT(TREND_SELL, H*1.001, ‘趋势做空’), COLORBLUE, FONTSIZE11;
TREND_SELL, SK;
// 反转做空信号(多单反手)
DRAWICON(REV_SELL_SIG, H*1.005, 2), COLORGREEN;
DRAWTEXT(REV_SELL_SIG, H*1.01, ‘反转做空’), COLORGREEN, FONTSIZE11;
REV_SELL_SIG, SPK;
// 反转做多信号(空单反手)
DRAWICON(REV_BUY_SIG, L*0.9995, 1), COLORGREEN;
DRAWTEXT(REV_BUY_SIG, L*0.999, ‘反转做多’), COLORGREEN, FONTSIZE11;
REV_BUY_SIG, BPK;
//———————- 7. 声音提醒(可选) ———————-
TREND_BUY, SOUND(‘A’);
TREND_SELL, SOUND(‘B’);
REV_SELL_SIG, SOUND(‘C’);
REV_BUY_SIG, SOUND(‘D’);
AUTOFILTER;

