Stochastic Oscillator dan Moving Average Crossover Strategy Digabungkan dengan Stop Loss dan Stochastic Oscillator Filter

MA SMA
Tarikh penciptaan: 2024-04-26 16:10:11 Akhirnya diubah suai: 2024-04-26 16:10:11
Salin: 0 Bilangan klik: 847
1
fokus pada
1617
Pengikut

Stochastic Oscillator dan Moving Average Crossover Strategy Digabungkan dengan Stop Loss dan Stochastic Oscillator Filter

Gambaran keseluruhan

Strategi ini menggabungkan penunjuk goyah rawak (Stochastic Oscillator) dengan purata bergerak (Moving Average) untuk menghasilkan isyarat perdagangan dengan mengamati penunjuk rawak yang berbelanja dan berbelanja dan trend rata-rata bergerak. Apabila penunjuk rawak menghasilkan isyarat kosong ketika berada di kawasan yang terlalu banyak dan di bawah garis purata bergerak, dan menghasilkan isyarat lebih banyak ketika berada di kawasan yang terlalu banyak dan di atas rata-rata bergerak.

Prinsip Strategi

  1. Hitung penunjuk goyah rawak dan dapatkan garis K dan garis D. Parameter boleh disesuaikan, termasuk kitaran penunjuk rawak, kelancaran K, kelancaran D, kawasan overbuying dan kawasan overselling.

  2. Hitung purata bergerak, secara lalai menggunakan harga penutupan, boleh disesuaikan secara kitaran.

  3. Hitung penapis penunjuk rawak. Apabila K line di bawah 50 dan mengekalkan K line tertentu, menghasilkan isyarat penapis.

  4. Syarat untuk menghasilkan isyarat berbilang arah: penunjuk rawak melintasi ke atas di kawasan oversold atau penunjuk rawak isyarat penapis dan rata-rata bergerak ke atas.

  5. Syarat untuk menghasilkan isyarat kosong: penunjuk rawak di kawasan overbought bersilang ke bawah atau penapis isyarat penunjuk rawak dan rata-rata bergerak ke bawah.

  6. Syarat kedudukan rata berbilang: melalui purata bergerak pada garis K rawak dan garis purata bertukar ke bawah.

  7. Syarat kedudukan kosong: Random K melintasi purata bergerak di bawah garis dan garis purata bertukar ke atas.

  8. Pengurusan kedudukan menggunakan peratusan dana tetap, 10% secara lalai. Pada masa yang sama, anda boleh menetapkan stop loss, 2% secara lalai.

Analisis kelebihan

  1. Dengan menggabungkan ciri-ciri overbought dan oversold dan trend, anda boleh mengejar dan menghentikan penurunan dalam trend.

  2. Penapis penunjuk rawak mengelakkan dagangan yang kerap dalam keadaan gegaran.

  3. Tetapan Stop Loss membantu mengawal pengunduran.

  4. Struktur kod jelas, parameter boleh disesuaikan, sesuai untuk pengoptimuman lanjut.

Analisis risiko

  1. Indeks rawak mempunyai ketinggalan dan mungkin terlepas titik jual beli terbaik.

  2. Kurangnya ketepatan penggambaran pada titik-titik perubahan trend, dan frekuensi hentian mungkin lebih tinggi.

  3. Pengurusan modal peratusan tetap ditarik balik dengan kerugian berturut-turut.

Arah pengoptimuman

  1. Memperkenalkan lebih banyak syarat penapisan, seperti tingkah laku harga dan lain-lain petunjuk tambahan, meningkatkan ketepatan isyarat.

  2. Untuk memisahkan isyarat yang kuat dan lemah, dan meningkatkan kedudukan apabila isyarat yang kuat muncul.

  3. Untuk mengoptimumkan penghakiman mengenai titik-titik perubahan trend, dengan harapan dapat menangkap lebih banyak keadaan.

  4. Untuk mengoptimumkan pengurusan kedudukan, anda boleh mempertimbangkan penyesuaian kedudukan berbanding keuntungan dan kerugian terapung dan sebagainya.

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

ringkaskan

Strategi ini berdasarkan pada indikator goyah rawak, menilai trend dengan gabungan rata-rata bergerak, dan menggunakan fungsi penapis indikator rawak itu sendiri, menghasilkan isyarat perdagangan yang agak dipercayai. Strategi keseluruhan jelas, sesuai untuk digunakan dalam keadaan trend. Tetapi, kerana terdapat penunjuk rawak yang ketinggalan, prestasi mungkin kurang baik pada titik peralihan trend, kesesuaian dan robustnya secara keseluruhan perlu diperiksa lebih lanjut.

Kod sumber strategi
/*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")