Strategi perdagangan kuantitatif pembalikan trend simulasi Renko tanpa mengecat pelbagai langkah

RENKO RSI SMA EMA VOL BRICK BACKTESTING REPAINTING
Tarikh penciptaan: 2025-03-04 10:26:05 Akhirnya diubah suai: 2025-03-04 10:26:05
Salin: 0 Bilangan klik: 547
2
fokus pada
319
Pengikut

Strategi perdagangan kuantitatif pembalikan trend simulasi Renko tanpa mengecat pelbagai langkah Strategi perdagangan kuantitatif pembalikan trend simulasi Renko tanpa mengecat pelbagai langkah

Gambaran Keseluruhan Strategi

Strategi ini adalah sistem perdagangan kuantitatif yang tidak digambarkan semula berdasarkan grafik Renko yang mensimulasikan tingkah laku blok Renko pada carta masa standard. Strategi ini menggunakan blok harga bersaiz tetap untuk menyaring kebisingan pasaran, hanya memberi perhatian kepada perubahan harga yang bermakna, sambil memastikan bahawa isyarat sejarah tidak berubah.

Ciri-ciri utama:

  • Kesan Renko yang tidak dipetik semula pada carta masa
  • Pembalikan trend menggunakan perubahan arah blok
  • Mekanisme pengesahan pelbagai langkah meningkatkan kualiti isyarat
  • Grafik menunjukkan proses pembentukan batu
  • Hasil tinjauan semula yang stabil dan konsisten dengan prestasi dagangan dalam masa nyata

Prinsip Strategi

