वीडब्ल्यूएपी रणनीति का अनुसरण करना

लेखक:चाओझांग, दिनांकः 2024-02-29 15:26:56
टैगः

img

अवलोकन

यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए संकेतक के रूप में VWAP और EMA का उपयोग करती है। यह लंबी जाती है जब कीमत VWAP और EMA200 दोनों से ऊपर होती है, और छोटी जाती है जब कीमत VWAP और EMA200 दोनों से नीचे होती है। यह एक विशिष्ट प्रवृत्ति के बाद की रणनीति है।

रणनीति तर्क

रणनीति का मूल तर्क मूल्य प्रवृत्ति का आकलन करने के लिए वीडब्ल्यूएपी और ईएमए का उपयोग करने में निहित है।

  • वीडब्ल्यूएपी विशिष्ट मूल्य का प्रतिनिधित्व करता है और बाजार के प्रतिभागियों की औसत लागत को दर्शाता है। जब मूल्य वीडब्ल्यूएपी से ऊपर होता है, तो इसका मतलब है कि क्रय शक्ति बढ़ जाती है और लंबी होनी चाहिए। जब मूल्य वीडब्ल्यूएपी से नीचे होता है, तो इसका मतलब है कि विक्रय शक्ति मजबूत होती है और छोटी होनी चाहिए।

  • ईएमए200 मूल्य की मध्यम-लंबी अवधि की प्रवृत्ति का प्रतिनिधित्व करता है। जब मूल्य ईएमए200 से ऊपर होता है, तो इसका मतलब है कि मध्यम-लंबी अवधि का दृष्टिकोण तेजी से बढ़ रहा है और लंबा होना चाहिए। जब मूल्य ईएमए200 से नीचे होता है, तो इसका मतलब है कि मध्यम-लंबी अवधि का दृष्टिकोण मंदी है और छोटा होना चाहिए।

इसलिए, यह रणनीति सबसे पहले यह तय करती है कि क्या कीमत VWAP और EMA200 दोनों से ऊपर है, यदि हां तो लंबी हो; यदि कीमत VWAP और EMA200 दोनों से नीचे है, तो छोटी हो। हम देख सकते हैं कि यह रणनीति मुख्य रूप से व्यापार निर्णय लेने के लिए VWAP और EMA पर निर्भर करती है।

इसके अतिरिक्त, रणनीति लाभ लेने और स्टॉप लॉस अंक भी निर्धारित करती है। लंबे समय तक जाने के बाद, टीपी को प्रवेश मूल्य का 3.5% और एसएल को प्रवेश मूल्य का 1.4% पर सेट किया जाता है। छोटे जाने के बाद, टीपी प्रवेश मूल्य का 2.5% और एसएल प्रवेश मूल्य का 0.9% है। इससे भारी नुकसान से बचा जाता है।

लाभ

इस रणनीति का सबसे बड़ा लाभ यह है कि रुझानों को निर्धारित करने के लिए वीडब्ल्यूएपी और ईएमए का उपयोग करना बहुत विश्वसनीय है।

  • VWAP बाजार प्रतिभागियों की औसत लागत को सटीक रूप से दर्शा सकता है, यह रुझानों का आकलन करने के लिए एक बहुत अच्छा संकेतक है।
  • ईएमए200 मध्यम-लंबी अवधि के रुझान को स्पष्ट रूप से दर्शा सकता है और प्रमुख रुझानों की दिशा को बहुत सटीक रूप से निर्धारित कर सकता है।

इसके अतिरिक्त, टीपी/एसएल निर्धारित करने से प्रति व्यापार अत्यधिक हानि से बचा जा सकता है।

जोखिम

इस रणनीति का मुख्य जोखिम यह है कि वीडब्ल्यूएपी और ईएमए गलत संकेत दे सकते हैं।

  • जब कोई नया रुझान शुरू होता है, तो ईएमए मूल्य परिवर्तन में देरी कर सकता है और सबसे अच्छा प्रवेश समय खो सकता है।

इसके अलावा, अनुचित टीपी/एसएल सेटिंग्स अभी भी प्रति व्यापार अत्यधिक नुकसान का जोखिम पैदा करती हैं।

उपरोक्त मुद्दों को हल करने के लिए, हम VWAP और EMA के मापदंडों को अनुकूलित कर सकते हैं ताकि उन्हें नए रुझानों की शुरुआत का पता लगाने में बेहतर बनाया जा सके।

सुधार

इस रणनीति को बढ़ाने के मुख्य पहलू:

  • रुझानों को निर्धारित करने में अधिक स्थिर सेटिंग्स खोजने के लिए वीडब्ल्यूएपी मापदंडों को अनुकूलित करें।
  • सटीकता बढ़ाने के लिए वीडब्ल्यूएपी और ईएमए के साथ संयोजन के लिए बोलिंगर बैंड, केडीजे आदि जैसे अन्य रुझान संकेतक जोड़ें।
  • अनुकूलित लाभ लेने और मूल्य उतार-चढ़ाव के अनुसार उन्हें गतिशील रूप से समायोजित करने के लिए कुछ नियमों के आधार पर स्टॉप लॉस सेट करें।
  • कुल जोखिम को नियंत्रित करने के लिए ड्रॉडाउन, लगातार घाटे आदि के आधार पर स्थिति का आकार शामिल करें।

निष्कर्ष

निष्कर्ष में, यह एक बहुत ही विश्वसनीय प्रवृत्ति निम्नलिखित रणनीति है। यह प्रवृत्ति दिशाओं को निर्धारित करने के लिए वीडब्ल्यूएपी और ईएमए के सरल तर्क का उपयोग करता है। जब दोनों संकेतक सुसंगत संकेत देते हैं, तो सफलता दर बहुत अधिक होती है। उचित टीपी / एसएल सेट करके, जोखिम को नियंत्रित किया जा सकता है। इस रणनीति को और बेहतर बनाने और इसके प्रदर्शन को और बेहतर बनाने के लिए अभी भी कई तरीके (पैरामीटर अनुकूलन, संकेतक जोड़ना, अनुकूलन टीपी / एसएल, स्थिति आकार आदि) हैं।


/*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")

अधिक