
Ini adalah strategi trend pengesanan yang menggabungkan pelbagai petunjuk. Ia menggunakan tiga EMA, RSI Stochastic dan ATR yang berbeza untuk mengenal pasti arah trend dan membina kedudukan pada masa yang sama.
Strategi ini menggunakan tiga garis purata EMA, iaitu EMA 8 kitaran, EMA 14 kitaran dan EMA 50 kitaran. Mereka masing-masing mewakili trend harga dalam tempoh masa yang berbeza. Apabila EMA 8 kitaran melalui EMA 14 kitaran, EMA 14 kitaran melalui EMA 50 kitaran, menunjukkan bahawa ia kini berada di peringkat permulaan trend.
Indikator RSI Stochastic yang menggabungkan RSI dan kaedah pengiraan Stochastic, dapat melihat fenomena overbought dan oversold. Apabila garis K dari RSI Stochastic melintasi garis D dari bawah, ini menunjukkan bahawa pasaran sedang beralih dari keadaan oversold ke bullish, anda boleh memilih untuk melakukan lebih banyak.
ATR mewakili julat turun naik yang terdekat. Strategi menggunakan 3 kali ATR sebagai jarak berhenti dan 2 kali sebagai jarak berhenti untuk mengunci keuntungan dan mengawal risiko.
Sensitiviti penunjuk boleh dioptimumkan dengan menyesuaikan parameter kitaran EMA. Anda juga boleh membuat pengganda stop loss ATR boleh disesuaikan, menetapkan parameter yang sesuai mengikut keadaan pasaran. Selain itu, anda boleh mempertimbangkan untuk memasukkan penilaian tambahan indikator lain, untuk mengelakkan isyarat salah.
Strategi ini mengambil kira arah trend, fenomena overbought dan oversold dan jangkauan turun naik untuk mengenal pasti masa masuk. Garis rata EMA dan Stochastic RSI digunakan bersama-sama untuk mengenal pasti trend dengan berkesan, dan ATR dinamik menjejaki stop loss untuk membantu mengawal risiko. Dengan penyesuaian dan pengoptimuman parameter, strategi ini boleh menjadi sistem pemantauan trend yang boleh dipercayai.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 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/
// © FreddieChopin
//@version=4
strategy("3 x EMA + Stochastic RSI + ATR", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
// 3x EMA
ema1Length = input(8, "EMA1 Length", minval = 1)
ema2Length = input(14, "EMA2 Length", minval = 1)
ema3Length = input(50, "EMA3 Length", minval = 1)
ema1 = ema(close, ema1Length)
ema2 = ema(close, ema2Length)
ema3 = ema(close, ema3Length)
plot(ema1, color = color.green)
plot(ema2, color = color.orange)
plot(ema3, color = color.red)
// Stochastic RSI
smoothK = input(3, "K", minval=1)
smoothD = input(3, "D", minval=1)
lengthRSI = input(14, "RSI Length", minval=1)
lengthStoch = input(14, "Stochastic Length", minval=1)
src = input(close, title="RSI Source")
rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
// ATR
atrPeriod = input(14, "ATR Period")
takeProfitMultiplier= input(2.0, "Take-profit Multiplier")
stopLossMultiplier= input(3.0, "Stop-loss Multiplier")
atrSeries = atr(atrPeriod)[1]
longCondition = ema1 > ema2 and ema2 > ema3 and crossover(k, d)
strategy.entry("long", strategy.long, when = longCondition)
float stopLoss = na
float takeProfit = na
if (strategy.position_size > 0)
if (na(stopLoss[1]))
stopLoss := strategy.position_avg_price - atrSeries * stopLossMultiplier
else
stopLoss := stopLoss[1]
if (na(takeProfit[1]))
takeProfit := strategy.position_avg_price + atrSeries * takeProfitMultiplier
else
takeProfit := takeProfit[1]
strategy.exit("take profit / stop loss", limit = takeProfit, stop = stopLoss)
plot(stopLoss, color = color.red, linewidth = 2, style = plot.style_linebr)
plot(takeProfit, color = color.green, linewidth = 2, style = plot.style_linebr)