Ini adalah strategi swing yang dirancang untuk pasar tren seperti crypto dan saham, menggunakan jangka waktu yang besar seperti 8 jam. Strategi ini menggunakan beberapa moving average termasuk SMA, EMA, VWMA, ALMA, SMMA, LSMA dan VWMA yang diterapkan secara terpisah ke tinggi dan rendah untuk membentuk dua garis rata-rata sebagai saluran.
Pergi panjang ketika dekat berada di atas garis rata-rata yang diterapkan pada tinggi. Pergi pendek ketika dekat berada di bawah garis rata-rata yang diterapkan pada rendah.
Strategi ini menggunakan 7 jenis rata-rata bergerak yang berbeda termasuk SMA, EMA, VWMA, ALMA, SMMA, LSMA dan VWMA.
Garis rata-rata yang diterapkan pada harga tinggi disebut avg_high. Garis rata-rata yang diterapkan pada harga rendah disebut avg_low. Dua garis ini membentuk saluran.
Pergi panjang ketika close di atas avg_high. Pergi pendek ketika close di bawah avg_low.
Stop loss untuk long adalah avg_low. Take profit adalah harga masuk *(1 + tp_long). Singkatnya, stop loss adalah avg_high, take profit adalah harga masuk *(1 - tp_short).
Keuntungan terbesar dari strategi ini adalah memanfaatkan beberapa rata-rata bergerak untuk meningkatkan profitabilitas.
Keuntungan lain adalah pendekatan saluran. Saluran membatasi jangkauan stop loss dan mengurangi risiko yang cocok untuk perdagangan swing.
Strategi ini memiliki dua risiko utama:
Kombinasi dari beberapa MAs membuat pengaturan parameter kompleks yang membutuhkan banyak tes dan optimasi untuk menemukan yang terbaik.
Di pasar sisi atau non-trending, strategi cenderung menghasilkan kerugian dan whipsaws.
Untuk mengurangi risiko, pilih produk dengan tren yang jelas, dan lakukan backtest dan optimalisasi yang ekstensif untuk menemukan parameter yang sesuai dengan kondisi pasar saat ini.
Bidang untuk optimalisasi lebih lanjut:
Uji lebih banyak jenis MAs untuk menemukan kombinasi yang lebih baik, seperti SMA, EMA, KAMA, TEMA dll.
Optimalkan panjang MAs dan lebar saluran untuk menentukan parameter optimal.
Uji mekanisme profit dan stop loss yang berbeda seperti trailing stop atau dynamic stop.
Menggabungkan metrik tren seperti ADX, ATR untuk menghindari whipsaws selama pasar bergolak.
Mengoptimalkan masuk dan keluar logika dengan filter tambahan untuk mengurangi perdagangan yang tidak valid.
Strategi swing trend ini meningkatkan profitabilitas dengan menggunakan beberapa MAs dan mengurangi risiko melalui saluran. Ini bekerja dengan baik untuk produk tren setelah optimasi parameter. Tetapi dapat mengalami kerugian besar pada pembalikan tren. Optimasi lebih lanjut diperlukan untuk mengurangi risiko penurunan.
/*backtest start: 2024-01-20 00:00:00 end: 2024-02-19 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/ // © exlux99 //@version=4 strategy(title="High/Low channel swing", shorttitle="Multi MA swing", overlay=true) fromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31) fromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12) fromYear = input(defval = 2000, title = "From Year", minval = 1970) //monday and session // To Date Inputs toDay = input(defval = 31, title = "To Day", minval = 1, maxval = 31) toMonth = input(defval = 12, title = "To Month", minval = 1, maxval = 12) toYear = input(defval = 2021, title = "To Year", minval = 1970) startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00) finishDate = timestamp(toYear, toMonth, toDay, 00, 00) time_cond = true ////// length_ma= input(defval=12, title="Length Moving averages", minval=1) ////////////////////////////////SETUP/////////////////////////////////////////// sma_high = sma(high, length_ma) ema_high = ema(high, length_ma) wma_high = wma(high, length_ma) alma_high = alma(high,length_ma, 0.85, 6) smma_high = rma(high,length_ma) lsma_high = linreg(high, length_ma, 0) vwma_high = vwma(high,length_ma) avg_high = (sma_high+ema_high+wma_high+alma_high+smma_high+lsma_high+vwma_high)/7 /////////////////////////////////////////// sma_low = sma(low, length_ma) ema_low = ema(low, length_ma) wma_low = wma(low, length_ma) alma_low = alma(low,length_ma, 0.85, 6) smma_low = rma(low,length_ma) lsma_low = linreg(low, length_ma, 0) vwma_low = vwma(low,length_ma) avg_low = (sma_low+ema_low+wma_low+alma_low+smma_low+lsma_low+vwma_low)/7 ////////////////////////////PLOTTING//////////////////////////////////////////// plot(avg_high , title="avg", color=color.green, linewidth = 4) plot(avg_low , title="avg", color=color.red, linewidth = 4) long= close > avg_high short = close < avg_low tplong=input(0.06, title="TP Long", step=0.01) sllong=input(0.05, title="SL Long", step=0.01) tpshort=input(0.045, title="TP Short", step=0.01) slshort=input(0.05, title="SL Short", step=0.01) if(time_cond) strategy.entry("long",1,when=long) strategy.exit("closelong", "long" , profit = close * tplong / syminfo.mintick, loss = close * sllong / syminfo.mintick, alert_message = "closelong") strategy.close("long", when=crossunder(low,avg_low)) strategy.entry("short",0,when=short) strategy.exit("closeshort", "short" , profit = close * tpshort / syminfo.mintick, loss = close * slshort / syminfo.mintick, alert_message = "closeshort") strategy.close("short",when=crossover(high,avg_high))