Osilator Stochastic dan Strategi Crossover Purata Bergerak dengan Stop Loss dan Penapis Stochastic

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

img

Ringkasan

Strategi ini menggabungkan Osilator Stochastic dengan Purata Bergerak, menjana isyarat perdagangan dengan memerhatikan keadaan overbought dan oversold penunjuk stochastic dan trend purata bergerak. Ia menghasilkan isyarat pendek apabila penunjuk stochastic berada di zon overbought dan purata bergerak ke bawah, dan isyarat panjang apabila berada di zon overbought dan purata bergerak ke atas.

Prinsip Strategi

  1. Mengira pengayun Stochastic untuk mendapatkan garis K dan garis D. Parameter boleh diselaraskan, termasuk tempoh stochastic, kelancaran K, kelancaran D, zon overbought, dan zon oversold.

  2. Mengira purata bergerak, menggunakan harga penutupan secara lalai, dengan tempoh yang boleh disesuaikan.

  3. Apabila garis K kekal di bawah 50 untuk sebilangan garis K, ia menghasilkan isyarat penapis.

  4. Keadaan untuk menjana isyarat panjang: Indikator stokastik melintasi ke atas di zon oversold atau isyarat penapis isyarat stokastik dan purata bergerak ke atas.

  5. Syarat untuk menghasilkan isyarat pendek: Indikator stokastik melintasi ke bawah di zon overbought atau isyarat penapis indikator stokastik DAN purata bergerak ke bawah.

  6. Keadaan penutupan kedudukan panjang: Garis K Stochastic melintasi di atas Purata Bergerak DAN Purata berputar ke bawah.

  7. Keadaan penutupan kedudukan pendek: Garis K Stochastic melintasi di bawah Purata Bergerak DAN Purata berputar ke atas.

  8. Pengurusan kedudukan menggunakan peratusan tetap dana, 10% secara lalai. Ia juga menetapkan Stop Loss, 2% secara lalai.

Analisis Kelebihan

  1. Dengan menggabungkan ciri-ciri overbought/oversold dan trend, ia boleh mengejar dan membunuh trend.

  2. Penapis Indikator Stochastic mengelakkan perdagangan yang kerap di pasaran yang berayun.

  3. Tetapan Stop Loss membantu mengawal pengeluaran.

  4. Struktur kod jelas, parameter boleh diselaraskan, dan ia sesuai untuk pengoptimuman lanjut.

Analisis Risiko

  1. Stochastic Oscillator mempunyai kelewatan tertentu, yang mungkin terlepas titik beli dan jual terbaik.

  2. Ketepatan menangkap pesanan pada titik perubahan trend adalah lemah, dan kekerapan stop-loss mungkin tinggi.

  3. Pengurusan dana nisbah tetap mempunyai pengeluaran yang besar dalam kes kerugian berturut-turut.

Arah pengoptimuman

  1. Memperkenalkan lebih banyak keadaan penapisan, seperti tingkah laku harga, penunjuk tambahan lain, dan sebagainya, untuk meningkatkan ketepatan isyarat.

  2. Bahagikan isyarat menjadi kuat dan lemah, dan meningkatkan kedudukan apabila isyarat kuat muncul.

  3. Mengoptimumkan penilaian titik perubahan trend untuk menangkap lebih banyak pergerakan pasaran.

  4. Mengoptimumkan pengurusan kedudukan, mempertimbangkan penyesuaian kedudukan berdasarkan nisbah keuntungan dan kerugian yang berubah, dll.

  5. Cuba kombinasi parameter yang berbeza untuk mencari parameter yang optimum.

Ringkasan

Strategi ini adalah berdasarkan kepada Stochastic Oscillator, strategi ini menggabungkan Moving Averages untuk menilai trend, sementara juga menggunakan fungsi penapisan Indikator Stochastic itu sendiri, menjana isyarat perdagangan yang agak boleh dipercayai. Idea keseluruhan strategi ini jelas dan sesuai untuk digunakan di pasaran trend. Walau bagaimanapun, kerana kelewatan dari Stochastic Oscillator, prestasi pada titik perubahan pasaran mungkin lemah, dan keseragaman dan ketahanan keseluruhannya memerlukan pemeriksaan 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 lanjut