Strategi Crossover Osilator Stochastic dan Moving Average dengan Stop Loss dan Filter Stochastic

Penulis:ChaoZhang, Tanggal: 2024-04-26 16:10:11
Tag:MASMA

img

Gambaran umum

Strategi ini menggabungkan Osilator Stokastik dengan Moving Average, menghasilkan sinyal perdagangan dengan mengamati kondisi overbought dan oversold dari indikator stokastik dan tren rata-rata bergerak. Ini menghasilkan sinyal pendek ketika indikator stokastik berada di zona overbought dan rata-rata bergerak ke bawah, dan sinyal panjang ketika berada di zona oversold dan rata-rata bergerak ke atas. Selain itu, strategi ini memperkenalkan filter indikator stokastik, yang juga dapat menghasilkan sinyal perdagangan yang sesuai ketika garis K stokastik melintasi garis D setelah berada di bawah 50 untuk sejumlah garis K. Strategi ini juga menetapkan Stop Loss untuk mengendalikan risiko.

Prinsip Strategi

  1. Perhitungkan osilator stokastik untuk mendapatkan garis K dan garis D. Parameter dapat disesuaikan, termasuk periode stokastik, kelancaran K, kelancaran D, zona overbought, dan zona oversold.

  2. Menghitung Moving Average, menggunakan harga penutupan secara default, dengan periode yang dapat disesuaikan.

  3. Saat garis K berada di bawah 50 untuk sejumlah garis K, itu menghasilkan sinyal filter.

  4. Kondisi untuk menghasilkan sinyal panjang: Indikator stokastik melintasi ke atas di zona oversold OR Indikator stokastik menyaring sinyal AND Moving average adalah ke atas.

  5. Kondisi untuk menghasilkan sinyal pendek: Indikator stokastik melintasi ke bawah di zona overbought OR Indikator stokastik menyaring sinyal AND Moving average ke bawah.

  6. Kondisi penutupan posisi panjang: Garis Stochastic K melintasi di atas Moving Average DAN Rata-rata berputar ke bawah.

  7. Kondisi penutupan posisi pendek: Garis Stochastic K melintasi di bawah Moving Average DAN Rata-rata berputar ke atas.

  8. Manajemen posisi menggunakan persentase tetap dana, 10% secara default.

Analisis Keuntungan

  1. Dengan menggabungkan karakteristik overbought / oversold dan tren, dapat mengejar dan membunuh tren.

  2. Filter Indikator Stochastic menghindari perdagangan yang sering di pasar osilasi.

  3. Pengaturan Stop Loss membantu mengendalikan penarikan.

  4. Struktur kode jelas, parameter dapat disesuaikan, dan cocok untuk optimasi lebih lanjut.

Analisis Risiko

  1. Stochastic Oscillator memiliki keterlambatan tertentu, yang mungkin melewatkan titik jual beli terbaik.

  2. Keakuratan menangkap pesanan pada titik perubahan tren rendah, dan frekuensi stop loss mungkin tinggi.

  3. Pengelolaan dana rasio tetap memiliki penarikan yang besar dalam kasus kerugian berturut-turut.

Arah Optimalisasi

  1. Memperkenalkan lebih banyak kondisi penyaringan, seperti perilaku harga, indikator tambahan lainnya, dll, untuk meningkatkan akurasi sinyal.

  2. Membagi sinyal menjadi kuat dan lemah, dan meningkatkan posisi ketika sinyal kuat muncul.

  3. Mengoptimalkan penilaian titik balik tren untuk menangkap lebih banyak pergerakan pasar.

  4. Mengoptimalkan manajemen posisi, mempertimbangkan penyesuaian posisi berdasarkan rasio keuntungan dan kerugian variabel, dll.

  5. Cobalah kombinasi parameter yang berbeda untuk menemukan parameter yang optimal.

Ringkasan

Strategi ini didasarkan pada Stochastic Oscillator, menggabungkan Moving Averages untuk menilai tren, sementara juga memanfaatkan fungsi penyaringan Indikator Stochastic itu sendiri, menghasilkan sinyal perdagangan yang relatif dapat diandalkan. Ide keseluruhan strategi ini jelas dan cocok untuk digunakan di pasar tren. Namun, karena keterlambatan Stochastic Oscillator, kinerjanya pada titik balik pasar mungkin buruk, dan kemampuan beradaptasi dan ketahanan keseluruhan membutuhkan pemeriksaan lebih lanjut.


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pablo_2uc

//@version=5
strategy("Estrategia Estocástico + MA con Stop Loss y Filtro Estocástico", overlay=true)

// Parámetros del Estocástico
length = input.int(14, title="Longitud Estocástico")
smoothK = input.int(3, title="Suavizado K")
smoothD = input.int(3, title="Suavizado D")
oversold = input.int(20, title="Sobreventa")
overbought = input.int(80, title="Sobrecompra")

// Parámetros de la Media Móvil
maLength = input.int(9, title="Longitud MA")
maSource = input(close, title="Fuente MA")

// Capital inicial
capital = 5000

// Tamaño de posición (10% del capital)
positionSize = capital * 0.10

// Stop Loss (2% del precio de entrada)
stopLossPercent = input.int(2, title="Stop Loss (%)") / 100

// Número de ruedas para el filtro estocástico
filterPeriods = input.int(12, title="Ruedas de Filtro Estocástico")

// Cálculo del Estocástico
k = ta.sma(ta.stoch(close, high, low, length), smoothK)
d = ta.sma(k, smoothD)

// Cálculo de la Media Móvil
ma = ta.sma(maSource, maLength)

// Filtro estocástico
stochasticFilter = ta.sma(k > 50 ? 1 : 0, filterPeriods)

// Condiciones de entrada en largo y corto
longCondition = (ta.crossunder(k, oversold) or ta.crossover(stochasticFilter, 1)) and ma > ma[1]
shortCondition = (ta.crossover(k, overbought) or ta.crossover(stochasticFilter, 1)) and ma < ma[1]

// Condiciones de salida
exitLongCondition = ta.crossover(k, ma) and ma < ma[1]
exitShortCondition = ta.crossunder(k, ma) and ma > ma[1]

// Estrategia
if (longCondition)
    strategy.entry("Long", strategy.long, qty=positionSize)
    strategy.exit("Exit Long", "Long", stop=close * (1 - stopLossPercent))
if (shortCondition)
    strategy.entry("Short", strategy.short, qty=positionSize)
    strategy.exit("Exit Short", "Short", stop=close * (1 + stopLossPercent))

// Cierre de posiciones
if (exitLongCondition)
    strategy.close("Long")
if (exitShortCondition)
    strategy.close("Short")

Berkaitan

Lebih banyak