Sumber dimuat naik... memuat...

Trend Dual-SMA yang Dinamis Mengikut Strategi dengan Pengurusan Risiko Pintar

Penulis:ChaoZhang, Tarikh: 2024-11-29 11:06:38
Tag:SMATPSLATRROC

img

Ringkasan

Strategi ini adalah sistem trend-mengikuti yang pintar berdasarkan purata bergerak berganda, yang mengenal pasti trend pasaran dengan mengira purata bergerak tertinggi dan terendah bersama dengan penunjuk cerun, digabungkan dengan mekanisme mengambil keuntungan dan menghentikan kerugian dinamik untuk pengurusan risiko.

Prinsip Strategi

Strategi ini menggunakan sistem purata bergerak berganda sebagai logik dagangan terasnya, mengira purata bergerak pada kedua-dua siri harga yang tinggi dan rendah. Isyarat panjang dihasilkan apabila harga pecah di atas purata atas dengan kemiringan positif yang ketara, sementara isyarat pendek berlaku apabila harga pecah di bawah purata bawah dengan kemiringan negatif yang ketara. Untuk mengelakkan perdagangan yang kerap di pasaran berayun, strategi ini menggabungkan mekanisme ambang kemiringan, mengesahkan kesahihan trend hanya apabila perubahan kemiringan purata bergerak melebihi ambang yang ditetapkan. Untuk pengurusan risiko, strategi melaksanakan mekanisme mengambil keuntungan dan menghentikan kerugian yang dinamik, menggunakan sasaran keuntungan yang agresif pada mulanya sambil menetapkan penangguhan untuk melindungi keuntungan yang diperoleh.

Kelebihan Strategi

  1. Ketepatan tinggi dalam pengenalan trend: Gabungan dua purata bergerak dan ambang cerun berkesan menapis isyarat palsu di pasaran sampingan
  2. Kawalan risiko yang komprehensif: Mekanisme stop-loss dinamik menyesuaikan diri secara automatik dengan pergerakan harga, kedua-dua melindungi keuntungan dan membolehkan trend berkembang
  3. Parameter fleksibel: Parameter utama seperti purata bergerak tempoh, nisbah keuntungan / kerugian, dan ambang cerun boleh diselaraskan untuk ciri pasaran yang berbeza
  4. Logik yang jelas dan mudah: Logik strategi adalah intuitif dan mudah difahami, memudahkan penyelenggaraan dan pengoptimuman
  5. Kemudahan penyesuaian yang tinggi: Boleh digunakan untuk jangka masa dan instrumen dagangan yang berbeza

Risiko Strategi

  1. Risiko pembalikan trend: Semasa pembalikan trend secara tiba-tiba, berhenti menyusul mungkin tidak mengunci semua keuntungan dalam masa
  2. Sensitiviti parameter: Prestasi strategi sensitif kepada tetapan parameter, persekitaran pasaran yang berbeza mungkin memerlukan kombinasi parameter yang berbeza
  3. Prestasi pasaran berayun: Walaupun penapisan cerun, isyarat palsu masih boleh berlaku di pasaran yang sangat tidak menentu
  4. Kesan pergeseran: Semasa tempoh yang sangat tidak menentu, harga pelaksanaan sebenar mungkin jauh dari harga isyarat

Arahan pengoptimuman

  1. Memperkenalkan mekanisme penyesuaian turun naik: Pertimbangkan penyesuaian dinamik ambang cerun dan jarak stop-loss berdasarkan ATR
  2. Tambah penapisan persekitaran pasaran: Sertakan penunjuk kekuatan trend untuk menggunakan kombinasi parameter yang berbeza dalam keadaan pasaran yang berbeza
  3. Mengoptimumkan mekanisme mengambil keuntungan dan menghentikan kerugian: Merancang sasaran keuntungan pelbagai peringkat untuk secara beransur-ansur mengunci keuntungan separa
  4. Tambah analisis jumlah: Masukkan data jumlah untuk mengesahkan kesahihan trend
  5. Memperkenalkan penapisan masa: Elakkan perdagangan semasa tempoh pasaran yang sangat tidak menentu

Ringkasan

Ini adalah strategi perdagangan kuantitatif yang secara organik menggabungkan trend berikut dengan pengurusan risiko. Melalui kerjasama sistem purata bergerak berganda dan ambang cerun, strategi ini dapat menangkap dengan tepat trend pasaran, sementara mekanisme mengambil keuntungan dan menghentikan kerugian dinamik menyediakan kawalan risiko yang komprehensif. Walaupun terdapat ruang untuk peningkatan dalam pemilihan parameter dan kesesuaian pasaran, kerangka logik yang jelas dan sistem parameter yang fleksibel menyediakan asas yang baik untuk pengoptimuman berikutnya.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("SMA Buy/Sell Strategy with Significant Slope", overlay=true)

// Parametri configurabili
smaPeriod = input.int(20, title="SMA Period", minval=1)
initialTPPercent = input.float(5.0, title="Initial Take Profit (%)", minval=0.1)  // Take Profit iniziale (ambizioso)
trailingSLPercent = input.float(1.0, title="Trailing Stop Loss (%)", minval=0.1) // Percentuale di trailing SL
slopeThreshold = input.float(0.05, title="Slope Threshold (%)", minval=0.01)    // Soglia minima di pendenza significativa

// SMA calcolate su HIGH e LOW
smaHigh = ta.sma(high, smaPeriod)
smaLow = ta.sma(low, smaPeriod)

// Funzioni per pendenza significativa
isSignificantSlope(sma, threshold) =>
    math.abs(sma - sma[5]) / sma[5] > threshold / 100

slopePositive(sma) =>
    sma > sma[1] and isSignificantSlope(sma, slopeThreshold)

slopeNegative(sma) =>
    sma < sma[1] and isSignificantSlope(sma, slopeThreshold)

// Condizioni di BUY e SELL
buyCondition = close > smaHigh and low < smaHigh and close[1] < smaHigh and slopePositive(smaHigh)
sellCondition = close < smaLow and high > smaLow and close[1] > smaLow and slopeNegative(smaLow)

// Plot delle SMA
plot(smaHigh, color=color.green, linewidth=2, title="SMA 20 High")
plot(smaLow, color=color.red, linewidth=2, title="SMA 20 Low")

// Gestione TP/SL dinamici
longInitialTP = strategy.position_avg_price * (1 + initialTPPercent / 100)
shortInitialTP = strategy.position_avg_price * (1 - initialTPPercent / 100)

// Trailing SL dinamico
longTrailingSL = close * (1 - trailingSLPercent / 100)
shortTrailingSL = close * (1 + trailingSLPercent / 100)

// Chiusura di posizioni attive su segnali opposti
if strategy.position_size > 0 and sellCondition
    strategy.close("Buy", comment="Close Long on Sell Signal")
if strategy.position_size < 0 and buyCondition
    strategy.close("Sell", comment="Close Short on Buy Signal")

// Apertura di nuove posizioni con TP iniziale e Trailing SL
if buyCondition
    strategy.entry("Buy", strategy.long, comment="Open Long")
    strategy.exit("Long TP/Trailing SL", from_entry="Buy", limit=longInitialTP, stop=longTrailingSL)

if sellCondition
    strategy.entry("Sell", strategy.short, comment="Open Short")
    strategy.exit("Short TP/Trailing SL", from_entry="Sell", limit=shortInitialTP, stop=shortTrailingSL)


Berkaitan

Lebih lanjut