Strategi Beli dan Jual Berikutan Trend adalah strategi perdagangan trend berikut hari yang mudah. premisnya adalah untuk menentukan arah trend berdasarkan Purata Bergerak dan membeli / menjual penurunan dan penurunan dalam trend.
Strategi ini menggunakan Purata Bergerak Sederhana (SMA) untuk menentukan arah trend. Dalam trend menaik, apabila tindakan lilin menawarkan
Strategi ini juga menggunakan %K dan %D dari Blanchflower Oscillator untuk penentuan trend. Ia akan menutup kedudukan dan berdagang ke arah yang bertentangan apabila %K melintasi di atas %D. Di samping itu, garis MACD dan Isyarat bertindak sebagai penapis untuk hanya mengambil perdagangan yang sejajar dengan arah trend yang ditentukan oleh MACD dan Isyarat.
Strategi ini boleh berjalan panjang sahaja, pendek sahaja, atau kedua-duanya. Bulan permulaan dan tahun membolehkan backtesting dari titik itu sehingga sekarang. Semua parameter seperti tempoh SMA, tempoh %K, tempoh %D, parameter MACD dll boleh disesuaikan.
Risiko utama strategi ini ialah:
Strategi ini boleh ditingkatkan dalam aspek berikut:
Strategi Beli dan Jual Trend Following mempunyai logik yang mudah dan mudah untuk berdagang pulback dalam trend yang dikenal pasti oleh SMA dan disaring oleh penunjuk. Parameter penyesuaian halus dan kawalan risiko boleh membawa kepada hasil yang baik, tetapi pengelupasan gabungan masih diperlukan untuk mengelakkan overfit dan meningkatkan ketahanan. Secara keseluruhan, ini adalah strategi perdagangan intraday yang praktikal.
/*backtest start: 2022-10-10 00:00:00 end: 2023-10-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Higher High / Lower Low Strategy", overlay=true) // Getting inputs longOnly = input(true, title="Long or Short Only") useMACD = input(true, title="Use MACD Filter") useSignal = input(true, title="Use Signal Filter") //Filter backtest month and year startMonth = input(10, minval=1, maxval=12, title="Month") startYear = input(2020, minval=2000, maxval=2100, title="Year") //Filter funtion inputs periodA = input(20, minval=1, title="Period SMA") periodK = input(5, minval=1, title="Period %K") fast_length = input(title="Period Fast", type=input.integer, defval=5) slow_length = input(title="Period Slow", type=input.integer, defval=20) signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 30) //Calculations smoothD = 3 //input(3, minval=1, title="Smooth %D") smoothK = 2 //input(2, minval=1, title="Smooth %K") ma50 = sma(close, periodA) k = sma(stoch(close, high, low, periodK), smoothK) - 50 d = sma(k, smoothD) macd = ema(close,fast_length) - ema(close,slow_length) signal = ema(macd,signal_length) hist = macd - signal if (not na(k) and not na(d) and not na(macd) and not na(signal) and longOnly and month>=startMonth and year>=startYear)// if(k > k[1] and k[2] >= k[1] and (ma50 > ma50[1]) and (not useK or k[1] <= -threshold_k) and (not useMACD or macd > macd[1]) and (not useSignal or signal > signal[1]) and (not useHHLL or close >= high[1]) and (not useD or d <= -threshold_d)) if(high[2] >= high[1] and high > high[1] and (ma50 > ma50[1]) and (not useMACD or macd > macd[1]) and (not useSignal or signal > signal[1])) strategy.order("HH_LE", strategy.long, when=strategy.position_size == 0, comment="HH_LE") if (k < k[1]) strategy.order("HH_SX", strategy.short, when=strategy.position_size != 0, comment="HH_SX") if (not na(k) and not na(d) and not na(macd) and not na(signal) and not longOnly and month>=startMonth and year>=startYear) if(low[2] <= low[1] and low < low[1] and (ma50 < ma50[1]) and (not useMACD or macd < macd[1]) and (not useSignal or signal < signal[1])) strategy.order("HH_SE", strategy.short, when=strategy.position_size == 0, comment="HH_SE") if (k > k[1]) strategy.order("HH_LX", strategy.long, when=strategy.position_size != 0, comment="HH_LX") //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)