Henti rugi dinamik menyesuaikan diri dengan strategi ketuk momentum turun naik ATR


Tarikh penciptaan: 2023-10-09 15:30:29 Akhirnya diubah suai: 2023-10-09 15:30:29
Salin: 0 Bilangan klik: 628
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi ini menggabungkan nilai K acak penunjuk momentum dan ATR penunjuk kadar turun naik, secara dinamik menyesuaikan garis berhenti dan garis masuk nilai K, mewujudkan idea untuk menyesuaikan secara automatik garis berhenti dan garis masuk mengikut turun naik pasaran.

Prinsip Strategi

  1. Nilai K yang dikira dengan panjang len (sma ((stoch ((close, high, low, len), smoothK), mewakili nilai K penunjuk rawak。

  2. Nilai ATR yang dikira dengan panjang lenatr ((len) ≠

  3. Merancang plot garis hentian ((rsi ((atr, len) + lowLine, …, title = “low line”) dan plot garis masuk ((rsi ((atr, len) berdasarkan nilai ATR*-1+100-lowLine, …, title = “up line”)。

  4. Menentukan bila nilai K akan menembusi garis masuk (crossover) dan garis henti (crossunder) untuk menghasilkan isyarat beli dan jual.

  5. Menggambar warna latar belakang pembelian dan penjualan.

  6. Apabila isyarat di atas dipenuhi, anda boleh membeli dan menjual dan menetapkan stop loss.

Analisis kelebihan strategi

  1. Strategi ini secara dinamik menyesuaikan garis berhenti dan garis masuk mengikut ATR turun naik pasaran, dan secara automatik dapat menyesuaikan risiko berhenti mengikut turun naik pasaran.

  2. Apabila pasaran berubah-ubah, jarak antara garis berhenti dan garis masuk lebih besar untuk mengelakkan tergesa-gesa.

  3. Apabila pasaran bergelombang tenang, jarak antara garis berhenti dan garis masuk akan semakin dekat, sehingga anda dapat menghentikan kerugian tepat pada masanya.

  4. Menggunakan nilai K penunjuk momentum untuk menentukan masuk dan keluar. Nilai K dapat bertindak balas terhadap kelajuan perubahan harga, dapat menangkap titik perubahan.

  5. Gabungan penunjuk kuantiti dinamik dan penunjuk kadar turun naik, kedua-dua boleh menangkap trend dan boleh menyesuaikan risiko secara automatik mengikut turun naik.

Analisis risiko strategi

  1. Nilai K mudah menimbulkan penembusan palsu yang mungkin mencetuskan isyarat perdagangan yang tidak perlu. Anda boleh menyesuaikan parameter nilai K dengan betul untuk meluruskan garis K.

  2. Tetapan parameter ATR terlalu besar, jarak antara garis henti dan garis masuk terlalu besar, risiko mungkin terlalu tinggi. Anda boleh menguji kestabilan parameter len yang berbeza.

  3. Tracking stop loss semata-mata tidak dapat menentukan sama ada kedudukan stop loss adalah munasabah atau tidak, dan tidak dapat mengawal risiko stop loss tunggal. Anda boleh mempertimbangkan untuk mengawal risiko stop loss tunggal dengan algoritma stop loss yang diharapkan.

  4. Isyarat strategi sering berlaku, kos dagangan tinggi. Parameter lowLine boleh disesuaikan dengan betul untuk mengawal frekuensi perdagangan.

Arah pengoptimuman strategi

  1. Uji penyesuaian parameter nilai K untuk smoothK, untuk mencari kombinasi parameter optimum untuk nilai K yang lancar.

  2. Uji nilai yang berbeza untuk parameter ATR len untuk menentukan parameter ATR yang sesuai.

  3. Mengoptimumkan parameter baris masuk lowLine, mencari parameter optimum untuk mengawal kekerapan transaksi.

  4. Pertimbangkan untuk memfilterkan isyarat masuk ke dalam pasaran dengan penunjuk lain, untuk mengelakkan penembusan palsu. Contohnya, dengan penunjuk jumlah perdagangan, penunjuk KDJ dan sebagainya.

  5. Pertimbangkan cara untuk mengoptimumkan hentikan kerugian, memperbaiki hentikan kerugian yang diharapkan, dan mengawal risiko hentikan kerugian secara aktif.

ringkaskan

Strategi ini berdasarkan nilai K penunjuk momentum dan penunjuk kadar turun naik ATR yang mewujudkan pemikiran untuk menyesuaikan garis berhenti dan garis masuk secara dinamik, yang dapat menangkap trend dan dapat menyesuaikan risiko secara automatik mengikut turun naik, merupakan pemikiran strategi yang sangat inovatif dan praktikal. Pengoptimuman lanjut melalui parameter, memperbaiki cara berhenti, dan sebagainya, dapat menjadikan strategi lebih stabil dan boleh dipercayai, dengan prospek pembangunan yang sangat baik.

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

//@version=3
strategy("Stoch + ATR", overlay=false, pyramiding = 0, calc_on_order_fills = false, commission_type =  strategy.commission.percent, commission_value = 0.0454, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

len = input(34, minval=1, title="Length for Main Stochastic & ATR") 
smoothK = input(2, minval=1, title="SmoothK for Main Stochastic")
lowLine = input(10, minval=-50, maxval=50, title="Multiplier for up/low lines")

//Stoch formula
k = sma(stoch(close, high, low, len), smoothK)
plot(k, color=aqua, title = "Stoch")

//len=input
atr=atr(len)
plot(rsi(atr, len)+lowLine , color=red,linewidth=2, title = "low line")
plot(rsi(atr, len)*-1+100-lowLine, color=lime,linewidth=2, title = "up line")

aboveLine = crossunder(k,(rsi(atr, len)+lowLine))? 1 : 0
belowLine = crossover(k,(rsi(atr, len)*-1+100-lowLine))? 1 : 0

aboveLine2 = crossover(k,(rsi(atr, len)+lowLine))? 1 : 0
belowLine2 = crossunder(k,(rsi(atr, len)*-1+100-lowLine))? 1 : 0

skip=(aboveLine2==1 or belowLine2==1) and (aboveLine==1 or belowLine==1)? 1 : 0

//BackGroound Color Plots
plotchar(belowLine==1 and skip==0, title="Buy Signal", char='B', location=location.bottom, color=white, transp=0, offset=0)
plotchar(aboveLine==1 and skip==0, title="Sell Signal", char='S', location=location.top, color=white, transp=0, offset=0)
plotchar(belowLine2==1 and skip==0, title="Close Signal", char='C', location=location.bottom, color=white, transp=0, offset=0)
plotchar(aboveLine2==1 and skip==0, title="Close Signal", char='C', location=location.top, color=white, transp=0, offset=0)

bgcolor(aboveLine==1 ? red : na, transp=30, title = "sell signal")
bgcolor(belowLine==1 ? lime : na, transp=30, title = "buy signal")

bgcolor(aboveLine2==1 ? lime : na, transp=80, title = "close short")
bgcolor(belowLine2==1 ? red : na, transp=80, title = "close long")

bgcolor(skip==1 ? black : na, transp=0, title = "skip signal")

//strategy
longCondition = belowLine==1
shortCondition = aboveLine==1

strategy.entry("BUY", strategy.long, when = longCondition)
strategy.entry("SELL", strategy.short, when = shortCondition)
strategy.cancel_all(when = skip==1)