avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada mesej peribadi
4
fokus pada
1271
Pengikut

Alat peningkatan visual! Gunakan carta batu bata dan purata batang lilin untuk memahami arah aliran pasaran di FMZ

Dicipta dalam: 2025-06-06 09:27:29, dikemas kini pada: 2025-06-06 17:34:58
comments   2
hits   568

[TOC]

Alat peningkatan visual! Gunakan carta batu bata dan purata batang lilin untuk memahami arah aliran pasaran di FMZ

Dalam perdagangan kuantitatif, carta candlestick tradisional ialah salah satu bentuk perwakilan data yang paling biasa digunakan, tetapi ia juga mempunyai had tertentu, seperti tidak sensitif terhadap turun naik atau hingar yang berlebihan. Untuk memerhati arah aliran harga dengan lebih jelas, peniaga sering menggunakan beberapa carta yang dipertingkatkan, seperti:

  • Renko: Cabutan berdasarkan perubahan harga dan bukannya masa, dengan berkesan menapis bunyi pasaran.
  • Heikin Ashi: Ia melicinkan data harga untuk menunjukkan arah aliran dengan lebih intuitif.

Artikel ini akan memperkenalkan cara mengira carta batu bata dan purata data K-line berdasarkan K-line biasa pada platform dagangan kuantitatif FMZ, dan menunjukkan kesan lukisan untuk membantu pembangun strategi menganalisis arah aliran pasaran dengan lebih intuitif.

Carta Bata (Renko)

Carta Renko menggunakan “bata” sebagai unit, dan bata baharu hanya dilukis apabila harga turun naik melepasi julat tetap (seperti $100).

  • Kelebihan: Berdasarkan perubahan harga, ia menapis turun naik kecil dalam pasaran dan menyerlahkan arah aliran utama.
  • Senario yang berkenaan: Sesuai untuk mengenal pasti arah aliran jangka sederhana dan panjang serta mengurangkan gangguan bunyi dalam urus niaga.

Tafsiran isyarat dagangan

  • Pengesahan arah aliran: Batu bata yang terus meningkat menunjukkan arah aliran yang kukuh dan anda boleh memegang kedudukan; penampilan bata terbalik adalah isyarat pembalikan arah aliran.
  • Dagangan Terobosan: Apabila batu bata baharu muncul, terutamanya apabila ia menembusi tinggi/rendah sebelumnya, pertimbangkan untuk memasuki pasaran.
  • Penapisan pecahan palsu: Memandangkan carta bata mengabaikan turun naik kecil, ia membantu menapis pecah pecah kecil semasa tempoh ayunan.

Logik pengiraan teras:

  • Tetapkan saiz bata Saiz bata
  • Berdasarkan harga awal, sentiasa bandingkan sama ada harga terkini menyimpang daripada harga bata sebelumnya dengan lebih daripada saiz bata
  • Jika harga naik melebihi had, batu bata yang meningkat dilukis; perkara yang sama berlaku untuk harga jatuh.

Kira gambarajah bata (Renko) dan lukis kod:

/*backtest
start: 2025-05-01 00:00:00
end: 2025-06-06 00:00:00
period: 1h
basePeriod: 1m
exchanges: [{"eid":"Binance","currency":"ETH_USDT","balance":1000,"stocks":0.5}]
*/

let globalbricks = []
let lastBarTime = 0

function getBricks(r, brickSize, sourceAttribute, lastPrice) {
    for (let i = 1; i < r.length; i++) {
        let bar = r[i]
        let price = bar[sourceAttribute]
        let time = bar.Time

        if (time < lastBarTime) {
            continue 
        }

        // 遍历原始K线数据
        while (Math.abs(price - lastPrice) >= brickSize) {
            if (globalbricks.length > 0 && time == globalbricks[globalbricks.length - 1].Time) {
                time = globalbricks[globalbricks.length - 1].Time + 1000
            }
            // 构造砖块
            let brick = {
                Time: time,
                Open: lastPrice,
                Close: 0,
                High: 0,
                Low: 0
            }

            if (price > lastPrice) {
                // 上涨砖块
                lastPrice += brickSize
                brick.Close = lastPrice
                brick.High = lastPrice
                brick.Low = brick.Open
            } else {
                // 下跌砖块
                lastPrice -= brickSize
                brick.Close = lastPrice
                brick.High = brick.Open
                brick.Low = lastPrice
            }

            // 放入数组
            globalbricks.push(brick)

            // time 累加1秒,防止一根BAR分成多块brick时断开
            time += 1000
        }

        lastBarTime = bar.Time
    }

    return globalbricks
}

