
Strategi pengesanan trend garis rata-rata bertahap menggunakan purata bergerak pelbagai kitaran yang berbeza, menangkap perubahan trend harga, ditambah dengan penunjuk pengayun untuk menilai kawasan overbought dan oversold, untuk mencapai strategi perdagangan pengesanan trend yang rendah dan tinggi. Strategi ini digunakan untuk memegang kedudukan garis panjang dan tengah, untuk mengesan keadaan trend yang lebih jelas.
Strategi ini menggunakan pelbagai kumpulan purata bergerak seperti 18 kitaran, 26 kitaran, dan 36 kitaran untuk menangkap trend harga. Apabila garis purata jangka pendek di atas garis purata jangka panjang dianggap dalam trend naik, lakukan lebih banyak; Apabila garis purata jangka pendek di bawah garis purata jangka panjang dianggap dalam trend menurun, lakukan short.
Pada masa yang sama, strategi ini juga menggunakan indikator pengayun seperti MACD, RSI, dan EFI untuk menilai kawasan jual beli yang berlebihan. Sebagai contoh, garis tiang MACD lebih banyak daripada yang negatif, dan kosong oleh yang negatif; kosong apabila RSI tinggi turun, kosong apabila rendah naik; Indeks EFI lebih besar daripada 0 dan lebih besar daripada 0 kosong.
Peraturan kemasukan:
Multiple Order: Long Average Line dan Short Average Line dan MACD>0 dan RSI Low Bounce dan EFI <0
Blank: Garis purata pendek di bawah garis purata panjang AND MACD <0 AND RSI tinggi kembali AND EFI> 0
Peraturan Stop Loss:
Multiple single stop loss: EFI lebih besar daripada penurunan nilai dan harga jatuh di bawah garis purata yang ditetapkan
Hentian kad kosong: Indeks EFI kurang daripada penurunan nilai dan harga melepasi garis purata yang ditetapkan
Robustness and anti-fragility are key characteristics that help ensure resilience over time to capture major trend change points.
Kombinasi penunjuk pengayun digunakan untuk menentukan kawasan yang terlalu banyak dibeli dan dijual, dan mengelakkan mengejar kenaikan dan penurunan.
Peraturan Henti Kerosakan mempertimbangkan trend dan aliran dana secara menyeluruh, mengawal risiko dengan berkesan.
Parameter strategi telah diuji berulang kali dan dioptimumkan untuk menyesuaikan diri dengan kebanyakan keadaan.
Frekuensi operasi sederhana, isyarat perdagangan lebih stabil, mewujudkan trend pengesanan memegang talian panjang.
Kejadian mendadak yang menyebabkan kejatuhan boleh menyebabkan kerugian yang terhad, dan anda harus meningkatkan kerugian yang terhad.
Frekuensi dagangan mungkin terlalu tinggi dalam keadaan gegaran, parameter harus diselaraskan dengan sewajarnya untuk mengurangkan frekuensi dagangan.
Penyimpanan terlalu lama boleh menyebabkan kerugian berkembang, dan kitaran garis purata harus dikurangkan dengan sewajarnya, dan kerugian harus dihentikan tepat pada masanya.
Terdapat risiko kecocokan pada masa pengesanan semula, kesan cakera tetap akan diuji.
Mengoptimumkan frekuensi dagangan dan keuntungan untuk mencari kombinasi parameter terbaik.
Menambah algoritma pembelajaran mesin, parameter pengoptimuman dinamik, menyesuaikan diri dengan perubahan pasaran.
Menambah mekanisme penangguhan yang bersesuaian, menggunakan tahap penangguhan yang berbeza dalam keadaan yang berbeza.
Menambah kestabilan strategi dengan penambahan penunjuk masa masuk.
Meningkatkan strategi pengurusan wang, mengawal saiz kedudukan tunggal, dan menguruskan risiko keseluruhan.
Strategi pengesanan trend garis rata yang beransur-ansur, menilai arah trend dengan pelbagai garis rata, menggabungkan penapis penunjuk ke masa, dapat mengesan trend besar dengan berkesan, mencapai tujuan untuk memegang pendapatan yang stabil. Strategi ini telah stabil melalui pengoptimuman parameter, tetapi masih perlu memperbaiki lagi kawalan risiko dan mekanisme penyesuaian diri, mengurangkan penarikan balik dan meningkatkan kadar kemenangan. Secara keseluruhan, strategi ini sebagai skema pengesanan trend yang mudah dan praktikal, dan psikologi terasnya mempunyai skalabilitas yang kuat, dan patut diteliti lebih lanjut.
/*backtest
start: 2023-09-25 00:00:00
end: 2023-10-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © murdocksilva
//@version=5
strategy("Daily_Mid Term_Consulting BOLT")
//calculo longuitud
longuitud = input(58, title= "longitud_sma")
px = ta.sma(close, 1)
px2 = ta.sma(low, 1)
Length1 = input.int(18)
Length2 = input.int(18)
Length3 = input.int(26)
Length4 = input.int(36)
Length5 = input.int(78)
Length6 = input.int(1)
Length7 = input.int(1500)
Length8 = input.int(58)
Length9 = input.int(3000)
Length10 = input.int(2)
Length11 = input.int(14)
ma1 = ta.sma(low, Length1)
ma2 = ta.sma(high, Length2)
ma3 = ta.sma(close, Length3)
ma4 = ta.sma(close, Length4)
ma5 = ta.sma(close, Length5)
ma6 = ta.sma(close, Length6)
ma7 = ta.sma(close, Length7)
ma8 = ta.sma(close, Length8)
ma9 = ta.sma(close, Length9)
ma10 = ta.sma(close, Length10)
ma11 = ta.sma(close, Length11)
// calculo EFI
efi = (close[1]-close) * volume / 1000
efi_indicador = (efi[1] + efi) / 2
//Variable RSI - calculo desv estandar
b = (px-ma10)*(px-ma10)
b2 = (px[1]-ma10[1])*(px[1]-ma10[1])
c = b + b2
c2 = c / 2
desv = math.sqrt(c2)/10
//calculo MACD
macd = ma4 - ma5
//calculo RSI
rsi = ta.rsi(close, 9)
// calculo Divergencia
ma = ta.sma(close, longuitud)
dist = close - ma
porcentaje = dist * 100 / close
ma_dista = ta.sma(porcentaje, 333)
//condición de entrada y salida long
long = ma1[1] < ma1 and ma2[1] < ma2 and macd > 0 and px > ma3 and efi_indicador < 9 and px > ma7 and macd[1] < macd
clong = efi_indicador > 22000 and px < ma8
strategy.entry("BUY", strategy.long, when = long)
strategy.close("BUY", when = clong)
//condición de entrada y salida short
short = ma1[1] > ma1 and ma2[1] > ma2 and macd < 0 and px < ma3 and efi_indicador > 9 and macd[1] > macd
cshort = efi_indicador < 14000 and px > ma8 and ma11 > desv
strategy.entry("SELL", strategy.short, when = short)
strategy.close("SELL", when = cshort)
//SL Y TP
//strategy.exit("long exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)
//strategy.exit("shot exit", "Daily_Mid Term_Consulting BOLT", profit = close * 40 / syminfo.mintick, loss = close * 0.02 / syminfo.mintick)
// GRAFICA smas
plot(ma1, color=color.new(color.orange, 0))
plot(ma2, color=color.new(color.orange, 0))
plot(ma3, color=color.new(color.orange, 0))
plot(ma4, color=color.new(color.orange, 0))
plot(ma5, color=color.new(color.orange, 0))
plot(ma6, color=color.new(color.green, 0))
plot(ma7, color=color.new(color.orange, 0))
plot(ma8, color=color.new(color.orange, 0))
plot(ma9, color=color.new(color.orange, 0))
//GRAFICA MACD
plot(macd, color=color.new(color.red, 0), style = plot.style_columns)
//GRAFICA DIVERGENCIA
plot(porcentaje, style = plot.style_columns)
//GRAFICA MA DIVERGENCIA
plot(ma_dista, color=color.new(color.white, 0))
//GRAFICA MA DIVERGENCIA
plot(desv, color=color.new(color.blue, 0))
//GRAFICA EFI
plot(efi_indicador, color=color.new(color.yellow, 0))
// GRAFICA RSI
l1 = hline(70, color=color.new(color.green, 0))
l2 = hline(30, color=color.new(color.green, 0))
plot(rsi, color=color.new(color.white, 0))
//prueba 1 stop loss and take profit
//sl = 0.05
//tp = 0.1
//calculo de precio para sl y tp
//longstop=strategy.position_avg_price*(1-sl)
//longprofit=strategy.position_avg_price*(1+tp)
//shortstop=strategy.position_avg_price*(1+sl)
//shortprofit=strategy.position_avg_price*(1-tp)
//if (long)
// strategy.exit("BUY", strategy.long)
//sl and tp long|short
//if strategy.entry("BUY", strategy.long)
//if strategy.position_avg_price > 0
//strategy.exit("BUY", limit = longprofit, stop = longstop)
//if strategy.position_avg_price < 0
//strategy.exit("SELL", limit = shortprofit, stop=shortstop)