日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

【技術(shù)創(chuàng)新】任意周期K線合并通達(dá)信源代碼和C 源代碼

 知行合一1ycgzb 2025-03-06

兄弟老鐵們,今天給大家嘮嘮一個(gè)超有意思的分析指標(biāo),它就像個(gè)“市場透視鏡”,能幫你瞅出市場的趨勢(shì)和可能的拐點(diǎn)。這指標(biāo)有啥厲害的呢?

多周期分析:通過設(shè)置不同的N值,它能分析各種周期的價(jià)格變化,不管你是個(gè)短線選手還是長線布局的大佬,都能找到適合自己的節(jié)奏。

動(dòng)態(tài)周期調(diào)整:這個(gè)指標(biāo)可不是死板的,它用FRACPART函數(shù),能根據(jù)市場的波動(dòng)動(dòng)態(tài)調(diào)整周期,就像靈活組合K線,隨時(shí)適應(yīng)市場的變化。

圖片

一. 指標(biāo)的特色創(chuàng)新

周期漲跌幅度:它會(huì)算出當(dāng)前價(jià)格和參考周期前的價(jià)格漲跌幅度。要是漲跌幅特別大,那市場可能正嗨著呢;要是漲跌幅度小得可憐,說不定市場就在那兒磨磨唧唧,搞不好就快到底了。

價(jià)格區(qū)間:通過HHV和LLV函數(shù),它能算出周期內(nèi)的最高價(jià)和最低價(jià)。要是收盤價(jià)比開盤價(jià)低,而且價(jià)格區(qū)間窄得跟針眼似的,那市場可能就在底部徘徊了。

二. 指標(biāo)的核心算法原理

老鐵們,這指標(biāo)的工作原理其實(shí)挺有意思的:

周期計(jì)算:lijin1算的是當(dāng)前K線的總數(shù),lijin2用FRACPART函數(shù)動(dòng)態(tài)調(diào)整周期,讓指標(biāo)能適應(yīng)各種周期的市場變化。

參考價(jià)格:PO根據(jù)lijin2的值確定參考開盤價(jià),后面的價(jià)格比較就靠它了。

價(jià)格區(qū)間:PH和PL分別算出周期內(nèi)的最高價(jià)和最低價(jià),標(biāo)記出價(jià)格區(qū)間。

漲跌幅度:通過周期漲跌%算出當(dāng)前價(jià)格和參考周期前的價(jià)格漲跌幅度,幫你看清市場趨勢(shì)。

圖片

任意周期K線合并C++源代碼

#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>

// 模擬股票數(shù)據(jù)結(jié)構(gòu)
struct StockData {
    double open;  // 開盤價(jià)
    double high;  // 最高價(jià)
    double low;   // 最低價(jià)
    double close; // 收盤價(jià)
};

// 計(jì)算周期漲跌百分比
double calculatePeriodChange(const std::vector<StockData>& data, int period) {
    if (period >= data.size()) return0.0;
    return (data.back().close - data[data.size() - period - 1].close) / data[data.size() - period - 1].close * 100.0;
}

// 繪制K線圖(簡化版,僅打印信息)
void drawKLine(const std::vector<StockData>& data, int N) {
    for (size_t i = 0; i < data.size(); ++i) {
        int lijin1 = static_cast<int>(i + 1); // 當(dāng)前周期
        double lijin2 = std::floor(lijin1 / N) * N;

        int period = static_cast<int>(lijin2);
        double PO = (period == 0) ? data[i].open : data[i - period].open;
        double PH = *std::max_element(data.begin() + std::max(0static_cast<int>(i) - N + 1), data.begin() + i + 1
                                      [](const StockData& a, const StockData& b) { return a.high < b.high; }).high;
        double PL = *std::min_element(data.begin() + std::max(0static_cast<int>(i) - N + 1), data.begin() + i + 1
                                      [](const StockData& a, const StockData& b) { return a.low < b.low; }).low;
        double PC = data[i].close;

        double periodChange = calculatePeriodChange(data, period + 1);

        // 根據(jù)條件繪制K線
        if (period == N - 1) {
            if (PC > PO) {
                std::cout << 'Red KLine: Open=' << PO << ', Close=' << PC << ', High=' << PH << ', Low=' << PL << ', Change=' << periodChange << '%' << std::endl;
            } elseif (PC == PO) {
                std::cout << 'Yellow KLine: Open=' << PO << ', Close=' << PC << ', High=' << PH << ', Low=' << PL << ', Change=' << periodChange << '%' << std::endl;
            } else {
                std::cout << 'Blue KLine: Open=' << PO << ', Close=' << PC << ', High=' << PH << ', Low=' << PL << ', Change=' << periodChange << '%' << std::endl;
            }
        }
    }
}

三. N的取值邏輯原理

