
यह रणनीति VWAP और EMA पर आधारित है, जो प्रवृत्ति की दिशा का निर्धारण करने के लिए एक सूचक है, VWAP एक विशिष्ट मूल्य का प्रतिनिधित्व करता है और EMA200 एक मध्य-लंबी प्रवृत्ति का प्रतिनिधित्व करता है। जब कीमत VWAP और EMA200 से अधिक होती है, तो यह अधिक होता है और जब यह VWAP और EMA200 से कम होती है, तो यह एक विशिष्ट प्रवृत्ति का पालन करने वाली रणनीति है।
रणनीति का मुख्य तर्क मूल्य प्रवृत्तियों का आकलन करने के लिए VWAP और ईएमए का उपयोग करना है।
इसलिए, यह रणनीति पहले यह निर्धारित करती है कि क्या कीमत एक साथ VWAP और EMA200 से अधिक है, और यदि हां, तो अधिक करें; यदि कीमत एक साथ VWAP और EMA200 से कम है, तो शून्य करें। जैसा कि आप देख सकते हैं, यह रणनीति मुख्य रूप से VWAP और EMA पर निर्भर करती है ताकि निर्णय लिया जा सके।
इसके अलावा, रणनीति ने स्टॉप-स्टॉप-लॉस पॉइंट भी सेट किया है। ओवरऑल के बाद स्टॉप को प्रवेश मूल्य का 3.5%, स्टॉप-लॉस 1.4% पर सेट किया गया है; स्टॉप-स्टॉप को प्रवेश मूल्य का 2.5% और स्टॉप-लॉस 0.9% पर सेट किया गया है। यह बहुत अधिक नुकसान से बचा जा सकता है।
इस रणनीति का सबसे बड़ा लाभ यह है कि VWAP और EMA का उपयोग करके प्रवृत्ति का आकलन करना बहुत विश्वसनीय है।
इसलिए, VWAP और ईएमए का उपयोग करने के संयोजन में प्रवृत्ति का निर्धारण करने की विश्वसनीयता बहुत अधिक है। जब दोनों प्रवृत्ति का निर्धारण करते हैं, तो ऑपरेशन की सफलता दर बहुत अधिक होती है।
इसके अलावा, स्टॉपलॉस सेट करने से एकल नुकसान से बचा जा सकता है।
इस रणनीति का मुख्य जोखिम यह है कि VWAP और EMA गलत संकेत दे सकते हैं।
इसके अलावा, स्टॉप लॉस सेटिंग्स गलत हो सकती हैं, और एकल नुकसान का बहुत बड़ा जोखिम बना रहता है।
उपरोक्त समस्याओं को हल करने के लिए, हम VWAP और ईएमए के लिए पैरामीटर सेटिंग्स को अनुकूलित कर सकते हैं ताकि वे नए रुझानों की शुरुआत को बेहतर ढंग से पहचान सकें। साथ ही, एक अनुकूलित स्टॉप-लॉस सेट किया जा सकता है ताकि स्टॉप-लॉस को कीमत में उतार-चढ़ाव के साथ समायोजित किया जा सके।
इस रणनीति को निम्नलिखित क्षेत्रों में अनुकूलित किया जा सकता हैः
इस रणनीति के समग्र एक बहुत ही विश्वसनीय प्रवृत्ति का पालन करने की रणनीति है. यह प्रवृत्ति दिशा का आकलन करने के लिए VWAP और ईएमए का उपयोग करता है, विचार स्पष्ट और सरल है, और जब दोनों एकजुट संकेत जारी करते हैं, तो प्रवेश की सफलता की संभावना बहुत अधिक है. उचित स्टॉपलॉस सेट करके, जोखिम को नियंत्रित किया जा सकता है। हम अभी भी कई तरीकों से इस रणनीति को और बेहतर बनाने के लिए आगे बढ़ सकते हैं (पैरामीटर अनुकूलन, संकेतक जोड़ना, स्टॉपलॉस को अनुकूलित करना, स्थिति प्रबंधन आदि) ।
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//26m Binance BTCUSDTPERP
//@version=4
strategy("VWAP Trend Follower", initial_capital=100, overlay=true, commission_type=strategy.commission.percent, commission_value=0.04, default_qty_type = strategy.percent_of_equity, default_qty_value = 90, currency = currency.USD )
/// INITIALISE STRATEGY ///
price=close[1]
vprice=vwap(price)
trend=ema(price, 200)
/// RISK MANAGEMENT ///
long_tp_inp = input(3.5, title='Long Take Profit %',step=0.1)/100
long_sl_inp = input(1.4, title='Long Stop Loss %',step=0.1)/100
short_tp_inp = input(2.5, title='Short Take Profit %',step=0.1)/100
short_sl_inp = input(0.9, title='Short Stop Loss %',step=0.1)/100
long_take_level = strategy.position_avg_price * (1 + long_tp_inp)
long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)
short_take_level = strategy.position_avg_price * (1 - short_tp_inp)
short_stop_level = strategy.position_avg_price * (1 + short_sl_inp)
//long_trailing = input(5, title='Trailing Stop Long',step=0.1) / 100
//short_trailing = input(5, title='Trailing Stop short',step=0.1) / 100
/// STRATEGY CONDITIONS ///
aLong= price > trend and price > vprice
entry_long = aLong and aLong[2] and aLong[1]
aShort= price < trend and price < vprice
entry_short = aShort and aShort[2] and aShort[1]
//exit_long =
//exit_short =
//entry_price_long=valuewhen(entry_long,close,0)
//entry_price_short=valuewhen(entry_short,close,0)
/// PLOTTING ///
plot(vprice, color=#5875E1, linewidth=2)
plot(trend, color=#D965E1, linewidth=1)
plotshape(series=aLong, color=#71E181,style=shape.labelup)
plotshape(series=aShort, color=#E18BA5,style=shape.labeldown)
//plot(long_take_level, color=#00E676, linewidth=2)
//plot(long_stop_level, color=#FF5252, linewidth=1)
//plot(short_take_level, color=#4CAF50, linewidth=2)
//plot(short_stop_level, color=#FF5252, linewidth=1)
/// PERIOD ///
testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)
testStopYear = input(2020, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)
testPeriod() => true
//// STRATEGY EXECUTION ////
if testPeriod()
if strategy.position_size == 0 or strategy.position_size > 0
strategy.entry(id="Long", long=true, when=entry_long, comment="Long")
strategy.exit("Take Profit/ Stop Loss","Long", limit=long_take_level, stop=long_stop_level,comment="Exit Long")//,trail_points=entry_price_long * long_trailing / syminfo.mintick, trail_offset=entry_price_long * long_trailing / syminfo.mintick)
// strategy.close(id="Long", when=exit_long, comment = "Exit Long")
if strategy.position_size == 0 or strategy.position_size < 0
strategy.entry(id="Short", long=false, when=entry_short, comment = "Short")
strategy.exit("Take Profit/ Stop Loss","Short", limit=short_take_level , stop=short_stop_level,comment = "Exit Short")//, trail_points=entry_price_short * short_trailing / syminfo.mintick, trail_offset=entry_price_short * short_trailing / syminfo.mintick)
// strategy.close(id="Short", when=exit_short, comment = "Exit Short")