兄弟們,今天來說說DMI資金流突破指標(biāo),真心有點(diǎn)意思,感覺挺有料的,要是能吃透,說不定能幫咱們在市場里少走點(diǎn)彎路,多抓點(diǎn)機(jī)會(huì),大家看看是不是這么回事。
多維度指標(biāo)融合:
趨勢強(qiáng)度(ADX):這個(gè)ADX不是普通的ADX,它結(jié)合了PDI和MDI的比值平滑處理,能更精準(zhǔn)地判斷市場的方向動(dòng)能。簡單說,就是能看出市場是單邊行情還是震蕩行情。
資金流(ABR):這個(gè)ABR有點(diǎn)意思,用了獨(dú)創(chuàng)的量價(jià)公式(LIJINA/LIJINB)來計(jì)算資金的流入流出強(qiáng)度,再通過EMA平滑處理,反映主力的動(dòng)向。說白了,就是能看出大資金在干嘛。
超買超賣(QS):這個(gè)QS是基于34周期的高低點(diǎn)來計(jì)算的,能識(shí)別股價(jià)在中長期的極端位置。簡單理解,就是告訴你現(xiàn)在是不是該抄底或者逃頂了。
N:=14;M:=6;
HD:=HIGH-REF(HIGH,1);
LD:=REF(LOW,1)-LOW;
DMP:=SUM(IF(HD>0&&HD>LD,HD,0),N);
DMM:=SUM(IF(LD>0&&LD>HD,LD,0),N);
PDI:=DMP*100/SUM(TR,N);
MDI:=DMM*100/SUM(TR,N);
ADX:=(MA((PDI-MDI)/(MDI+PDI),M)*100);
FADX:=((MA(ADX,3)-MA(ADX,13)+MA(ADX,8)));
LIJIN1:=VOL/((HIGH-LOW)*2-ABS(CLOSE-OPEN));
LIJINA:=IF(CLOSE>OPEN,LIJIN1*(HIGH-LOW),IF(CLOSE<OPEN,LIJIN1*((HIGH-OPEN)+(CLOSE-LOW)),VOL/2));
LIJINB:=-IF(CLOSE>OPEN,0-LIJIN1*((HIGH-CLOSE)+(OPEN-LOW)),IF(CLOSE<OPEN,0-LIJIN1*(HIGH-LOW),0-VOL/2));
ABR:=EMA((LIJINA-LIJINB)/VOL*100,7)*2;
QS:=MA(-100*(HHV(HIGH,34)-CLOSE)/(HHV(HIGH,34)-LLV(LOW,34)),13)+100;
STICKLINE(FILTER(CROSS(ABR,ADX),5)&&COUNT(ABR<ADX,4)>=2,L,L,50,901),COLORYELLOW;
DRAWTEXT(CROSS(ABR,ADX)&&COUNT(ABR<ADX,4)>=2&&QS<=REF(QS,1),L,'彈');
STICKLINE(CROSS(ADX,ABR),H,H,50,501),COLORGREEN;
DRAWICON(ADX<REF(ADX,1)&&REF(ADX,1)>=REF(ADX,2)&&FADX>60,H+0.05,10);
DRAWICON(FILTER(ADX>REF(ADX,1)&&REF(ADX,1)<REF(ADX,2)&&FADX<-50,5)&&FADX>-100,L,9);
友情提示:本指標(biāo)公式僅作為學(xué)習(xí)交流使用。
動(dòng)態(tài)條件過濾機(jī)制:
FILTER函數(shù):這個(gè)函數(shù)確保了信號(hào)的有效性,比如5日內(nèi)首次交叉才會(huì)觸發(fā)信號(hào),避免了重復(fù)的噪音信號(hào)。說白了,就是過濾掉那些假信號(hào)。
COUNT(ABR<ADX,4)>=2:這個(gè)條件要求底部信號(hào)前至少2日資金流弱于趨勢,確認(rèn)轉(zhuǎn)折的有效性。簡單說,就是確保底部信號(hào)不是偶然的。
QS指標(biāo)走弱:QS<=REF(QS,1)作為底部信號(hào)的輔助確認(rèn),進(jìn)一步增加了信號(hào)的可靠性。
非對稱止損邏輯:
買點(diǎn)依據(jù)指標(biāo)線:買點(diǎn)不是固定的價(jià)格,而是站上黃線(ABR)或突破綠線(ADX),止損點(diǎn)隨指標(biāo)動(dòng)態(tài)上移。這樣能更好地適應(yīng)市場的波動(dòng)。
強(qiáng)勢行情中的時(shí)間過濾:在強(qiáng)勢行情中,結(jié)合3-5日調(diào)整后的突破,捕捉二次啟動(dòng)的機(jī)會(huì)。簡單說,就是避免在趨勢中過早止盈。
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
usingnamespacestd;
// 定義股票數(shù)據(jù)結(jié)構(gòu)
struct StockData {
double high;
double low;
double open;
double close;
double volume;
};
// 移動(dòng)平均函數(shù)
double MA(const vector<double>& data, int period) {
if (data.size() < period) return0.0;
double sum = 0.0;
for (int i = 0; i < period; ++i) {
sum += data[i];
}
return sum / period;
}
// 指數(shù)移動(dòng)平均函數(shù)
double EMA(const vector<double>& data, int period) {
if (data.size() < period) return0.0;
double alpha = 2.0 / (period + 1);
double ema = data[0];
for (size_t i = 1; i < data.size(); ++i) {
ema = alpha * data[i] + (1 - alpha) * ema;
}
return ema;
}
// 計(jì)算PDI和MDI
pair<double, double> calculatePDI_MDI(const vector<StockData>& data, int N) {
vector<double> dmp(N, 0.0), dmm(N, 0.0);
double tr_sum = 0.0;
for (int i = 1; i <= N; ++i) {
double hd = data[i].high - data[i - 1].high;
double ld = data[i - 1].low - data[i].low;
double tr = max({data[i].high - data[i].low, abs(data[i].high - data[i - 1].close), abs(data[i].low - data[i - 1].close)});
tr_sum += tr;
if (hd > 0 && hd > ld) {
dmp[i] = hd;
}
if (ld > 0 && ld > hd) {
dmm[i] = ld;
}
}
double pdi = MA(dmp, N) * 100 / tr_sum;
double mdi = MA(dmm, N) * 100 / tr_sum;
return {pdi, mdi};
}
// 計(jì)算ADX
double calculateADX(const vector<double>& pdi, const vector<double>& mdi, int M) {
vector<double> adx_values;
for (size_t i = 0; i < pdi.size(); ++i) {
double adx = MA((pdi[i] - mdi[i]) / (mdi[i] + pdi[i]), M) * 100;
adx_values.push_back(adx);
}
return adx_values.back();
}
底部判斷的核心邏輯:
資金流逆轉(zhuǎn)信號(hào):當(dāng)ABR上穿ADX時(shí),表明資金流強(qiáng)度突破了趨勢強(qiáng)度線,資金開始逆勢介入。這個(gè)信號(hào)往往意味著底部的到來。
趨勢衰竭驗(yàn)證:ADX形態(tài)條件要求ADX<REF(ADX,1)且REF(ADX,1)>=REF(ADX,2),即趨勢強(qiáng)度首次從上升轉(zhuǎn)為下降,暗示原有趨勢動(dòng)能衰減。簡單說,就是趨勢可能到頭了。
位置確認(rèn):QS指標(biāo)通過-100*(HHV-CLOSE)/(HHV-LLV)計(jì)算股價(jià)在34日區(qū)間中的相對位置,數(shù)值越低表明越接近長期底部區(qū)域。
與其他指標(biāo)的差異化:
止損機(jī)制創(chuàng)新:將止損點(diǎn)綁定到動(dòng)態(tài)指標(biāo)線(黃線/綠線),而非固定價(jià)格或均線,更適應(yīng)波動(dòng)市場。簡單說,就是止損更靈活。
強(qiáng)勢行情特殊處理:單獨(dú)定義3-5日調(diào)整后的突破為追漲點(diǎn),避免在趨勢中過早止盈。這樣能更好地抓住強(qiáng)勢行情。
信號(hào)分層繪制:使用STICKLINE區(qū)分底部/頂部區(qū)域,DRAWICON標(biāo)記極值點(diǎn),實(shí)現(xiàn)多空信號(hào)可視化分層。簡單說,就是信號(hào)更清晰,一目了然。
總的來說,這個(gè)指標(biāo)在多維度融合、動(dòng)態(tài)過濾、止損機(jī)制等方面都有獨(dú)到之處,適合那些喜歡深入研究市場的朋友。不過,任何指標(biāo)都不是萬能的,關(guān)鍵還是要結(jié)合自己的理解和經(jīng)驗(yàn)來使用。
風(fēng)險(xiǎn)提示:本指標(biāo)僅供技術(shù)研究與學(xué)習(xí)交流使用。資本市場具有高度不確定性,任何基于本指標(biāo)的投資決策都需要自行承擔(dān)風(fēng)險(xiǎn),不構(gòu)成任何投資建議。
學(xué)習(xí)分享
聯(lián)系客服