
Strategi ini berdasarkan kepada penunjuk integrator yang disesuaikan, untuk mengesan arah trend harga, dengan penjumlahan jarak harga dengan purata bergerak.
Strategi ini menggunakan penunjuk tersuai untuk mengumpulkan jarak harga dari purata bergerak, seperti berikut:
Harga dikira jarak k=close-sma ((close,200) kepada purata bergerak sederhana dengan panjang 200
Mendefinisikan kitaran pengumpulan s=29, dengan penjumlahan nilai k dalam kitaran pengumpulan s terkini: sum = 0, for i = 0 to s, sum := sum + k[i]
Isyarat melakukan lebih dihasilkan apabila sum>0 dan isyarat kosong dihasilkan apabila sum<0
Apabila masuk ke dalam kedudukan berbilang, jika sum<0 maka ia adalah kosong; apabila masuk ke dalam kedudukan berdekatan, jika sum>0 maka ia adalah kosong
Strategi ini menilai arah trend harga secara keseluruhan dengan mengesan jumlah positif dan negatif dari jarak harga dengan purata bergerak, dan apabila nilai positif dan positif, menganggap harga berada dalam trend menaik, harus memegang banyak kepala; apabila nilai positif dan negatif, menganggap harga berada dalam trend menurun, harus memegang kepala kosong.
Menggunakan penunjuk integrator khusus untuk menentukan arah trend harga
Menggunakan pemikiran integratif, pengumpulan jarak antara harga dan purata bergerak dapat meningkatkan ketepatan penilaian trend
Logik yang agak mudah, mudah difahami dan mudah untuk dioptimumkan
Anda boleh menyesuaikan parameter kitaran integrasi secara fleksibel untuk mengoptimumkan kepekaan integrator untuk menentukan trend
Pelaporan prestasi baik, pendapatan stabil, boleh digunakan
Pengaturan kitaran integrasi yang tidak betul boleh menyebabkan integrator bertindak balas tidak sensitif, kehilangan titik peralihan trend
Pengaturan panjang purata bergerak yang tidak betul boleh menyebabkan integrator salah menilai trend harga
Kejadian besar yang mendadak menyebabkan harga berubah secara mendadak, yang menyebabkan pengukur memberi isyarat yang salah
Pemilihan varieti perdagangan yang tidak tepat, seperti memilih varieti yang terlalu berfluktuasi, akan membuat pengumpul tidak berkesan
Penyelesaian untuk menghadapi risiko:
Mengoptimumkan parameter kitaran integrasi untuk menjadikan integrator lebih sensitif terhadap perubahan trend
Uji keserasian purata bergerak dengan panjang yang berbeza, pilih panjang yang berkesan untuk menentukan trend
Menutup strategi sebelum peristiwa besar untuk mengelakkan isyarat salah yang disebabkan oleh perubahan harga yang besar
Memilih varian perdagangan dengan kadar turun naik yang rendah menjadikan pengumpul lebih berkesan
Anda boleh mempertimbangkan untuk menambah indikator lain seperti RSI dan lain-lain berdasarkan penambah untuk membuat penilaian komprehensif.
Anda boleh mengkaji pelbagai jenis purata bergerak dan integrasi jarak harga
Anda boleh cuba untuk mengoptimumkan parameter kitaran integrasi secara automatik supaya ia dapat menyesuaikan diri dengan pelbagai jenis perdagangan
Indikator jumlah dagangan boleh dimasukkan untuk mengelakkan integrator memberi isyarat yang salah apabila harga bergolak
Parameter integrator boleh dioptimumkan secara automatik melalui kaedah pembelajaran mesin dan lain-lain untuk menjadikan strategi lebih kasar
Strategi ini menggunakan integrator indikator tersuai untuk menentukan arah trend harga, menggunakan kaedah pengesanan trend yang berkesan. Logik strategi mudah dan jelas, prestasi pengukuran semula yang baik. Strategi ini boleh diperbaiki dengan cara menyesuaikan parameter integrator, menambah indikator tambahan, dan pengoptimuman automatik, untuk menjadikan strategi lebih stabil dan boleh dipercayai di lapangan.
/*backtest
start: 2023-10-09 00:00:00
end: 2023-10-16 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Indicator Integrator Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l = input(defval=170,title="Length for indicator")
s = input(title="Length of summation",defval=29)
a= sma(close,l)
r=roc(close,l)
k=close-a
sum = 0
for i = 0 to s
sum := sum + k[i]
plot(a,color=yellow,linewidth=2,transp=0)
//bc = iff( sum > 0, white, teal)
//plot(sum,color=bc, transp=20, linewidth=3,style=columns)
//plot(sma(sum,3),color=white)
//hline(0)
inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na
longCondition = sum>0
exitlong = sum<0
shortCondition = sum<0
exitshort = sum>0
strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)
strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)