Sumber dimuat naik... memuat...

Osilator Stochastic dan Strategi Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2024-04-30 16:45:30
Tag:STOCHMASL

img

Ringkasan

Strategi ini menggabungkan Osilator Stochastic dan Moving Average (MA) untuk menentukan keadaan pasaran yang terlalu banyak dibeli dan terlalu banyak dijual dan menggunakan arah trend purata bergerak untuk menentukan arah perdagangan. Apabila Osilator Stochastic melintasi ke atas di kawasan yang terlalu banyak dijual dan purata bergerak berada dalam trend menaik, strategi membuka kedudukan panjang; apabila Osilator Stochastic melintasi ke bawah di kawasan yang terlalu banyak dibeli dan purata bergerak berada dalam trend menurun, strategi membuka kedudukan pendek. Di samping itu, strategi menetapkan Stop Loss untuk mengawal risiko.

Prinsip Strategi

  1. Mengira nilai K dan D dari Osilator Stochastic, di mana nilai K mewakili kedudukan harga berbanding dengan harga tertinggi dan terendah, dan nilai D adalah purata bergerak nilai K.
  2. Mengira purata bergerak untuk tempoh yang ditentukan.
  3. Menentukan syarat kemasukan: Buka kedudukan panjang apabila nilai K melintasi di atas tahap overbought dari bawah dan purata bergerak sedang naik; buka kedudukan pendek apabila nilai K melintasi di bawah tahap overbought dari atas dan purata bergerak sedang menurun.
  4. Menentukan keadaan keluar: Tutup kedudukan apabila nilai K melintasi purata bergerak dan purata bergerak mengubah arah.
  5. Tetapkan stop loss untuk mengawal risiko.

Analisis Kelebihan

  1. Dengan menggabungkan Stochastic Oscillator dan purata bergerak, strategi dapat menangkap trend pasaran dan keadaan overbought / oversold dengan berkesan.
  2. Menggunakan arah trend purata bergerak untuk menapis isyarat perdagangan meningkatkan kualiti perdagangan.
  3. Menetapkan stop loss berkesan mengawal risiko.
  4. Struktur kod adalah jelas dan mudah difahami dan diubah suai.

Analisis Risiko

  1. Kedua-dua Osilator Stochastic dan purata bergerak adalah penunjuk yang tertinggal, yang boleh menyebabkan isyarat tertunda.
  2. Dalam pasaran yang tidak menentu, strategi boleh menghasilkan perdagangan yang kerap, yang membawa kepada kos transaksi yang tinggi.
  3. Peratusan stop loss tetap mungkin tidak disesuaikan dengan keadaan pasaran yang berbeza dan mungkin perlu diselaraskan berdasarkan turun naik pasaran.

Arahan pengoptimuman

  1. Pertimbangkan untuk memasukkan penunjuk teknikal lain, seperti MACD dan RSI, untuk meningkatkan kebolehpercayaan isyarat.
  2. Untuk stop loss, kaedah stop loss dinamik atau stop loss berasaskan ATR (Average True Range) boleh digunakan untuk menyesuaikan diri dengan perubahan pasaran.
  3. Sesuaikan parameter Stochastic Oscillator dan purata bergerak secara dinamik berdasarkan trend pasaran dan turun naik untuk mengoptimumkan prestasi strategi.
  4. Memperkenalkan saiz kedudukan untuk menyesuaikan saiz kedudukan secara dinamik berdasarkan keadaan pasaran dan risiko akaun.

Ringkasan

Strategi ini menggabungkan Osilator Stochastic dan purata bergerak untuk menangkap keadaan pasaran yang terlalu banyak dibeli dan terlalu banyak dijual sambil menggunakan arah trend purata bergerak untuk menapis isyarat perdagangan dan menetapkan stop loss untuk mengawal risiko. Logik strategi jelas dan mudah difahami dan dilaksanakan. Walau bagaimanapun, strategi ini juga mempunyai beberapa batasan, seperti kelewatan penunjuk dan perdagangan yang kerap. Dengan memperkenalkan penunjuk teknikal lain, mengoptimumkan kaedah stop loss, menyesuaikan parameter secara dinamik, dan melaksanakan saiz kedudukan, prestasi dan ketahanan strategi dapat ditingkatkan lagi.


/*backtest
start: 2024-04-22 00:00:00
end: 2024-04-29 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_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 Stoch + MA c/ SL", 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 = 500

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

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

// 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)

// Condiciones de entrada en largo y corto
longCondition = ta.crossunder(k, oversold) and ma > ma[1]
shortCondition = ta.crossover(k, overbought) 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 lanjut