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.
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.
Menghitung Moving Average, menggunakan harga penutupan secara default, dengan periode yang dapat disesuaikan.
Saat garis K berada di bawah 50 untuk sejumlah garis K, itu menghasilkan sinyal filter.
Kondisi untuk menghasilkan sinyal panjang: Indikator stokastik melintasi ke atas di zona oversold OR Indikator stokastik menyaring sinyal AND Moving average adalah ke atas.
Kondisi untuk menghasilkan sinyal pendek: Indikator stokastik melintasi ke bawah di zona overbought OR Indikator stokastik menyaring sinyal AND Moving average ke bawah.
Kondisi penutupan posisi panjang: Garis Stochastic K melintasi di atas Moving Average DAN Rata-rata berputar ke bawah.
Kondisi penutupan posisi pendek: Garis Stochastic K melintasi di bawah Moving Average DAN Rata-rata berputar ke atas.
Manajemen posisi menggunakan persentase tetap dana, 10% secara default.
Dengan menggabungkan karakteristik overbought / oversold dan tren, dapat mengejar dan membunuh tren.
Filter Indikator Stochastic menghindari perdagangan yang sering di pasar osilasi.
Pengaturan Stop Loss membantu mengendalikan penarikan.
Struktur kode jelas, parameter dapat disesuaikan, dan cocok untuk optimasi lebih lanjut.
Stochastic Oscillator memiliki keterlambatan tertentu, yang mungkin melewatkan titik jual beli terbaik.
Keakuratan menangkap pesanan pada titik perubahan tren rendah, dan frekuensi stop loss mungkin tinggi.
Pengelolaan dana rasio tetap memiliki penarikan yang besar dalam kasus kerugian berturut-turut.
Memperkenalkan lebih banyak kondisi penyaringan, seperti perilaku harga, indikator tambahan lainnya, dll, untuk meningkatkan akurasi sinyal.
Membagi sinyal menjadi kuat dan lemah, dan meningkatkan posisi ketika sinyal kuat muncul.
Mengoptimalkan penilaian titik balik tren untuk menangkap lebih banyak pergerakan pasar.
Mengoptimalkan manajemen posisi, mempertimbangkan penyesuaian posisi berdasarkan rasio keuntungan dan kerugian variabel, dll.
Cobalah kombinasi parameter yang berbeda untuk menemukan parameter yang optimal.
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")