
Strategi pelacakan tren garis rata-rata progresif menggunakan berbagai jenis rata-rata bergerak dari berbagai periode, untuk menangkap perubahan tren harga, ditambah dengan indikator osilator untuk menilai zona overbought dan oversold, untuk mencapai strategi perdagangan pelacakan tren dengan harga rendah dan tinggi. Strategi ini berlaku untuk memegang posisi garis panjang dan menengah, untuk melacak tren yang lebih jelas.
Strategi ini menggunakan beberapa set rata-rata bergerak, seperti 18 siklus, 26 siklus, 36 siklus, dan lain-lain untuk menangkap tren harga. Jika rata-rata jangka pendek berada di atas rata-rata jangka panjang, dianggap sebagai tren naik. Jika rata-rata jangka pendek berada di bawah rata-rata jangka panjang, dianggap sebagai tren turun.
Strategi ini juga menggunakan indikator osilator seperti MACD, RSI, dan EFI untuk menilai zona overbought dan oversold. Misalnya, garis pilar MACD berbalik dari negatif ke positif, dan berbalik dari negatif ke negatif; RSI tinggi kosong saat turun, kosong saat naik; Indikator EFI lebih kecil dari 0 lebih besar dari 0 dan kosong.
Aturan masuk:
Multiple: Short Average Line Over Long Average Line AND MACD>0 AND RSI Low Bounce AND EFI<0
Blank: garis rata-rata pendek di bawah garis rata-rata panjang AND MACD <0 AND RSI tinggi mundur AND EFI> 0
Aturan Stop Loss:
Multiple Stop Loss: EFI lebih besar dari penurunan dan harga di bawah garis rata-rata yang ditentukan
Stop loss: EFI kurang dari penurunan nilai dan harga melewati garis rata-rata yang ditentukan
Robustness and anti-fragility are key characteristics that help ensure resilience over time to capture major trend change points. robustness and anti-fragility are key characteristics that help ensure resilience over time to capture major trend change points.
Kombinasi indikator oscillator digunakan untuk menilai zona overbought dan oversold, menghindari mengejar high dan low.
Aturan Stop Loss mempertimbangkan tren dan aliran dana secara menyeluruh, dan mengendalikan risiko secara efektif.
Parameter kebijakan telah dioptimalkan melalui pengujian berulang dan dapat disesuaikan dengan sebagian besar situasi.
Operasi frekuensi sedang, sinyal perdagangan relatif stabil, untuk mencapai garis panjang memegang trend pelacakan.
Kejadian yang terjadi secara tiba-tiba dapat menyebabkan kerugian yang tidak terhindarkan.
Frekuensi perdagangan mungkin terlalu tinggi dalam situasi yang bergejolak. Parameter harus disesuaikan dengan tepat untuk mengurangi frekuensi perdagangan.
Periode kepemilikan yang terlalu lama dapat menyebabkan peningkatan kerugian. Periode rata-rata harus dipersingkat secara tepat dan kerugian harus dihentikan tepat waktu.
Ada risiko over-fitting pada saat pengujian, efek langsung harus diperiksa.
Optimalkan frekuensi perdagangan dan keuntungan untuk menemukan kombinasi parameter terbaik.
Menambahkan algoritma pembelajaran mesin, parameter optimasi dinamis, dan beradaptasi dengan perubahan pasar.
Menambahkan mekanisme penangguhan kerugian adaptif, menggunakan tingkat penangguhan yang berbeda untuk berbagai situasi.
Dengan lebih banyak indikator untuk menentukan waktu masuk, meningkatkan stabilitas strategi.
Meningkatkan strategi pengelolaan dana, mengontrol ukuran posisi tunggal, dan mengelola risiko secara keseluruhan.
Strategi pelacakan tren garis rata-rata bertahap, menilai arah tren dengan multi-garis rata-rata, menggabungkan penyaringan indikator untuk memasuki waktu, dapat secara efektif melacak tren besar, mencapai tujuan untuk mempertahankan pendapatan yang stabil. Strategi ini telah memiliki stabilitas tertentu melalui pengoptimalan parameter, tetapi masih perlu memperbaiki kontrol risiko dan mekanisme penyesuaian diri, mengurangi kemunduran dan meningkatkan tingkat kemenangan. Secara keseluruhan, strategi ini merupakan skema pelacakan tren yang sederhana dan praktis, dan konsep inti memiliki skalabilitas yang kuat, layak untuk 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)