Trend Following Buy and Sell Strategy adalah strategi perdagangan tren berikut hari yang sederhana. Premisnya adalah untuk menentukan arah tren berdasarkan Moving Average dan membeli / menjual penurunan dan penurunan dalam tren.
Strategi ini menggunakan Simple Moving Average (SMA) untuk menentukan arah tren. Dalam uptrend, ketika aksi lilin menawarkan
Strategi ini juga menggunakan %K dan %D dari Blanchflower Oscillator untuk penentuan tren. Ini akan menutup posisi dan perdagangan ke arah yang berlawanan ketika %K melintasi di atas %D. Selain itu, garis MACD dan sinyal bertindak sebagai filter untuk hanya mengambil perdagangan yang selaras dengan arah tren yang ditentukan oleh MACD dan sinyal.
Strategi dapat berjalan hanya panjang, pendek, atau keduanya. Bulan awal dan tahun memungkinkan backtesting dari titik itu sampai sekarang. Semua parameter seperti periode SMA, periode %K, periode %D, parameter MACD dll dapat disesuaikan.
Risiko utama dari strategi ini adalah:
Strategi ini dapat ditingkatkan dalam hal berikut:
Trend Following Buy and Sell Strategy memiliki logika yang sederhana dan langsung untuk memperdagangkan pullbacks dalam tren yang diidentifikasi oleh SMA dan disaring oleh indikator. Parameter penyesuaian halus dan kontrol risiko dapat menyebabkan hasil yang layak, tetapi enkapsulasi Combine masih diperlukan untuk mencegah overfit dan meningkatkan ketahanan. Secara keseluruhan ini adalah strategi perdagangan intraday yang praktis.
/*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)