
यह रणनीति एक ट्रेंड ट्रैकिंग सिस्टम है जो बहु-आयामी चलती औसत और लेन-देन की मात्रा के विश्लेषण को जोड़ती है। रणनीति ईएमए 9, डब्ल्यूएमए 20 और डब्ल्यूएमए 200 की तीन औसत रेखाओं के माध्यम से समग्र प्रवृत्ति की पुष्टि करती है, जबकि ओबीवी (ऑन बैलेंस वॉल्यूम) सूचक और ईएमए को ट्रेड वॉल्यूम की पुष्टि करने के लिए पेश किया जाता है, जिससे अधिक मजबूत ट्रेंड ट्रैकिंग ट्रेडों की अनुमति मिलती है।
यह रणनीति दो मुख्य शर्तों पर आधारित हैः
इस रणनीति के संयोजन के माध्यम से बहु-चक्र प्रवृत्ति विश्लेषण और लेन-देन की मात्रा की पुष्टि, एक अपेक्षाकृत पूर्ण प्रवृत्ति ट्रैकिंग प्रणाली का निर्माण। रणनीति तर्क स्पष्ट है, जोखिम नियंत्रण उचित है, लेकिन अभी भी अनुकूलन के लिए जगह है। यह सलाह दी जाती है कि व्यापारियों को सावधानीपूर्वक परीक्षण किया जाए और विशिष्ट बाजार विशेषताओं के अनुसार पैरामीटर को समायोजित किया जाए।
/*backtest
start: 2024-09-01 00:00:00
end: 2025-02-18 08:00:00
period: 5d
basePeriod: 5d
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Strategy: Daily MAs + OBV", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1)
//=== Daily Moving Averages Calculation =========================
// Get daily timeframe values using request.security.
dailyEMA9 = request.security(syminfo.tickerid, "D", ta.ema(close, 9))
dailyWMA20 = request.security(syminfo.tickerid, "D", ta.wma(close, 20))
dailyWMA200 = request.security(syminfo.tickerid, "D", ta.wma(close, 200))
// Check if each moving average is trending upward (current > previous).
ema9_up = dailyEMA9 > nz(dailyEMA9[1])
wma20_up = dailyWMA20 > nz(dailyWMA20[1])
wma200_up = dailyWMA200 > nz(dailyWMA200[1])
trend_condition = ema9_up and wma20_up and wma200_up
//=== OBV and its 13-period EMA Calculation ================================
// Calculate OBV manually using a cumulative sum.
obv_val = ta.cum(close > close[1] ? volume : (close < close[1] ? -volume : 0))
// 13-period EMA of the OBV.
ema13_obv = ta.ema(obv_val, 13)
// Condition: 13-period EMA of OBV must be above the OBV value.
obv_condition = ema13_obv > obv_val
//=== Entry Condition ===================================================
// Both trend and OBV conditions must be met.
buy_condition = trend_condition and obv_condition
//=== Entry and Exit Orders =============================================
// Enter a long position when the buy condition is met and no position is open.
if buy_condition and strategy.position_size <= 0
strategy.entry("Long", strategy.long)
// Exit the position when the condition is no longer met.
if not buy_condition and strategy.position_size > 0
strategy.close("Long")
//=== Explicit Entry and Exit Markers ====================================
// Determine the exact bar where entry and exit occur.
entry_signal = (strategy.position_size > 0 and (strategy.position_size[1] <= 0))
exit_signal = (strategy.position_size == 0 and (strategy.position_size[1] > 0))
plotshape(entry_signal, title="Entry Signal", location=location.belowbar, style=shape.labelup, text="BUY", color=color.new(color.green, 0), size=size.normal)
plotshape(exit_signal, title="Exit Signal", location=location.abovebar, style=shape.labeldown, text="SELL", color=color.new(color.red, 0), size=size.normal)
//=== Plots for Visualization ===============================================
// Plot daily moving averages.
plot(dailyEMA9, color=color.blue, title="Daily EMA 9")
plot(dailyWMA20, color=color.orange, title="Daily WMA 20")
plot(dailyWMA200, color=color.red, title="Daily WMA 200")
// Plot OBV and its 13-period EMA using color.new() to specify transparency.
plot(obv_val, color=color.new(color.gray, 30), title="OBV")
plot(ema13_obv, color=color.new(color.green, 0), title="13-Period EMA OBV")