在指標(biāo)代碼中,變量 N 被定義為 2^M(即2的冪次),這一設(shè)計(jì)主要與 WH2 的計(jì)算邏輯及周期性條件的觸發(fā)機(jī)制密切相關(guān)。以下是詳細(xì)解釋:


1. WH2 的計(jì)算邏輯

代碼中關(guān)鍵的一步是:

WH2 := FRACPART(WH1/N) * N
  • FRACPART 函數(shù)的作用是取小數(shù)部分。例如,若 WH1 = 7 且 N = 4,則 WH1/N = 1.75,其小數(shù)部分為 0.75,乘以 N 后得到 WH2 = 3

  • WH2 的取值范圍為 [0, N-1],且當(dāng) WH1 為連續(xù)的整數(shù)時(shí),WH2 會(huì)周期性循環(huán)(如 0,1,2,3,0,1,2,3,...)。


2. 周期性條件的觸發(fā)

代碼中所有的 STICKLINE 繪制條件均基于 WH2 = N-1

STICKLINE(WH2=N-1 AND ...)
  • WH2 = N-1 表示當(dāng)前處于一個(gè)周期的最后一個(gè)位置。例如,若 N = 4,則當(dāng) WH2 = 3 時(shí),標(biāo)志著一個(gè)周期的結(jié)束和新周期的開始。

  • 如果 N 是2的冪次,這種設(shè)計(jì)能確保周期長度均勻,且 WH2 的循環(huán)與二進(jìn)制特性完美契合(如通過位運(yùn)算優(yōu)化余數(shù)計(jì)算)。

圖片

3. 為何需要 N 是2的冪次?

(1) 均勻的周期分割

當(dāng) N 為2的冪次時(shí)(如4、8、16),周期長度能均勻劃分市場時(shí)間序列。這種均勻性對(duì)計(jì)算最高價(jià)(PH)、最低價(jià)(PL)和引用歷史數(shù)據(jù)(REF(O, WH2))至關(guān)重要。非2的冪次可能導(dǎo)致周期邊界錯(cuò)位,影響指標(biāo)準(zhǔn)確性。

(2) 二進(jìn)制優(yōu)化的兼容性

在底層計(jì)算中,FRACPART(WH1/N) * N 等效于 WH1 % N(取余運(yùn)算)。當(dāng) N 是2的冪次時(shí),編譯器或解釋器可能使用位掩碼(WH1 & (N-1))優(yōu)化余數(shù)計(jì)算,顯著提升執(zhí)行效率。

(3) 避免余數(shù)計(jì)算的偏差

若 N 非2的冪次,WH2 的分布可能不均勻,導(dǎo)致某些周期內(nèi) WH2 無法正確觸發(fā) N-1 條件。例如,當(dāng) N = 5WH2 的循環(huán)為 0,1,2,3,4,0,1,...,但若市場數(shù)據(jù)長度不足,可能導(dǎo)致邊界條件異常。

通達(dá)信任意周期K線合并源代碼

N:=2;lijin1:=BARSCOUNT(CLOSE);lijin2:=FRACPART(lijin1/N)*N;PO:=IF(lijin2=0,O,REF(O,lijin2));PH:=HHV(H,N);PL:=LLV(L,N);PC:=C;周期漲跌%:(C-REF(C,lijin2+1))/REF(C,lijin2+1)*100,NODRAW;STICKLINE(lijin2=N-1 AND PC>PO,PO,PC,N*3,0),COLORRED;STICKLINE(lijin2=N-1 AND PC>PO,PH,PL,N*0.2,0),COLORRED;STICKLINE(lijin2=N-1 AND PC=PO,PO,PC,N*3,0),COLORYELLOW;STICKLINE(lijin2=N-1 AND PC=PO,PH,PL,N*1,0),COLORYELLOW;STICKLINE(lijin2=N-1 AND PC<PO,PO,PC,N*3,0),COLORLIBLUE;STICKLINE(lijin2=N-1 AND PC<PO,PH,PL,N*0.2,0),COLORLIBLUE;
圖片

指標(biāo)總結(jié)

老鐵們,這個(gè)通達(dá)信任意周期K線合并源代碼指標(biāo)就像個(gè)“市場老司機(jī)”,通過多周期分析、動(dòng)態(tài)周期調(diào)整和價(jià)格區(qū)間標(biāo)記,幫你把市場的趨勢(shì)和轉(zhuǎn)折點(diǎn)看得清清楚楚。不管你是啥交易風(fēng)格,這個(gè)指標(biāo)都能給你提供不少有用的信息。

風(fēng)險(xiǎn)提示:本指標(biāo)僅供技術(shù)研究與學(xué)習(xí)交流使用。市場具有高度不確定性,任何基于本指標(biāo)的決策都需要自行承擔(dān)風(fēng)險(xiǎn),不構(gòu)成任何投資建議。

圖片

圖片

圖片

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多