Strategi Adaptive Moving Average Crossover Trailing Stop

SMA MA EMA ATR SL TP
Tarikh penciptaan: 2024-07-29 14:27:58 Akhirnya diubah suai: 2024-07-29 14:27:58
Salin: 0 Bilangan klik: 544
1
fokus pada
1617
Pengikut

Strategi Adaptive Moving Average Crossover Trailing Stop

Gambaran keseluruhan

Strategi penarikan salib rata-rata bergerak yang menyesuaikan diri adalah strategi perdagangan kuantitatif yang menggabungkan beberapa petunjuk teknikal. Strategi ini berdagang terutamanya berdasarkan isyarat silang sederhana bergerak sederhana ((SMA) yang cepat dan lambat, sambil menggunakan penarikan salib yang menyesuaikan diri untuk menguruskan risiko. Strategi ini juga menggabungkan beberapa ciri lanjutan, seperti saiz kedudukan berdasarkan kadar turun naik dan tahap penarikan salib yang menyesuaikan diri, untuk meningkatkan kebolehpasaran dan robustnya dalam keadaan pasaran yang berbeza.

Prinsip Strategi

Logik utama strategi ini merangkumi beberapa komponen utama:

  1. Moving Average Crossover: Menggunakan purata bergerak mudah ((SMA) dengan dua kitaran yang berbeza, iaitu SMA pantas ((SMA 5 secara lalai) dan SMA perlahan ((SMA 50 secara lalai)). Apabila SMA pantas melintasi SMA perlahan ke atas, ia akan mencetuskan beberapa isyarat.

  2. Ukuran Kedudukan: Strategi ini menggunakan kaedah ukuran kedudukan dinamik berdasarkan baki akaun dan harga semasa. Ia juga memperkenalkan faktor “keyakinan” yang dapat menyesuaikan peratusan dana yang dimasukkan.

  3. Tracking stop loss: pelaksanaan mekanisme tracking stop loss berdasarkan peratusan. Tahap stop loss akan bergerak ke atas apabila harga meningkat untuk mengunci keuntungan dan mengehadkan penarikan balik.

  4. Ciri-ciri penyesuaian diri: Jika pilihan “fancy_tests” diaktifkan, strategi akan menggunakan peratusan stop loss dinamik berdasarkan perbezaan piawai, membolehkan tahap stop loss untuk menyesuaikan diri dengan turun naik pasaran.

  5. Logik Keluar: Strategi ini bergantung kepada pengesanan berhenti untuk menutup kedudukan, tanpa menetapkan titik keuntungan tetap.

Kelebihan Strategik

  1. Trend Follow: Dengan menggunakan moving average crossover, strategi ini dapat menangkap trend jangka menengah dan jangka panjang, yang membantu memperoleh keuntungan yang ketara dalam trend yang kuat.

  2. Pengurusan risiko: Menggunakan mekanisme pengekalan kerugian untuk mengawal risiko penurunan dengan berkesan dan membolehkan keuntungan berkembang bebas.

  3. Kesesuaian diri: Strategi dapat menyesuaikan diri dengan lebih baik dengan keadaan pasaran yang berbeza dengan menyesuaikan tahap hentian dengan faktor kadar turun naik.

  4. Pengurusan Wang: Penentuan saiz kedudukan secara dinamik membantu meningkatkan saiz dagangan dengan pertumbuhan akaun, dan juga secara automatik mengurangkan risiko apabila akaun berkurangan.

  5. Fleksibiliti: Strategi menyediakan pelbagai parameter yang boleh disesuaikan, seperti purata bergerak, peratusan hentian, dan sebagainya, yang boleh dioptimumkan oleh pengguna mengikut pasaran yang berbeza dan pilihan risiko peribadi.

Risiko Strategik

  1. Penembusan palsu: Dalam pasaran yang bergelombang atau bergelombang, penembusan palsu rata-rata bergerak mungkin sering berlaku, yang menyebabkan beberapa perlawanan berhenti.

  2. Ketinggalan: Purata bergerak pada dasarnya adalah penunjuk ketinggalan, yang mungkin tidak bertindak balas dengan cepat dalam pasaran yang bergolak.

  3. Perdagangan berlebihan: Jika parameter tidak ditetapkan dengan betul, ia boleh menyebabkan masuk dan keluar yang kerap, meningkatkan kos transaksi.

  4. Risiko penarikan balik: Walaupun ada penarikan balik yang dijejaki, risiko penarikan balik yang lebih besar mungkin berlaku dalam pasaran yang berbalik dengan cepat.

  5. Perdagangan satu arah: Strategi ini pada masa ini hanya melakukan lebih banyak daripada kosong, mungkin kehilangan peluang atau mengalami kerugian dalam trend menurun.

Arah pengoptimuman strategi

  1. Analisis pelbagai kerangka masa: memperkenalkan indikator penilaian trend jangka panjang, seperti purata bergerak dengan tempoh yang lebih lama, untuk mengurangkan isyarat palsu.

  2. Menyertai Logik Shorting: memperluaskan strategi untuk menyokong perdagangan shorting, meningkatkan kepelbagaian strategi dan peluang keuntungan.

  3. Optimumkan masa masuk: Pertimbangkan untuk memfilterkan isyarat perdagangan untuk meningkatkan ketepatan masuk dalam kombinasi dengan petunjuk teknikal lain (seperti RSI, MACD, dll.).

  4. Pengoptimuman parameter dinamik: pelaksanaan mekanisme penyesuaian parameter adaptif, seperti penyesuaian kitaran purata bergerak berdasarkan pergerakan pasaran yang tidak menentu.

  5. Menambah mekanisme capaian keuntungan: Selain daripada menjejaki hentian kerugian, pertimbangkan untuk menambah peraturan capaian keuntungan berdasarkan petunjuk teknikal atau sasaran tetap.

  6. Pengurusan kedudukan yang lebih baik: melaksanakan strategi saiz kedudukan yang lebih rumit, seperti berdasarkan Kelly atau kaedah pembinaan risiko lain.

  7. Menambah penapis asas: Untuk perdagangan saham, penapis asas boleh dipertimbangkan sebagai syarat penapisan tambahan.

ringkaskan

Strategi Stop Loss Tracking Cross Moving Average Adaptif adalah strategi komprehensif yang menggabungkan beberapa konsep perdagangan kuantitatif. Strategi ini menangkap trend dengan menyeberang purata bergerak, menggunakan risiko pengurusan stop loss untuk dilacak, dan meningkatkan kesesuaian dengan penyesuaian parameter dinamik. Walaupun terdapat beberapa risiko dan batasan yang melekat, dengan pengoptimuman parameter yang berhati-hati dan penambahbaikan strategi lanjut, ia mempunyai potensi untuk menjadi sistem perdagangan yang mantap.

Kod sumber strategi
/*backtest
start: 2023-07-23 00:00:00
end: 2024-07-28 00:00:00
period: 1d
basePeriod: 1h
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/
// © chinmay.hundekari

//@version=5
//@version=5
strategy("test", overlay = true)

// Calculate two moving averages with different lengths.
SLMA = input.int(50,"SMA",minval=10,step=1)
FSMA = input.int(5,"SMA",minval=1,step=1)
fancy_tests = input.bool(true,"Enable Fancy Changes")
longLossPerc = input.float(2, title="Trailing Stop Loss (%)",
     minval=0.0, step=0.1) * 0.01
stdMult = input.float(2.0, title="Standard Deviation Multiplier",
     minval=0.0, step=0.01)

float fastMA = ta.sma(close, FSMA)
float slowMA = ta.sma(close, SLMA)
float closMA = ta.sma(close, 25)

confidence = 1.0
if (fancy_tests)
    longLossPerc := stdMult * ta.stdev(ohlc4, 20)/close
balance = strategy.initial_capital + strategy.netprofit
balanceInContracts = balance* confidence/close

// Enter a long position when `fastMA` crosses over `slowMA`.
if ta.crossover(fastMA, slowMA)
    strategy.entry("BUY", strategy.long, qty=balanceInContracts)
//longStopPrice  = strategy.position_avg_price * (1 - longLossPerc)
//Trailing Stop loss Code
longStopPrice = 0.0
percLoss = longLossPerc
longStopPrice := if strategy.position_size > 0
    //if (strategy.openprofit_percent/100.0 > longLossPerc)
    //    percLoss := math.min(strategy.openprofit_percent/200.0, longLossPerc)
    stopValue = close * (1 - percLoss)
    math.max(stopValue, longStopPrice[1])
else
    0
if strategy.position_size > 0
    strategy.exit("STP", stop=longStopPrice)
plot(strategy.position_size > 0 ? longStopPrice : na,
     color=color.red, style=plot.style_cross,
     linewidth=2, title="Long Stop Loss")
// Enter a short position when `fastMA` crosses under `slowMA`.
//if ta.crossunder(fastMA, closMA)
//    strategy.close_all("SEL")//strategy.entry("sell", strategy.short)

// Plot the moving averages.
plot(fastMA, "Fast MA", color.aqua)
plot(slowMA, "Slow MA", color.orange)
plot((confidence)*(close), "Confidence", color=color.green, linewidth=2)