Strategi Pecah Momentum Stochastic


Tarikh penciptaan: 2023-10-24 16:35:24 Akhirnya diubah suai: 2023-10-24 16:35:24
Salin: 0 Bilangan klik: 816
1
fokus pada
1617
Pengikut

Strategi Pecah Momentum Stochastic

Gambaran keseluruhan

Strategi penembusan momentum terutamanya menggunakan penunjuk stochastic oscillator untuk menentukan arah trend pasaran, digabungkan dengan penunjuk ADX untuk menentukan trend kuat, membentuk isyarat perdagangan. Strategi ini terutama digunakan untuk perdagangan trend garis panjang dan tengah.

Prinsip Strategi

Strategi ini berdasarkan kepada dua petunjuk teknikal:

  1. Stochastic oscillator: digunakan untuk menentukan arah trend pasaran. Nilai stochastic oscillator adalah 0 hingga 100, apabila kitaran adalah 14, nilai di antara 45 hingga 55 bermaksud tidak ada trend yang jelas, Stochastic di atas 55 adalah isyarat bullish, di bawah 45 adalah isyarat bearish.

  2. Penunjuk ADX: digunakan untuk menilai trend kuat. ADX di bawah 20 menunjukkan trend lemah.

Strategi pertama berdasarkan nilai osilator Stochastic menilai sama ada pasaran kini mempunyai trend naik atau turun yang jelas. Apabila Stochastic di atas 55, dianggap ada trend kenaikan harga; Apabila Stochastic di bawah 45, dianggap ada trend penurunan harga.

Strategi kemudian akan mengesan sama ada ADX berada di atas 20, jika ADX di atas 20 menunjukkan trend yang kuat, perdagangan trend boleh dilakukan. Jika ADX di bawah 20 menunjukkan trend yang tidak cukup jelas, strategi tidak akan menghasilkan isyarat perdagangan.

Penghakiman gabungan Stochastic oscillator dan ADX, strategi menghasilkan isyarat beli/jual apabila kedua-dua syarat berikut dipenuhi:

  1. Stochastic di atas 55, menunjukkan terdapat kecenderungan bullish
  2. ADX di atas 20, menunjukkan trend bullish yang kuat

Strategi menghasilkan isyarat jual apabila kedua-dua syarat berikut dipenuhi:

  1. Stochastic di bawah 45, menunjukkan terdapat trend menurun
  2. ADX di atas 20, menunjukkan kecenderungan penurunan yang kuat

Dengan peraturan pertimbangan seperti itu, strategi ini membentuk strategi perdagangan medium dan panjang yang berorientasikan trend.

Kelebihan Strategik

Strategi ini mempunyai kelebihan berikut:

  1. Menangkap trend garis panjang dan tengah: Gabungan Stochastic dan ADX, dapat menentukan arah dan kekuatan trend garis panjang di pasaran dengan berkesan, menangkap trend utama.

  2. Kawalan penarikan balik: hanya berdagang apabila trend jelas, anda boleh mengawal dengan berkesan penarikan balik yang disebabkan oleh perdagangan pembalikan yang tidak perlu.

  3. Ruang pengoptimuman parameter: Kitaran Stochastic dan kitaran ADX boleh dioptimumkan, parameter boleh disesuaikan untuk pasaran yang berbeza.

  4. Intuisi mudah: Logik keseluruhan strategi ini mudah dan jelas, terdiri daripada dua petunjuk teknikal yang biasa digunakan, mudah difahami secara intuitif.

  5. universality:The strategy can be applied to different markets with parameter tuning.

Risiko Strategik

Strategi ini mempunyai beberapa risiko:

  1. Melewatkan titik penembusan: Stochastic dan ADX adalah penunjuk trend, yang mungkin terlepas titik perubahan trend yang berpotensi dan kehilangan peluang perdagangan yang lebih awal.

  2. Risiko pembalikan trend: Pada akhir trend, Stochastic dan ADX mungkin salah menilai bahawa trend masih berterusan, dan kehilangan peluang untuk keluar tepat pada masanya, menyebabkan kerugian meningkat.

  3. Kesulitan pengoptimuman parameter: Parameter Stochastic dan ADX memerlukan pengoptimuman untuk pasaran yang berbeza, dan terdapat kesukaran tertentu.

  4. Whipsaws: Strategi ini mungkin menghasilkan beberapa isyarat perdagangan tidak sah di pasaran yang tidak mempunyai trend yang jelas.

  5. Divergence:When the price trend conflicts with the Stochastic oscillator trend, divergence emerges, which may lead to losing trades.

