这是一款专为期货交易者设计的文华财经主图指标公式,融合了RSI背离、MACD金叉死叉、量价配合、BBI均线排列以及多种K线形态(如吞没、锤子、乌云盖顶、刺透等),构建出“衰竭+反转+趋势”三层信号体系,能够精准捕捉多空转折点。
核心逻辑如下:
- **做多信号(A1/A2/A3)**:当市场出现下跌衰竭(如缩量新低、RSI底背离、MACD底背离),并叠加反转确认信号(如破位突破、放量上涨、均线多头排列)时,系统会标注“强▲”或“易▲”两档信号。
- **做空信号(B1/B2/B3)**:当市场出现上涨衰竭(如缩量新高、RSI顶背离、射击之星),并叠加反转确认信号(如支撑破位、放量下跌、均线空头排列)时,系统会标注“强▼”或“易▼”两档信号。
- **趋势状态自动识别**:系统可自动识别上涨趋势、下跌趋势、上涨衰竭、下跌衰竭及震荡行情,状态一目了然。
使用方法:将该指标叠加在文华财经主图上使用。当出现“强▲”或“易▲”信号时,可考虑做多;出现“强▼”或“易▼”信号时,可考虑做空。同时,配合“量背”“结构”“破位”等文字标注,可进一步验证信号的可靠性。该指标适用于日内及短线期货品种的趋势判断与买卖点选择,建议结合大周期方向过滤假信号。
//结构共振顶底猎手
//{结构形态一旦出现,别再盲目进场!}
N1:=26;
N12 := 14; // RSI周期
M1 := 12; // MACD快线周期
M2 := 26; // MACD慢线周期
M3 := 9; // MACD信号线周期
MA5P := 5; // 短期均线周期
BBI_P := 10; // BBI布林带中轨周期(原MA10)
MA20P := 20; // 长期均线周期
NN12 := BACKSET(ISLASTBAR, 10);
MA5C := EMA(CLOSE, MA5P); // 改为EMA5
BBIC := (MA(CLOSE,3) + MA(CLOSE,6) + MA(CLOSE,12) + MA(CLOSE,24)) / 4; // BBI布林带中轨
MA20C := MA(CLOSE, MA20P);
LC1 := REF(CLOSE, 1);
RSI1 := SMA(MAX(CLOSE-LC1, 0), N12, 1) / SMA(ABS(CLOSE-LC1), N12, 1) * 100;
DIFV := EMA(CLOSE, M1) - EMA(CLOSE, M2);
DEAV := EMA(DIFV, M3);
VOLMA5V := MA(VOL, 5);
MA5SLOPEU := (MA5C - REF(MA5C, 1)) / REF(MA5C, 1) * 1000;
DECELERATEU := MA5SLOPEU < REF(MA5SLOPEU, 1) AND REF(MA5SLOPEU, 1) < REF(MA5SLOPEU, 2) AND MA5SLOPEU > 0;
PRICENEWHIGHU := HIGH > REF(HHV(HIGH, 10), 1);
VOLUMELOWU := VOL < VOLMA5V * 0.7;
RSIDIVERGENCEU := HIGH > REF(HHV(HIGH, 8), 1) AND RSI1 < REF(RSI1, 1);
UPPERSHADOWU := (HIGH - MAX(CLOSE, OPEN)) / (HIGH - LOW + 0.0001) > 0.6;
SHOOTINGSTARU := UPPERSHADOWU AND (MIN(CLOSE, OPEN) - LOW) / (HIGH - LOW + 0.0001) < 0.3;
BEARISHENGULFU := REF(ISUP, 1) AND ISDOWN AND OPEN > REF(CLOSE, 1) AND CLOSE < REF(OPEN, 1);
DARKCLOUDU := REF(ISUP, 1) AND ISDOWN AND OPEN > REF(HIGH, 1) AND CLOSE < (REF(OPEN, 1) + REF(CLOSE, 1)) / 2;
RECENTSUPPORTU := LLV(LOW, 5);
SUPPORTBREAKU := CLOSE < RECENTSUPPORTU AND LOW < RECENTSUPPORTU;
MA5BREAKU := CLOSE < MA5C AND REF(CLOSE, 1) >= REF(MA5C, 1);
HIGHVOLDOWNU := ISDOWN AND VOL > VOLMA5V * 1.5;
BOUNCEHIGHU := HHV(HIGH, 3);
BOUNCEWEAKU := BOUNCEHIGHU < REF(HHV(HIGH, 3), 3);
LOWERLOWU := LOW < REF(LLV(LOW, 5), 1);
LOWERHIGHU := HIGH < REF(HHV(HIGH, 5), 1);
MADOWNARRU := MA5C < BBIC AND BBIC < MA20C; // 修改:MA10C改为BBIC
DOWNWITHVOLU := ISDOWN AND VOL > VOLMA5V * 1.3;
UPWITHOUTVOLU := ISUP AND VOL < VOLMA5V * 0.8;
RSIWEAKU := RSI1 < 40;
MA5SLOPED := (MA5C - REF(MA5C, 1)) / REF(MA5C, 1) * 1000;
DECELERATED := MA5SLOPED > REF(MA5SLOPED, 1) AND REF(MA5SLOPED, 1) > REF(MA5SLOPED, 2) AND MA5SLOPED < 0;
PRICENEWLOWD := LOW < REF(LLV(LOW, 10), 1);
VOLUMELOWD := VOL < VOLMA5V * 0.7;
RSIDIVERGENCED := LOW < REF(LLV(LOW, 8), 1) AND RSI1 > REF(RSI1, 1);
MACDDIVERGENCED := LOW < REF(LLV(LOW, 8), 1) AND DIFV > REF(DIFV, 1);
LOWERSHADOWD := (MIN(CLOSE, OPEN) - LOW) / (HIGH - LOW + 0.0001) > 0.6;
HAMMERD := ISUP AND LOWERSHADOWD AND (HIGH - CLOSE) / (HIGH - LOW + 0.0001) < 0.3;
BULLISHENGULFD := REF(ISDOWN, 1) AND ISUP AND OPEN < REF(CLOSE, 1) AND CLOSE > REF(OPEN, 1);
PIERCINGPATTERND := REF(ISDOWN, 1) AND ISUP AND OPEN < REF(LOW, 1) AND CLOSE > (REF(OPEN, 1) + REF(CLOSE, 1)) / 2;
RECENTRESISTANCED := HHV(HIGH, 5);
RESISTANCEBREAKD := CLOSE > RECENTRESISTANCED AND HIGH > RECENTRESISTANCED;
MA5BREAKUPD := CLOSE > MA5C AND REF(CLOSE, 1) <= REF(MA5C, 1);
MA10BREAKUPD := CLOSE > BBIC AND REF(CLOSE, 2) <= REF(BBIC, 2);
HIGHVOLUPD := ISUP AND VOL > VOLMA5V * 1.5;
BOUNCELOWD := LLV(LOW, 3);
BOUNCESTRONGD := BOUNCELOWD > REF(LLV(LOW, 3), 3);
HIGHERHIGHD := HIGH > REF(HHV(HIGH, 5), 1);
HIGHERLOWD := LOW > REF(LLV(LOW, 5), 1);
MAUPARRD := MA5C > BBIC AND BBIC > MA20C; // 修改:MA10C改为BBIC
UPWITHVOLD := ISUP AND VOL > VOLMA5V * 1.3;
DOWNWITHOUTVOLD := ISDOWN AND VOL < VOLMA5V * 0.8;
RSISTRONGD := RSI1 > 60;
FATIGUEU2D := (DECELERATEU + (PRICENEWHIGHU AND VOLUMELOWU) + RSIDIVERGENCEU + SHOOTINGSTARU + BEARISHENGULFU + DARKCLOUDU);
REVERSALU2D := (SUPPORTBREAKU + MA5BREAKU + (HIGHVOLDOWNU AND (BEARISHENGULFU OR DARKCLOUDU)) + BOUNCEWEAKU);
DOWNTRENDS := ((LOWERLOWU AND LOWERHIGHU) + MADOWNARRU + (DOWNWITHVOLU AND REF(UPWITHOUTVOLU, 1)) + RSIWEAKU);
FATIGUED2U := (DECELERATED + (PRICENEWLOWD AND VOLUMELOWD) + RSIDIVERGENCED + MACDDIVERGENCED + HAMMERD + BULLISHENGULFD + PIERCINGPATTERND);
REVERSALD2U := (RESISTANCEBREAKD + MA5BREAKUPD + MA10BREAKUPD + (HIGHVOLUPD AND (BULLISHENGULFD OR PIERCINGPATTERND)) + BOUNCESTRONGD);
UPTRENDS := ((HIGHERHIGHD AND HIGHERLOWD) + MAUPARRD + (UPWITHVOLD AND REF(DOWNWITHOUTVOLD, 1)) + RSISTRONGD);
SHORTSIG1 := FATIGUEU2D >= 2 AND REVERSALU2D >= 1;
SHORTSIG2 := REVERSALU2D >= 2;
SHORTSIG3 := DOWNTRENDS >= 2;
LONGSIG1 := FATIGUED2U >= 2 AND REVERSALD2U >= 1;
LONGSIG2 := REVERSALD2U >= 2;
LONGSIG3 := UPTRENDS >= 2;
DRAWTEXT(NN12 AND CROSS(DECELERATEU,0.5), HIGH * 1.00006, '↘↘↘↘减'), COLORYELLOW;
DRAWTEXT(NN12 AND CROSS(PRICENEWHIGHU,0.5) AND VOLUMELOWU, HIGH * 1.00, '量背↓'), COLORYELLOW,FONTSIZE20;
DRAWTEXT(NN12 AND CROSS(RSIDIVERGENCEU,0.5), HIGH * 0.9960, 'RSI顶背'), COLORYELLOW;
DRAWTEXT(NN12 AND CROSS(SHOOTINGSTARU,0.5), HIGH * 1.00, '上影↓'), COLORYELLOW;
DRAWTEXT(NN12 AND CROSS(BEARISHENGULFU,0.5), HIGH * 1.00004, '吞没↓'), COLORYELLOW;
DRAWTEXT(NN12 AND CROSS(DARKCLOUDU,0.5), HIGH * 0.99993, '乌云↓'), COLORYELLOW;
MIDPRICE1 := (HIGH + LOW) / 2;
DRAWTEXT(NN12 AND CROSS(SUPPORTBREAKU,0.5), MIDPRICE1 * 1., '↓破位'), COLORRED,FONTSIZE20;
DRAWTEXT(NN12 AND CROSS(MA5BREAKU,0.5), MIDPRICE1 * 1.00009, '↓破EMA5'), COLORRED; // 修改:MA5改为EMA5
DRAWTEXT(NN12 AND CROSS(HIGHVOLDOWNU AND (BEARISHENGULFU OR DARKCLOUDU),0.5), MIDPRICE1 * 1.00004, '↓放量'), COLORRED;
DRAWTEXT(NN12 AND CROSS( BOUNCEWEAKU,0.5), MIDPRICE1 * 0.99991, '↘↘↘↘弹弱'), COLORRED;
DRAWTEXT(NN12 AND CROSS(LOWERLOWU AND LOWERHIGHU,0.5), LOW * 1.00006, '↘↘↘↘结构'), COLORRED;
DRAWTEXT(NN12 AND CROSS(MADOWNARRU,0.5), LOW * 0.9950, '↓均线'), COLORRED;
DRAWTEXT(NN12 AND CROSS(DOWNWITHVOLU AND REF(UPWITHOUTVOLU, 1),0.5), LOW * 0.9998, '↓量价'), COLORRED;
DRAWTEXT(NN12 AND CROSS(RSIWEAKU,0.5), LOW * 1, '↓指标'), COLORRED;
DRAWTEXT(NN12 AND CROSS(DECELERATED,0.5), LOW * 0.998, '↗↗↗↗减'), COLORGRAY;
DRAWTEXT(NN12 AND CROSS(PRICENEWLOWD AND VOLUMELOWD,0.5), LOW * 1, '量背↑'), COLORGRAY;
DRAWTEXT(NN12 AND CROSS(RSIDIVERGENCED,0.5), LOW * 0.9970, 'RSI背↑'), COLORGRAY;
DRAWTEXT(NN12 AND CROSS(MACDDIVERGENCED,0.5), LOW * 1.00006, 'MACD背↑'), COLORGRAY;
DRAWTEXT(NN12 AND CROSS(HAMMERD,0.5), LOW * 0.9998, '锤子↑'), COLORGRAY;
DRAWTEXT(NN12 AND CROSS(BULLISHENGULFD,0.5), LOW * 1.00009, '吞没↑'), COLORGRAY;
DRAWTEXT(NN12 AND CROSS(PIERCINGPATTERND,0.5), LOW * 1, '刺透↑'), COLORGRAY;
MIDPRICE2 := (HIGH + LOW) / 2;
DRAWTEXT(NN12 AND CROSS(RESISTANCEBREAKD,0.5), MIDPRICE2 * 1, '↑突破'), COLORGREEN;
DRAWTEXT(NN12 AND CROSS(MA5BREAKUPD,0.5), MIDPRICE2 * 1, '↑破EMA5'), COLORGREEN; // 修改:MA5改为EMA5
DRAWTEXT(NN12 AND CROSS(MA10BREAKUPD,0.5), MIDPRICE2 * 1, '↑破BBI'), COLORGREEN; // 修改:MA10改为BBI
DRAWTEXT(NN12 AND CROSS(HIGHVOLUPD AND (BULLISHENGULFD OR PIERCINGPATTERND),0.5), MIDPRICE2 * 0.92, '↑放量'), COLORGREEN;
DRAWTEXT(NN12 AND CROSS(BOUNCESTRONGD,0.5), MIDPRICE2 * 1, '↗↗↗↗调强'), COLORGREEN;
DRAWTEXT(NN12 AND CROSS(HIGHERHIGHD AND HIGHERLOWD,0.5), HIGH * 1, '↗↗↗↗结构'), COLORGREEN;
DRAWTEXT(NN12 AND CROSS(MAUPARRD,0.5), HIGH * 1.0009, '↑均线'), COLORGREEN;
DRAWTEXT(NN12 AND CROSS(UPWITHVOLD AND REF(DOWNWITHOUTVOLD, 1),0.5), HIGH * 1, '↑量价'), COLORGREEN;
DRAWTEXT(NN12 AND CROSS(RSISTRONGD,0.5), HIGH * 1, '↑指标'), COLORGREEN;
DRAWTEXT(NN12 AND CROSS(LONGSIG1,0.5), LOW * 1, 'A1'),RGB(255,255,0),FONTSIZE20; // 做多信号1
DRAWTEXT(NN12 AND CROSS(LONGSIG2,0.5), LOW * 0.9998, 'A2') ,RGB(255,255,0),FONTSIZE20; // 做多信号2
DRAWTEXT(NN12 AND CROSS(LONGSIG3,0.5), LOW * 0.9996, 'A3'),RGB(255,255,0),FONTSIZE20; // 做多信号3
DRAWTEXT(NN12 AND CROSS(SHORTSIG1,0.5), HIGH * 1, 'B1'),RGB(255,255,255),FONTSIZE20; // 做空信号1
DRAWTEXT(NN12 AND CROSS(SHORTSIG2,0.5), HIGH * 0.9996, 'B2') ,RGB(255,255,255),FONTSIZE20; // 做空信号2
DRAWTEXT(NN12 AND CROSS(SHORTSIG3,0.5), HIGH * 0.9992, 'B3'),RGB(255,255,255),FONTSIZE20; // 做空信号3
// 当前趋势状态-股朋网
TRENDSTATE := IF(MAUPARRD AND HIGHERHIGHD AND HIGHERLOWD, 1,
IF(MADOWNARRU AND LOWERLOWU AND LOWERHIGHU, 2,
IF(DECELERATEU AND (PRICENEWHIGHU AND VOLUMELOWU), 3,
IF(DECELERATED AND (PRICENEWLOWD AND VOLUMELOWD), 4, 0))));
TRENDTEXT := IF(TRENDSTATE = 1, '上涨趋势',
IF(TRENDSTATE = 2, '下跌趋势',
IF(TRENDSTATE = 3, '上涨衰竭',
IF(TRENDSTATE = 4, '下跌衰竭', '震荡行情'))));
SUGGESTION := IF(SHORTSIG3, '下跌确立,持空或加空',
IF(LONGSIG3, '上涨确立,持多或加多',
IF(SHORTSIG2, '反转确认,可试空',
IF(LONGSIG2, '反转确认,可试多',
IF(SHORTSIG1, '上涨衰竭,减多不追',
IF(LONGSIG1, '下跌衰竭,减空不追', '观望,等待信号'))))));
DRAWTEXT(ISLASTBAR, C, '观大周判'), ALIGN1, COLORYELLOW;
FATIGUED2U_THRESHOLD := 2; // 降低阈值到2(约30%)
REVERSALD2U_THRESHOLD := 2; // 降低阈值到2(约40%)
FATIGUEU2D_THRESHOLD := 2; // 降低阈值到2(约30%)
REVERSALU2D_THRESHOLD := 1; // 降低阈值到1(约25%)
STRONGLONG_NEW := FATIGUED2U >= FATIGUED2U_THRESHOLD AND REVERSALD2U >= REVERSALD2U_THRESHOLD;
STRONGSHORT_NEW := FATIGUEU2D >= FATIGUEU2D_THRESHOLD AND REVERSALU2D >= REVERSALU2D_THRESHOLD;
DRAWTEXT(NN12 AND STRONGLONG_NEW, LOW * 1, '强▲'),RGB(255,255,0),FONTSIZE25;
DRAWTEXT(NN12 AND STRONGSHORT_NEW, HIGH * 1, '强▼'),RGB(255,255,255),FONTSIZE25;
STRONGLONG_EASY := FATIGUED2U >= 2 AND REVERSALD2U >= 1;
STRONGSHORT_EASY := FATIGUEU2D >= 2 AND REVERSALU2D >= 1;
DRAWTEXT(NN12 AND STRONGLONG_EASY, LOW * 1, '易▲'),RGB(255,255,0),FONTSIZE25;
DRAWTEXT(NN12 AND STRONGSHORT_EASY, HIGH * 1, '易▼'),RGB(255,255,255),FONTSIZE25;