
यह रणनीति ईएमए, एमएसीडी, वीडब्ल्यूएपी और आरएसआई जैसे कई संकेतकों को जोड़ती है, जिसका उद्देश्य उच्च संभावना वाले व्यापारिक अवसरों को पकड़ना है। रणनीति ईएमए का उपयोग प्रवृत्ति की दिशा का आकलन करने के लिए करती है, एमएसीडी गतिशीलता का आकलन करने के लिए, वीडब्ल्यूएपी का परिमाण का आकलन करने के लिए, और आरएसआई ओवरबॉट ओवरबॉट का आकलन करने के लिए। रणनीति इन संकेतकों के संयोजन के आधार पर खरीद और बिक्री संकेत उत्पन्न करती है, जबकि लाभ की रक्षा के लिए चलती रोक का उपयोग करती है।
रणनीति कई संकेतकों के संयोजन के माध्यम से बाजार की स्थिति का आकलन करती है, व्यापारिक संकेत उत्पन्न करती है, और लाभ की रक्षा के लिए चलती रोक का उपयोग करती है। रणनीति पैरामीटर को उपयोगकर्ता की वरीयताओं के अनुसार समायोजित किया जा सकता है, रणनीति की लचीलापन को बढ़ाता है। हालांकि, रणनीति अस्थिर बाजार में खराब प्रदर्शन कर सकती है, जब रुझान उलट जाता है, तो इसे बड़े पैमाने पर पीछे हटने का सामना करना पड़ सकता है, इसलिए विभिन्न बाजारों और किस्मों के अनुसार अनुकूलन और सुधार की आवश्यकता होती है। भविष्य में, रणनीति की स्थिरता और लाभप्रदता को बढ़ाने के लिए और अधिक फ़िल्टरिंग शर्तों, गतिशील रोक, पैरामीटर अनुकूलन और स्थिति प्रबंधन जैसे अनुकूलन को जोड़ने पर विचार किया जा सकता है।
/*backtest
start: 2024-04-01 00:00:00
end: 2024-04-30 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Intraday Strategy", overlay=true)
// Input parameters
emaLength = input.int(50, title="EMA Length")
macdShort = input.int(12, title="MACD Short Period")
macdLong = input.int(26, title="MACD Long Period")
macdSignal = input.int(9, title="MACD Signal Period")
rsiLength = input.int(14, title="RSI Length")
rsiOverbought = input.int(70, title="RSI Overbought Level")
rsiOversold = input.int(30, title="RSI Oversold Level")
risk = input.float(1, title="Risk Percentage", minval=0.1, step=0.1)
trailOffset = input.float(0.5, title="Trailing Stop Offset", minval=0.1, step=0.1)
// Calculating indicators
ema = ta.ema(close, emaLength)
[macdLine, signalLine, _] = ta.macd(close, macdShort, macdLong, macdSignal)
rsi = ta.rsi(close, rsiLength)
vwap = ta.vwap(close)
// Entry conditions
longCondition = ta.crossover(macdLine, signalLine) and close > ema and rsi < rsiOverbought and close > vwap
shortCondition = ta.crossunder(macdLine, signalLine) and close < ema and rsi > rsiOversold and close < vwap
// Exit conditions
longExitCondition = ta.crossunder(macdLine, signalLine) or close < ema
shortExitCondition = ta.crossover(macdLine, signalLine) or close > ema
// Position sizing based on risk percentage
capital = strategy.equity
positionSize = (capital * (risk / 100)) / close
// Executing trades
if (longCondition)
strategy.entry("Long", strategy.long, qty=1)
if (shortCondition)
strategy.entry("Short", strategy.short, qty=1)
if (longExitCondition)
strategy.close("Long")
if (shortExitCondition)
strategy.close("Short")
// Trailing stop loss
if (strategy.position_size > 0)
strategy.exit("Trailing Stop Long", from_entry="Long", trail_price=close, trail_offset=trailOffset)
if (strategy.position_size < 0)
strategy.exit("Trailing Stop Short", from_entry="Short", trail_price=close, trail_offset=trailOffset)
// Plotting indicators
plot(ema, title="EMA", color=color.blue)
hline(rsiOverbought, "Overbought", color=color.red)
hline(rsiOversold, "Oversold", color=color.green)
plot(rsi, title="RSI", color=color.purple)
plot(vwap, title="VWAP", color=color.orange)