avatar of 发明者量化-小小梦 发明者量化-小小梦
fokus pada Pesan pribadi
4
fokus pada
1271
Pengikut

Alat peningkatan visual! Gunakan diagram bata dan candlestick rata-rata untuk memahami tren pasar di FMZ

Dibuat di: 2025-06-06 09:27:29, diperbarui pada: 2025-06-06 17:34:58
comments   2
hits   568

[TOC]

Alat peningkatan visual! Gunakan diagram bata dan candlestick rata-rata untuk memahami tren pasar di FMZ

Dalam perdagangan kuantitatif, grafik candlestick tradisional merupakan salah satu bentuk representasi data yang paling umum digunakan, tetapi grafik ini juga memiliki keterbatasan tertentu, seperti ketidakpekaan terhadap fluktuasi atau gangguan yang berlebihan. Untuk mengamati tren harga dengan lebih jelas, para pedagang sering kali menggunakan beberapa grafik yang telah disempurnakan, seperti:

  • Renko: Menggambar berdasarkan perubahan harga, bukan waktu, secara efektif menyaring kebisingan pasar.
  • Heikin Ashi: Menghaluskan data harga untuk menunjukkan arah tren secara lebih intuitif.

Artikel ini akan memperkenalkan cara menghitung grafik bata dan data garis K rata-rata berdasarkan garis K biasa pada platform perdagangan kuantitatif FMZ, dan menunjukkan efek gambar untuk membantu pengembang strategi menganalisis tren pasar secara lebih intuitif.

Bagan Batu Bata (Renko)

Bagan Renko menggunakan “batu bata” sebagai unit, dan batu bata baru hanya digambar ketika harga berfluktuasi melampaui rentang tetap (misalnya $100).

  • Keunggulan: Berdasarkan perubahan harga, menyaring fluktuasi kecil di pasar dan menyoroti tren utama.
  • Skenario yang berlaku: Cocok untuk mengidentifikasi tren jangka menengah dan panjang serta mengurangi gangguan kebisingan dalam transaksi.

Interpretasi sinyal perdagangan

  • Konfirmasi tren: Batu bata yang terus naik menunjukkan tren yang kuat dan Anda dapat menahan posisi; munculnya batu bata terbalik adalah sinyal pembalikan tren.
  • Perdagangan Breakout: Saat batu bata baru muncul, terutama saat menembus harga tertinggi/terendah sebelumnya, pertimbangkan untuk memasuki pasar.
  • Penyaringan breakout palsu: Karena grafik bata mengabaikan fluktuasi kecil, grafik ini membantu menyaring breakout palsu kecil selama periode osilasi.

Logika perhitungan inti:

  • Atur ukuran bata brickSize
  • Berdasarkan harga awal, bandingkan terus-menerus apakah harga terbaru menyimpang dari harga batu bata sebelumnya lebih dari brickSize
  • Jika harga naik melampaui batas, batu bata naik akan ditarik; hal yang sama berlaku untuk harga yang turun.

Hitung diagram bata (Renko) dan gambar kodenya:

/*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)
    }
}

Pengujian ulang

Alat peningkatan visual! Gunakan diagram bata dan candlestick rata-rata untuk memahami tren pasar di FMZ

Heikin Ashi

Heikin Ashi adalah proses penghalusan K-line tradisional

  • Keuntungan: Memberikan arah tren yang lebih jelas dan mengurangi sinyal palsu dengan menghaluskan data harga.
  • Skenario yang berlaku: Berlaku untuk strategi mengikuti tren, membantu pedagang mempertahankan posisi lebih lama dalam tren.

Cara perhitungannya adalah sebagai 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 线,具有趋势持续性更强的特点。

Penilaian tren dan pengenalan sinyal

  • Lilin bullish dengan badan besar dan hampir tidak ada bayangan atas atau bawah menunjukkan tren naik yang kuat
  • Garis negatif dengan badan besar dan hampir tidak ada bayangan atas atau bawah menunjukkan tren penurunan yang kuat
  • Bayangan atas dan bawah semakin panjang, dan badan sebenarnya menyusut. Tren melemah, jadi waspadalah terhadap pembalikan.
  • Tubuhnya sangat pendek, bayangannya panjang. Pasar sedang bergejolak, jadi jangan berdagang untuk saat ini.

Kode implementasi dan gambar:

/*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)
    }
}

Pengujian ulang

Alat peningkatan visual! Gunakan diagram bata dan candlestick rata-rata untuk memahami tren pasar di FMZ

END

Grafik Renko dan Heikin Ashi adalah alat yang ampuh bagi pedagang tren:

  • Grafik Renko berfokus pada perpindahan harga dan cocok untuk terobosan dan konfirmasi tren.
  • Heikin Ashi berfokus pada perataan harga dan cocok untuk pengendalian posisi tren.
  • Penggunaan keduanya secara komplementer dapat meningkatkan stabilitas dan kemampuan antiguncangan sinyal strategi tren.

Disarankan untuk menggabungkan pengujian ulang dan verifikasi waktu nyata, memilih solusi grafik yang sesuai dengan produk dan siklus perdagangan Anda sendiri, dan membuat sistem perdagangan kuantitatif yang dipersonalisasi.