Anda boleh mengurangkan risiko dengan:

  1. Kaedah ini boleh digunakan untuk menilai trend tempatan dan mencari titik pecah yang berpotensi.

  2. Tambah isyarat pembalikan trend dan keluar tepat pada masanya apabila terdapat pembalikan trend.

  3. Mengoptimumkan parameter secara automatik melalui pembelajaran mesin dan lain-lain.

  4. Increase the ADX threshold to filter out weak trend signals in ranging markets.

  5. Apply additional indicators to confirm the Stochastic signals and avoid divergence trades.

Arah pengoptimuman strategi

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Optimumkan parameter Stochastic: menyesuaikan parameter seperti kitaran K, kitaran D, dan lain-lain, mengoptimumkan kedudukan titik jual beli.

  2. Mengoptimumkan parameter ADX: menyesuaikan kitaran ADX untuk menentukan parameter yang terbaik untuk menentukan trend yang lemah.

  3. Tambah isyarat pembalikan trend: Tingkatkan kedudukan di kawasan Stochastic Overbought dan Oversold, dan letakkan Stop Loss.

  4. Gabungan dengan penunjuk lain: Gabungan dengan RSI, MACD dan lain-lain untuk menentukan masa untuk membeli atau menjual.

  5. Pembelajaran Mesin: Menggunakan pembelajaran mesin untuk mendapatkan kombinasi parameter yang optimum.

  6. Tambah strategi hentikan kerugian: menetapkan hentikan bergerak atau beralih kepada strategi hentikan kerugian, mengawal kerugian tunggal.

  7. Trailong stop loss: Add trailing stop loss to lock in profits as the trend extends.

  8. Money management: Optimize the risk management by adjusting position sizing based on ADX strength.

ringkaskan

Ringkasnya, strategi pemecahan momentum secara keseluruhan adalah trend, menggunakan arah trend Stochastic, ADX untuk menilai kekuatan trend, membentuk strategi perdagangan garis panjang dan tengah. Kelebihan strategi adalah menangkap trend, mengawal pengunduran, mudah dilihat, kelemahan adalah kemungkinan kehilangan titik pecah awal, terdapat risiko pembalikan trend.

Kod sumber strategi
/*backtest
start: 2023-09-23 00:00:00
end: 2023-10-23 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Created by Bitcoinduke
//Original Creator is Jake Bernstein 
// Link: https://school.stockcharts.com/doku.php?id=trading_strategies:stochastic_pop_drop
// Tested: XBTUSD 3h | BTCPERP FTX 3h
//@version=4
// strategy(shorttitle="Stochastic Pop and Drop", title="Pop and Drop", overlay=false, 
//      calc_on_every_tick=false, pyramiding=0, default_qty_type=strategy.cash, 
//      default_qty_value=1000, currency=currency.USD, initial_capital=1000,
//      commission_type=strategy.commission.percent, commission_value=0.075)

upper_threshold_buy = input(55, minval=50, title="Buy Entry/Exit Line")
lower_threshold_sell = input(45, maxval=50, title="Sell Entry/Exit Line")

oscillator_length = input(14, minval=1, title="Stochastic Length - Default 14")
sma_length = input(2, minval=1, title="SMA Length - 3-day (3 by default) simple moving average of stoch")

stoch_oscillator = sma(stoch(close, high, low, oscillator_length), sma_length)

//Upper and Lower Entry Lines
upper_line = upper_threshold_buy
lower_line = lower_threshold_sell

stoch_color = stoch_oscillator >= upper_line ? green : stoch_oscillator <= lower_line ? red : purple

//Charts
plot(stoch_oscillator, title="Stochastic", style=histogram, linewidth=4, color=stoch_color)
upper_threshold = plot(upper_line, title="Upper Line", style=line, linewidth=4, color=green)
lower_threshold = plot(lower_line, title="Lower Line", style=line, linewidth=4, color=red)

// Strategy Logic
LongSignal = stoch_oscillator >= upper_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false
ShortSignal = stoch_oscillator <= lower_line and not (stoch_oscillator > lower_line and stoch_oscillator < upper_line) ? true : false

strategy.entry("POP_Short", strategy.short, when=ShortSignal)
strategy.entry("POP_Long", strategy.long, when=LongSignal)

// === Backtesting Dates === thanks to Trost

testPeriodSwitch = input(true, "Custom Backtesting Dates")
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testStartHour = input(0, "Backtest Start Hour")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, testStartHour, 0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(1, "Backtest Stop Month")
testStopDay = input(5, "Backtest Stop Day")
testStopHour = input(0, "Backtest Stop Hour")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, testStopHour, 0)
testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false
testPeriod_1 = testPeriod()
isPeriod = testPeriodSwitch == true ? testPeriod_1 : true
// === /END