Strategi ini disebut
Strategi ini pertama-tama menggunakan indikator stok untuk menggambar osilator khusus dengan osilator parameter Periode ditetapkan menjadi 5, dan menetapkan ambang k1 dan k2 atas dan bawah untuk membangun area konsolidasi.
Selanjutnya indikator RSI dimasukkan untuk mengidentifikasi fenomena overbought dan oversold. Indikator RSI dapat secara efektif mengidentifikasi waktu penetrasi pasar batas atas dan bawah. Strategi ini menetapkan garis overbought RSI pada 70 dan garis oversold pada 30.
Selain itu, strategi ini juga memperkenalkan faktor trendActivity sebagai filter tren utama. Ketika indikator stokastis dan RSI memenuhi kondisi pembalikan pada saat yang sama, ia juga memeriksa apakah tren utama masih cukup aktif untuk menghindari kerugian karena pecah palsu di pasar kejutan.
Akhirnya, strategi ini menggunakan prinsip rata-rata posisi Martingale klasik untuk mengendalikan risiko keseluruhan. Dengan menyesuaikan volume perdagangan secara dinamis, posisi tambahan ditempatkan ketika posisi awal mengalami kerugian untuk mencapai titik impas dan dengan demikian mengendalikan penarikan maksimum.
Penggabungan indikator RSI dapat secara efektif mengidentifikasi fenomena overbought dan oversold untuk membantu menilai waktu pembalikan.
Menetapkan osilator untuk menentukan area konsolidasi dapat menyaring beberapa sinyal pecah palsu.
Menetapkan filter tren utama menghindari kerugian di pasar yang tidak stabil.
Rata-rata posisi Martingale secara efektif mengontrol penarikan maksimum dari strategi dan merupakan kunci untuk profitabilitas yang berkelanjutan.
Dalam kondisi pasar yang tidak normal, indikator RSI dapat gagal dan menyebabkan penilaian yang salah tentang kondisi overbought dan oversold.
Pengaturan parameter osilator yang tidak benar juga dapat menyebabkan penyaringan sinyal yang berlebihan atau identifikasi pecah palsu.
Rata-rata posisi Martingale akan menyebabkan kerugian cascading di lingkungan tertentu.
Strategi ini hanya telah diverifikasi pada data pasangan mata uang GBPUSD 15 menit. Mungkin ada risiko pencocokan data di pasar lain dan periode lain.
Mengoptimalkan parameter RSI untuk menemukan parameter yang lebih cocok untuk lingkungan pasar saat ini.
Uji dan optimalkan parameter osilator sehingga dapat menilai area konsolidasi dengan lebih akurat.
Tambahkan logika stop loss, secara aktif menghentikan kerugian ketika kerugian mencapai tingkat tertentu untuk secara efektif mengendalikan kerugian tunggal.
Mengoptimalkan aturan pengaturan filter tren utama untuk mencegah kehilangan peluang pembalikan.
Uji pengaturan ukuran posisi tambahan yang berbeda. Perlu memastikan bahwa jumlah tambahan tidak terlalu besar untuk menyebabkan kehilangan cepat.
Strategi ini menggabungkan indikator rata-rata bergerak ganda, indikator RSI dan osilator kustom untuk menilai fenomena terobosan batas atas dan bawah dalam jangka pendek, dan menggunakan filter tren utama untuk menghindari terobosan palsu untuk perdagangan scalping yang efisien. Pada saat yang sama, prinsip rata-rata posisi Martingale klasik diperkenalkan untuk mengontrol tingkat risiko keseluruhan. Strategi ini memiliki potensi untuk menghasilkan pengembalian yang stabil setelah optimasi parameter dan manajemen risiko yang ketat.
/*backtest start: 2022-11-24 00:00:00 end: 2023-11-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © cloudofw //@version=5 strategy("F2.2 Martingale Scalping Strategy", overlay=true) // Input parameters rsiOverbought = input.int(70, "RSI Overbought Threshold") rsiOversold = input.int(30, "RSI Oversold Threshold") oscillatorPeriod = input.int(5, "Period for oscillator") k1 = input.float(0.2, "K1 for oscillator's zone") k2 = input.float(0.5, "K2 for oscillator's zone") trendActivity = input.float(1.0, "Main Trend filter", minval=0.1) decreasePerOrder = input.float(0.1, "Trend filter decrease per order", minval=0.01) // Calculate custom oscillator and RSI oscillator = ta.stoch(close, high, low, oscillatorPeriod) rsiValue = ta.rsi(close, 14) zoneHigh = 100 - k1 * 100 zoneLow = k2 * 100 // Entry conditions longCondition = oscillator < zoneLow and trendActivity > 0 and rsiValue < rsiOversold shortCondition = oscillator > zoneHigh and trendActivity > 0 and rsiValue > rsiOverbought // Martingale logic var lot_multiplier = 1.0 var last_lot_size = strategy.equity * 0.01 var trade_1_profit = 0.0 if (strategy.position_size != 0) lot_multiplier := last_lot_size / strategy.position_size < 1.5 ? lot_multiplier * 1.5 : 1.0 trade_1_profit := strategy.grossprofit else lot_multiplier := 1.0 trade_1_profit := 0.0 lot_size = strategy.equity * 0.01 * lot_multiplier + trade_1_profit last_lot_size := lot_size // Trading logic if longCondition and strategy.position_size == 0 strategy.entry("Long", strategy.long) if shortCondition and strategy.position_size == 0 strategy.entry("Short", strategy.short) // Exit conditions if longCondition == false and strategy.position_size > 0 strategy.close("Long") if shortCondition == false and strategy.position_size < 0 strategy.close("Short") // Indicators on chart plotshape(series=longCondition, title="Buy Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="Buy") plotshape(series=shortCondition, title="Sell Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell") plot(oscillator, color=color.blue, title="Oscillator") hline(zoneHigh, "Upper Zone", color=color.red) hline(zoneLow, "Lower Zone", color=color.green)
Yang kecil.Apa yang akan terjadi jika kita melakukan simulasi kode langsung dan menemukan bahwa kita telah mencapai titik penambahan tanpa melakukan operasi penambahan?