RSI dan Kombinasi Moving Average MT5 Strategi Scalping Martingale

Penulis:ChaoZhang, Tanggal: 2023-12-01 17:56:56
Tag:

img

Gambaran umum

Strategi ini disebut RSI dan Moving Average Combination MT5 Martingale Scalping Strategy. Ini menggabungkan indikator rata-rata bergerak ganda dan indikator Relative Strength Index (RSI) untuk menerapkan perdagangan scalping frekuensi tinggi, sambil menggabungkan prinsip rata-rata posisi Martingale untuk mengontrol tingkat risiko keseluruhan strategi.

Logika Strategi

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Analisis Keuntungan

  1. Penggabungan indikator RSI dapat secara efektif mengidentifikasi fenomena overbought dan oversold untuk membantu menilai waktu pembalikan.

  2. Menetapkan osilator untuk menentukan area konsolidasi dapat menyaring beberapa sinyal pecah palsu.

  3. Menetapkan filter tren utama menghindari kerugian di pasar yang tidak stabil.

  4. Rata-rata posisi Martingale secara efektif mengontrol penarikan maksimum dari strategi dan merupakan kunci untuk profitabilitas yang berkelanjutan.

Analisis Risiko

  1. Dalam kondisi pasar yang tidak normal, indikator RSI dapat gagal dan menyebabkan penilaian yang salah tentang kondisi overbought dan oversold.

  2. Pengaturan parameter osilator yang tidak benar juga dapat menyebabkan penyaringan sinyal yang berlebihan atau identifikasi pecah palsu.

  3. Rata-rata posisi Martingale akan menyebabkan kerugian cascading di lingkungan tertentu.

  4. Strategi ini hanya telah diverifikasi pada data pasangan mata uang GBPUSD 15 menit. Mungkin ada risiko pencocokan data di pasar lain dan periode lain.

Arahan Optimasi

  1. Mengoptimalkan parameter RSI untuk menemukan parameter yang lebih cocok untuk lingkungan pasar saat ini.

  2. Uji dan optimalkan parameter osilator sehingga dapat menilai area konsolidasi dengan lebih akurat.

  3. Tambahkan logika stop loss, secara aktif menghentikan kerugian ketika kerugian mencapai tingkat tertentu untuk secara efektif mengendalikan kerugian tunggal.

  4. Mengoptimalkan aturan pengaturan filter tren utama untuk mencegah kehilangan peluang pembalikan.

  5. Uji pengaturan ukuran posisi tambahan yang berbeda. Perlu memastikan bahwa jumlah tambahan tidak terlalu besar untuk menyebabkan kehilangan cepat.

Ringkasan

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)


Lebih banyak

Yang kecil.Apa yang akan terjadi jika kita melakukan simulasi kode langsung dan menemukan bahwa kita telah mencapai titik penambahan tanpa melakukan operasi penambahan?