function getRenko(r, brickSize, sourceAttribute) {
    // 原始K线数据如果不符合计算要求,直接返回
    if (!r || r.length <= 0) {
        return null
    }

    if (globalbricks.length == 0) {
        return getBricks(r, brickSize, sourceAttribute, r[0][sourceAttribute])
    } else {
        return getBricks(r, brickSize, sourceAttribute, globalbricks[globalbricks.length - 1].Close)
    }
}

function main() {
    let c = KLineChart({
        overlay: true
    })

    while (true) {
        let r = _C(exchange.GetRecords)
        let bricks = getRenko(r, 100, "Close")
        bricks.forEach(function (brick, index) {
            c.begin(brick)
            c.close()
        })

        Sleep(1000)
    }
}

Ujian belakang

Alat peningkatan visual! Gunakan carta batu bata dan purata batang lilin untuk memahami arah aliran pasaran di FMZ

Heikin Ashi

Heikin Ashi ialah proses melicinkan K-line tradisional

  • Kelebihan: Menyediakan arah aliran yang lebih jelas dan mengurangkan isyarat palsu dengan melicinkan data harga.
  • Senario yang berkenaan: Berkenaan dengan strategi mengikut aliran, membantu pedagang memegang kedudukan lebih lama dalam aliran.

Kaedah pengiraan adalah seperti berikut:

HA_Close = (Open + High + Low + Close) / 4
HA_Open = (前一根 HA_Open + 前一根 HA_Close) / 2
HA_High = max(High, HA_Open, HA_Close)
HA_Low = min(Low, HA_Open, HA_Close)
Heikin Ashi 本质上是一种移动平均滤波的 K 线,具有趋势持续性更强的特点。

Pertimbangan trend dan pengecaman isyarat

  • Lilin kenaikkan dengan badan besar dan hampir tiada bayang atas atau bawah menunjukkan arah aliran menaik yang kuat
  • Garis negatif dengan badan besar dan hampir tiada bayang atas atau bawah menunjukkan arah aliran menurun yang kuat
  • Bayang atas dan bawah semakin panjang, dan badan sebenar semakin mengecil. Trend semakin lemah, jadi berhati-hati dengan pembalikan.
  • Badan sangat pendek, bayangnya panjang. Pasaran tidak menentu, jadi jangan berdagang buat masa ini.

Kod pelaksanaan dan lukisan:

/*backtest
start: 2025-05-01 00:00:00
end: 2025-06-06 00:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT","balance":1000,"stocks":0.5}]
*/

function toHeikinAshi(records) {
    if (!records || records.length == 0) {
        return null 
    }

    let haRecords = []

    for (let i = 0; i < records.length; i++) {
        let r = records[i]
        let ha = {}

        ha.Time = r.Time
        ha.Close = (r.Open + r.High + r.Low + r.Close) / 4

        if (i === 0) {
            // 第一根 Heikin Ashi 的开盘价用普通K线的开盘价和收盘价的均值
            ha.Open = (r.Open + r.Close) / 2
        } else {
            // 后续每根的开盘价 = 上一根Heikin Ashi开盘价和收盘价均值
            ha.Open = (haRecords[i - 1].Open + haRecords[i - 1].Close) / 2
        }

        ha.High = Math.max(r.High, ha.Open, ha.Close)
        ha.Low = Math.min(r.Low, ha.Open, ha.Close)

        haRecords.push(ha)
    }

    return haRecords
}

function main() {
    let c = KLineChart({
        overlay: true
    })

    while (true) {
        let r = _C(exchange.GetRecords)
        let heikinAshiRecords = toHeikinAshi(r)
        heikinAshiRecords.forEach(function (bar, index) {
            c.begin(bar)
            c.close()
        })
        Sleep(1000)
    }
}

Ujian belakang

Alat peningkatan visual! Gunakan carta batu bata dan purata batang lilin untuk memahami arah aliran pasaran di FMZ

END

Carta Renko dan Heikin Ashi ialah alat yang berkuasa untuk pedagang trend:

  • Carta Renko memfokuskan pada anjakan harga dan sesuai untuk penembusan dan pengesahan arah aliran.
  • Heikin Ashi memberi tumpuan kepada pelicinan harga dan sesuai untuk kawalan kedudukan trend.
  • Penggunaan pelengkap kedua-duanya boleh meningkatkan kestabilan dan keupayaan anti-kejutan isyarat strategi arah aliran.

Adalah disyorkan untuk menggabungkan ujian belakang dan pengesahan masa nyata, memilih penyelesaian carta yang sesuai dengan produk dan kitaran dagangan anda sendiri, dan mencipta sistem perdagangan kuantitatif yang diperibadikan.