Prinsip teras strategi ini adalah untuk melaksanakan fungsi blok Renko pada carta masa standard, sambil menyelesaikan masalah pencitraan semula dalam carta Renko tradisional. Prinsip kerja khusus adalah seperti berikut:

  1. Konfigurasi dan inisialisasi parameter:

    • brickSize: Tentukan saiz blok, menentukan berapa banyak harga mesti bergerak untuk membentuk blok baru
    • renkoPrice: Menyimpan harga penutupan blok Renko yang telah selesai
    • prevRenkoPriceHarga Renko Brick pada tahap yang sama seperti harga Renko Brick sebelumnya:
    • brickDir: Ikut arah blok ((1 = naik, -1 = turun)
    • newBrick: Tanda Bull, menunjukkan pembentukan batu baru
    • brickStart: Indeks lajur yang menyimpan blok semasa bermula
  2. Pengiktirafan blok Renko yang tidak dipetik semula:

    • Sistem hanya menjalankan pengiraan pada tiang pengesahan, memastikan data sejarah tidak dikira semula
    • Mengira perbezaan harga semasa dengan tahap Renko blok sebelumnya
    • Apabila perbezaan harga mencapai atau melebihi saiz blok, blok Renko baru terbentuk
    • Mengemas kini tahap harga blok mengikut jumlah blok yang boleh diterima oleh perubahan harga
    • Kemas kini arah ((brickDir) dan set logo ((newBrick) menunjukkan pembentukan batu baru
  3. Penampakan Renko pada carta masa:

    • Menggunakan elemen grafik untuk melukis blok gaya Renko pada carta standard
    • Kotak hijau menunjukkan blok.
    • Kotak merah mewakili blok penurunan harga
    • Benda yang terbentuk tidak akan berubah atau hilang
  4. Keputusan berbalik arah:

    • Strategi bukan sahaja memeriksa arah blok semasa, tetapi juga membandingkan lebih banyak blok sejarah
    • Memastikan pembalikan trend sebenar dengan mengesahkan perubahan arah berturut-turut dalam beberapa blok

Kelebihan Strategik

Setelah menganalisis kod secara mendalam, strategi ini menunjukkan kelebihan yang ketara:

  1. Menyelesaikan masalah lukisan semula:

    • Strategi Renko tradisional berfungsi dengan baik dalam retesting, tetapi sering gagal dalam permainan langsung, terutamanya kerana masalah melukis semula
    • Strategi ini mensimulasikan tingkah laku Renko pada carta masa standard untuk memastikan bahawa blok tidak berubah apabila ia terbentuk.
    • Ini menjadikan hasil pengesanan lebih dipercayai dan lebih dekat dengan persembahan sebenar.
  2. Penapisan kebisingan dan pengenalan trend yang jelas:

    • Carta Renko sendiri mempunyai ciri untuk menyaring turun naik kecil, hanya membentuk blok baru apabila harga bergerak jumlah yang ditetapkan
    • Ini membantu mengenal pasti trend harga yang jelas dan mengurangkan isyarat palsu.
    • Sesuai untuk mencari pergerakan harga yang bermakna dalam pasaran yang bergelombang tinggi
  3. Pengesahan isyarat pelbagai langkah:

    • Strategi tidak hanya memeriksa perubahan arah tunggal, tetapi juga mengesahkan arah beberapa blok berturut-turut
    • Dengan membandingkanbrickDir[brickSize]dengan semasabrickDirdan nisbah harga sejarah
    • Mekanisme pengesahan pelbagai langkah mengurangkan isyarat silap
  4. Dasar perdagangan visual:

    • Menggambar blok berwarna pada carta untuk menunjukkan struktur harga secara intuitif
    • Kotak hijau dan merah jelas menandakan arah pasaran
    • Pembantu visual membantu peniaga lebih memahami tingkah laku pasaran
  5. Fleksibiliti dan penyesuaian:

    • Saiz blok boleh disesuaikan oleh pengguna, yang membolehkan strategi pengoptimuman mengikut pasaran dan jangka masa yang berbeza
    • Saiz blok yang lebih kecil menghasilkan isyarat dagangan yang lebih kerap, sesuai untuk dagangan jangka pendek
    • Saiz blok yang lebih besar menapis lebih banyak bunyi, sesuai untuk trend jangka menengah dan panjang

Risiko Strategik

Walaupun strategi ini telah menyelesaikan masalah pencitraan semula, faktor-faktor risiko berikut masih wujud:

  1. Risiko kelewatan isyarat:

    • Oleh kerana strategi hanya menjalankan pengiraan pada tiang pengesahan, pelaksanaan perdagangan mungkin sedikit lebih lambat daripada carta Renko tradisional
    • Dalam pasaran yang bergerak pantas, titik masuk mungkin telah terlepas harga terbaik
    • Penyelesaian: Kaedah ini boleh dipertimbangkan dalam kombinasi dengan penunjuk pengesahan lain atau menyesuaikan saiz blok untuk mengimbangi ketepatan masa dan ketepatan
  2. Ukuran blok memilih risiko:

    • Blok yang terlalu kecil akan menghasilkan terlalu banyak isyarat dagangan, meningkatkan kos dagangan dan boleh menyebabkan dagangan berlebihan
    • Blok yang terlalu besar mungkin terlepas titik perubahan pasaran yang penting
    • Penyelesaian: Saiz blok harus dioptimumkan mengikut kadar turun naik aset sasaran dan jangka masa perdagangan
  3. Risiko untuk membalikkan trend:

    • Walaupun menggunakan pengesahan berbilang langkah, penipuan palsu masih boleh berlaku dalam pasaran yang bergolak
    • Harga mungkin melintasi sempadan blok beberapa kali sebelum trend sebenar terbentuk
    • Penyelesaian: Pertimbangkan untuk menambah penapis tambahan, seperti pengesahan kuantiti atau penunjuk momentum
  4. Risiko penarikan balik:

    • Strategi membalikkan trend boleh menyebabkan kerugian berterusan dalam pasaran yang kuat
    • Sinyal pembalikan mungkin tercetus terlalu awal, menyebabkan dagangan berlawanan
    • Penyelesaian: Pemasangan mekanisme hentian kerugian yang sesuai dan strategi pengurusan kedudukan
  5. Mengira risiko sumber:

    • Menggambar banyak blok boleh memakan banyak sumber, terutamanya pada jangka masa yang panjang dan set data besar
    • Kod ini mengehadkan jumlah kotak maksimum kepada 500, yang mungkin tidak mencukupi dalam beberapa kes
    • Penyelesaian: Optimumkan kecekapan kod atau pertimbangkan untuk hanya memaparkan blok N yang paling dekat

Arah pengoptimuman strategi

Berdasarkan analisis kod, berikut adalah beberapa penyesuaian utama untuk strategi ini:

  1. Optimumkan saiz blok dinamik:

    • Strategi semasa menggunakan saiz blok tetap, yang boleh diubah menjadi saiz blok dinamik berdasarkan turun naik pasaran
    • Menggunakan blok yang lebih kecil semasa turun naik rendah dan blok yang lebih besar semasa turun naik tinggi
    • Ini akan meningkatkan kesesuaian strategi terhadap keadaan pasaran yang berbeza.
    • Cara pelaksanaan: saiz blok boleh disesuaikan secara dinamik menggunakan ATR
  2. Menambah penapis transaksi:

    • Gabungan trafik atau penunjuk momentum lain untuk mengesahkan isyarat pembalikan trend
    • Elakkan berdagang dalam keadaan kecairan rendah atau turun naik yang melampau
    • Metode pelaksanaan: menambah syarat pengesahan tambahan berdasarkan RSI, terobosan kuantiti atau MACD
  3. Peningkatan kawalan kerugian dan keuntungan:

    • Strategi semasa hanya boleh melonggarkan kedudukan apabila arahnya berbalik, meningkatkan tahap stop loss pintar dan sasaran keuntungan
    • Tetapan Stop Loss Dinamik Berdasarkan Pelbagai Saiz Blok
    • Cara untuk melaksanakan: Tambahstrategy.exit()Perintah untuk menetapkan titik henti berdasarkan ATR atau saiz blok
  4. Mempertingkatkan mekanisme pengesahan pelbagai langkah:

    • Strategi semasa menggunakan tetapbrickSizePerkalian untuk membandingkan sejarah
    • Jumlah langkah untuk mengkaji sejarah yang optimum
    • Mengkaji semula pasaran dan jangka masa yang berbeza untuk mencari kombinasi parameter terbaik
    • Metode pelaksanaan: membuat parameter bilangan langkah, membolehkan pengguna menyesuaikan kedalaman pengesahan
  5. Peningkatan sistem penglihatan dan amaran:

    • Tambah garis trend dan penanda tahap utama
    • Tambah fungsi amaran pembentukan blok dan isyarat perdagangan
    • Menunjukkan kekuatan dan tempoh trend semasa
    • Kaedah: menggunakanlabel.new()danalert()Fungsi meningkatkan pengalaman pengguna

ringkaskan

Strategi perdagangan kuantitatif renko simulasi trend reversal yang tidak melukis semula strategi Renko berjaya menyelesaikan masalah melukis semula dalam strategi Renko tradisional, membolehkan peniaga menggunakan logik Renko pada carta masa standard, sambil mengekalkan kestabilan isyarat sejarah. Strategi ini mengenal pasti perubahan trend melalui mekanisme pengesahan pelbagai langkah, meningkatkan kualiti isyarat, dan menunjukkan struktur pasaran secara visual melalui grafik.

Kelebihan utama strategi adalah menyelesaikan masalah pemetaan semula, penapisan kebisingan pasaran, pengesahan isyarat bertingkat dan gambaran grafik yang intuitif. Walau bagaimanapun, terdapat risiko seperti kelewatan isyarat, pemilihan saiz blok dan isyarat palsu.

Kaedah ini menggabungkan kelebihan Renko Charts dan mengelakkan kelemahan mereka, sangat sesuai untuk strategi perdagangan trend-following dan trend-reversal, menyediakan pedagang dengan alat analisis teknikal yang boleh dipercayai yang dapat memberikan prestasi rekod yang stabil sambil mengekalkan ketepatan pengukuran.

Kod sumber strategi
//@version=5
strategy("Non-Repainting Renko Emulation Strategy [PineIndicators]", overlay=true, calc_on_every_tick=false, max_boxes_count = 500, max_labels_count = 500, max_lines_count = 500, initial_capital = 10000, default_qty_value = 100, default_qty_type = strategy.percent_of_equity, commission_value = 0.01, slippage = 2)

// Parameter: Brick-Größe (z.B. 10 Punkte)
brickSize = input.float(3.0, "Brick Size", step=0.1)

// Persistente Variablen
var float renkoPrice     = na    // Aktueller Renko-Level (Schlusswert des letzten Bricks)
var float prevRenkoPrice = na    // Vorheriger Renko-Level (für Box-Berechnung)
var int   brickDir       = 0     // 1 = Aufwärts, -1 = Abwärts
var bool  newBrick       = false // Signalisiert, dass ein neuer Brick abgeschlossen wurde
var int   brickStart     = bar_index  // Beginn des aktuellen Bricks (x-Achse)

// Berechnungen nur auf abgeschlossenen Candles
if barstate.isconfirmed
    newBrick := false
    // Initialisierung: Beim ersten Candle setzen wir den Renko-Level
    if na(renkoPrice)
        renkoPrice := close
        brickStart := bar_index
    // Berechne die Differenz zum letzten Renko-Level
    diff = close - renkoPrice
    // Prüfen, ob der Unterschied mindestens der Brick-Größe entspricht
    if math.abs(diff) >= brickSize
        // Anzahl kompletter Bricks (kann > 1 sein)
        numBricks = math.floor(math.abs(diff) / brickSize)
        prevRenkoPrice := renkoPrice
        // Aktualisieren des Renko-Levels
        renkoPrice := renkoPrice + numBricks * brickSize * math.sign(diff)
        // Brick-Richtung (konvertiere math.sign-Ergebnis in int)
        brickDir := int(math.sign(diff))
        newBrick := true

        // Bestimme die obere und untere Grenze des abgeschlossenen Bricks:
        lowLevel  = brickDir == 1 ? prevRenkoPrice : renkoPrice
        highLevel = brickDir == 1 ? renkoPrice     : prevRenkoPrice

        // Setze den Start für den nächsten Brick
        brickStart := bar_index


// Handelslogik: Einstieg/Ausstieg nur, wenn ein neuer Brick abgeschlossen wurde
if barstate.isconfirmed and newBrick
    // Bei Aufwärts-Brick: Long-Signal
    if brickDir[brickSize] < brickDir and renkoPrice[brickSize] < renkoPrice[brickSize*2] and renkoPrice < renkoPrice[brickSize] and renkoPrice[brickSize*2] < renkoPrice[brickSize*3] and strategy.position_size <= 0
        // Bestehende Short-Position schließen, falls vorhanden
        strategy.entry("Long", strategy.long)

    // Bei Abwärts-Brick: Short-Signal
    else if brickDir[brickSize] > brickDir and renkoPrice[brickSize] > renkoPrice[brickSize*2] and renkoPrice > renkoPrice[brickSize] and renkoPrice[brickSize*2] > renkoPrice[brickSize*3] and strategy.position_size >= 0
        // Bestehende Long-Position schließen, falls vorhanden
        strategy.entry("Short", strategy.short)

if barstate.isconfirmed and newBrick
    if brickDir[brickSize] < brickDir
        strategy.close("Short")

    else if brickDir[brickSize] > brickDir
        strategy.close("Long")