यह रणनीति ट्रिपल ईएमए पर कीमतों के रिवर्स प्रदर्शन को देखकर ट्रेंड ट्रेंड का आकलन करती है और रिवर्स के अंत में एक ब्रेकआउट ट्रेड करती है। यह रणनीति ट्रेंड ट्रैकिंग प्रकार की रणनीति है, जिसका उद्देश्य मध्य-लंबी ट्रेंड में रिवर्स के अवसरों को पकड़ना है।
रणनीतिक सिद्धांत:
तीन ईएमए सेट करेंः तेज, मध्यम और धीमी गति, और सामान्य पैरामीटर 25, 100, 200 चक्र हैं।
जब कीमतों के ऊपर की वापसी सबसे तेजी से ईएमए तक पहुँचती है तो इसे मध्य-लंबी रेखा बहुमुखी प्रवृत्ति के रूप में माना जाता है, और नीचे की वापसी सबसे तेजी से ईएमए तक पहुंचने पर इसे शून्य प्रवृत्ति के रूप में माना जाता है।
ऊपर की वापसी के अंत में पलटाव शुरू होने पर, सबसे तेज़ ईएमए को तोड़ने पर अधिक करें; नीचे की वापसी के अंत में पलटाव शुरू होने पर, सबसे तेज़ ईएमए को गिरने पर खाली करें।
रंगीन मार्किंग के माध्यम से खरीदारी और बिक्री के क्षेत्रों को दृश्य सहजता प्रदान करता है।
स्थिर स्टॉप लॉस, रिस्क-रिटर्न अनुपात, और जोखिम प्रबंधन की स्थापना करना।
इस रणनीति के फायदे:
रिवर्सल लेनदेन में सफलता की उच्च दर होती है।
तीन ईएमए प्रवृत्ति का आकलन करते हैं, ताकि उन्हें फंसाया न जाए।
जोखिम-लाभ-नियंत्रण-प्रदर्शन-बढ़ाने की स्थिरता।
इस रणनीति के खतरे:
बहुत लंबे समय के लिए, सबसे अच्छा प्रवेश बिंदु छूट सकता है।
ईएमए पैरामीटर को विभिन्न चक्रों के लिए अनुकूलित करने की आवश्यकता होती है
स्थिर रोकना यांत्रिक हो सकता है और इसे उचित रूप से स्थापित करने की आवश्यकता है।
कुल मिलाकर, यह रणनीति ट्रिपल ईएमए रिवर्स ब्रेकडाउन के माध्यम से मध्यम और लंबी रेखा के रुझानों पर नज़र रखने में सक्षम है। जोखिम नियंत्रण तंत्र दीर्घकालिक स्थिर रिटर्न प्राप्त करने में मदद करता है, लेकिन निवेशकों को पैरामीटर अनुकूलन और रिवर्स निर्णय पर ध्यान देने की आवश्यकता है।
/*backtest
start: 2023-09-04 00:00:00
end: 2023-09-11 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Pullback", overlay=true, initial_capital=1000, slippage=25)
averageData = input.source(close, title="Source")
target_stop_ratio = input.float(title="Ratio Risk/Reward", defval=2, group="Money Management")
security = input.float(50, title='min of pips (00001.00) for each position', group="Money Management")
risk = input.float(2, title="Risk per Trade %", group="Money Management")
riskt = risk / 100 + 1
ema1V = input.int(25, title="Rapide", group="Ema Period")
ema2V = input.int(100, title="Moyenne", group="Ema Period")
ema3V = input.int(200, title="Lente", group="Ema Period")
ema1 = ta.ema(averageData, ema1V)
ema2 = ta.ema(averageData, ema2V)
ema3 = ta.ema(averageData, ema3V)
useDateFilter = input.bool(true, title="Filter Date Range of Backtest",
group="Backtest Time Period")
backtestStartDate = input(timestamp("5 June 2022"),
title="Start Date", group="Backtest Time Period",
tooltip="This start date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
backtestEndDate = input(timestamp("5 July 2022"),
title="End Date", group="Backtest Time Period",
tooltip="This end date is in the time zone of the exchange " +
"where the chart's instrument trades. It doesn't use the time " +
"zone of the chart or of your computer.")
inTradeWindow = true
float pricePullAboveEMA_maxClose = na
float pricePullBelowEMA_minClose = na
if ta.crossover(close, ema1)
pricePullAboveEMA_maxClose := close
else
pricePullAboveEMA_maxClose := pricePullAboveEMA_maxClose[1]
if close > pricePullAboveEMA_maxClose
pricePullAboveEMA_maxClose := close
if ta.crossunder(close, ema1)
pricePullBelowEMA_minClose := close
else
pricePullBelowEMA_minClose := pricePullBelowEMA_minClose[1]
if close < pricePullBelowEMA_minClose
pricePullBelowEMA_minClose := close
BuyZone = ema1 > ema2 and ema2 > ema3
SellZone = ema1 < ema2 and ema2 < ema3
longcondition = ta.crossover(close, ema1) and pricePullBelowEMA_minClose > ema3 and pricePullBelowEMA_minClose < ema1
shortcondition = ta.crossunder(close , ema1) and pricePullAboveEMA_maxClose < ema3 and pricePullAboveEMA_maxClose > ema1
float risk_long = na
float risk_short = na
float stopLoss = na
float takeProfit = na
float entry_price = na
risk_long := risk_long[1]
risk_short := risk_short[1]
lotB = (strategy.equity*riskt-strategy.equity)/(close - ema2)
lotS = (strategy.equity*riskt-strategy.equity)/(ema2 - close)
if strategy.position_size == 0 and BuyZone and longcondition and inTradeWindow
risk_long := (close - ema2) / close
minp = close - ema2
if minp > security
strategy.entry("long", strategy.long, qty=lotB)
if strategy.position_size == 0 and SellZone and shortcondition and inTradeWindow
risk_short := (ema2 - close) / close
minp = ema2 - close
if minp > security
strategy.entry("short", strategy.short, qty=lotS)
if strategy.position_size > 0
stopLoss := strategy.position_avg_price * (1 - risk_long)
takeProfit := strategy.position_avg_price * (1 + target_stop_ratio * risk_long)
entry_price := strategy.position_avg_price
strategy.exit("long exit", "long", stop = stopLoss, limit = takeProfit)
if strategy.position_size < 0
stopLoss := strategy.position_avg_price * (1 + risk_short)
takeProfit := strategy.position_avg_price * (1 - target_stop_ratio * risk_short)
entry_price := strategy.position_avg_price
strategy.exit("short exit", "short", stop = stopLoss, limit = takeProfit)
plot(ema1, color=color.blue, linewidth=2, title="Ema Rapide")
plot(ema2, color=color.orange, linewidth=2, title="Ema Moyenne")
plot(ema3, color=color.white, linewidth=2, title="Ema Lente")
p_ep = plot(entry_price, color=color.new(color.white, 0), linewidth=2, style=plot.style_linebr, title='entry price')
p_sl = plot(stopLoss, color=color.new(color.red, 0), linewidth=2, style=plot.style_linebr, title='stopLoss')
p_tp = plot(takeProfit, color=color.new(color.green, 0), linewidth=2, style=plot.style_linebr, title='takeProfit')
fill(p_sl, p_ep, color.new(color.red, transp=85))
fill(p_tp, p_ep, color.new(color.green, transp=85))
bgcolor(BuyZone ? color.new(color.green, 95) : na)
bgcolor(SellZone ? color.new(color.red, 95) : na)