Strategi Mengikuti Tren Rata-rata Bergerak bertahap menggunakan beberapa rata-rata bergerak dari periode yang berbeda untuk menangkap perubahan tren harga, dikombinasikan dengan indikator osilator untuk menentukan area overbought dan oversold, membentuk tren pembelian rendah dan penjualan tinggi mengikuti strategi perdagangan. Strategi ini cocok untuk posisi kepemilikan jangka menengah hingga panjang untuk melacak tren pasar penting.
Strategi ini menggunakan beberapa set rata-rata bergerak, seperti 18-, 26-, 36-periode MAs, untuk menangkap tren harga. Ketika MAs yang lebih pendek melintasi di atas MAs yang lebih panjang, itu menandakan tren naik, sehingga pergi panjang. Ketika MAs yang lebih pendek melintasi di bawah MAs yang lebih panjang, itu menunjukkan tren menurun, sehingga pergi pendek.
Sementara itu, indikator osilator seperti MACD, RSI, EFI digunakan untuk mengidentifikasi kondisi overbought dan oversold. Misalnya, MACD berputar dari negatif ke positif menunjukkan pergi panjang, sementara berputar dari positif ke negatif menunjukkan pergi pendek. RSI mundur dari tingkat tinggi adalah sinyal untuk shorting, sementara rebound dari tingkat rendah adalah sinyal untuk pergi panjang. EFI di bawah 0 berarti pergi panjang, sementara di atas 0 berarti pergi pendek.
Aturan masuk:
Long: Crossover MA pendek ke atas Long MA AND MACD>0 AND RSI rebound dari terendah AND EFI<0
Short: Crossover MA pendek ke bawah Long MA AND MACD<0 AND RSI retreat dari high AND EFI>0
Aturan stop loss:
Long SL: EFI di atas ambang dan harga di bawah MA yang ditentukan
Short SL: EFI di bawah ambang dan harga di atas MA yang ditentukan
Beberapa MAs menangkap titik perubahan tren utama.
Kombinasi osilator menghindari mengejar puncak dan menjual terendah.
Aturan SL mempertimbangkan tren dan arus uang, secara efektif mengendalikan risiko.
Parameter dioptimalkan melalui backtesting yang luas, adaptif untuk sebagian besar lingkungan pasar.
Frekuensi perdagangan sedang, sinyal stabil, cocok untuk pelacakan tren jangka panjang.
Kecelakaan mendadak dapat membatalkan SL, rentang SL harus diperluas.
Terlalu banyak sinyal selama pasar rentang, parameter harus disesuaikan.
Menyimpan terlalu lama dapat memperkuat kerugian, MAs yang lebih pendek dapat mengambil SL lebih cepat.
Backtest overfitting, hasil perdagangan nyata menunggu validasi.
Mengoptimalkan parameter untuk pengembalian yang lebih tinggi dan frekuensi yang tepat.
Tambahkan algoritma pembelajaran mesin untuk mengoptimalkan parameter secara dinamis.
Membangun mekanisme SL adaptif berdasarkan kondisi pasar yang berbeda.
Tambahkan filter untuk menentukan sinyal masuk yang lebih baik.
Menggabungkan strategi ukuran posisi untuk mengontrol ukuran taruhan tunggal.
Strategi Mengikuti Tren Rata-rata Bergerak bertahap secara efektif melacak tren utama dengan mengidentifikasi arah tren dengan beberapa MAs dan memasuki sinyal yang disaring, mencapai keuntungan yang stabil melalui kepemilikan jangka panjang. Strategi ini telah menunjukkan ketahanan melalui optimasi parameter tetapi masih membutuhkan peningkatan dalam pengendalian risiko dan adaptivitas untuk mengurangi penarikan dan meningkatkan tingkat kemenangan. Secara keseluruhan, filosofi inti menunjukkan potensi yang kuat untuk penelitian dan aplikasi 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)