वीडब्ल्यूएमए और एटीआर रुझान रणनीति का पालन करना

लेखक:चाओझांग, दिनांक: 2023-11-07 16:39:47
टैगः

img

अवलोकन

यह रणनीति प्रवृत्ति की दिशा निर्धारित करने के लिए VWMA का उपयोग करती है और प्रवृत्ति का पालन करने के लिए ATR के साथ स्टॉप लॉस सेट करती है। यह स्पष्ट प्रवृत्तियों वाले बाजारों के लिए उपयुक्त है।

रणनीति तर्क

  1. प्रवृत्ति की दिशा निर्धारित करने के लिए VWMA का प्रयोग करें. जब कीमत VWMA से ऊपर हो, तो लंबी जाएं, जब कीमत VWMA से नीचे हो, तो छोटी जाएं.

  2. झूठे ब्रेकआउट संकेतों से बचने के लिए आरएसआई ऑसिलेटर फ़िल्टर जोड़ें। केवल आरएसआई 30 से ऊपर होने पर लंबा संकेत लें।

  3. स्टॉप लॉस लाइन की गणना करने के लिए एटीआर का उपयोग करें। एटीआर लंबाई को वीडब्ल्यूएमए के समान सेट किया गया है, गुणक 3.5 है। वास्तविक समय में स्टॉप लॉस लाइन अपडेट करता है।

  4. एटीआर गुणक स्टॉप लॉस लाइन की तंगता को नियंत्रित करता है। बड़े गुणक का अर्थ है कम बार अद्यतन, जो प्रवृत्ति का पालन करने के लिए बेहतर है।

  5. स्थिति का आकार खाते की इक्विटी और स्टॉप लॉस प्रतिशत के आधार पर गणना की जाती है।

  6. जब मूल्य स्टॉप लॉस लाइन के नीचे टूट जाता है तो लंबी स्थिति से बाहर निकलें।

लाभ

  1. रुझान निर्धारित करने के लिए वीडब्ल्यूएमए का उपयोग करते हुए रुझान के अवसरों को लगातार पकड़ता है।

  2. आरएसआई फ़िल्टर कुछ झूठे ब्रेकआउट संकेतों से बचता है।

  3. एटीआर ट्रेलिंग स्टॉप प्रवृत्ति का अनुसरण करता है और रिवर्स द्वारा रोके जाने से बचता है।

  4. खाता स्वामित्व और स्टॉप लॉस के आधार पर स्थिति का आकार जोखिम प्रबंधन को बढ़ावा देता है।

जोखिम

  1. रुझान मोड़ बिंदुओं पर संभावित हानि। नुकसान को सीमित करने के लिए स्थिति का आकार कम करना चाहिए।

  2. गलत एटीआर पैरामीटर सेटिंग बहुत तंग या ढीली स्टॉप लॉस लाइन का कारण बनती है। पैरामीटर का परीक्षण किया जाना चाहिए।

  3. तेजी से रुझान उलटने से स्टॉप लॉस अपडेट में देरी हो सकती है, जिससे नुकसान बढ़ता है।

  4. कम अस्थिरता वाले वातावरण में, स्थिति का आकार कम करें और स्टॉप लॉस अपडेट की आवृत्ति बढ़ाएं।

सुधार

  1. इष्टतम संकेत मापदंडों को खोजने के लिए विभिन्न VWMA पैरामीटर संयोजनों का परीक्षण करें।

  2. अन्य आरएसआई सेटिंग्स जैसे ओवरबॉट/ओवरसोल्ड लाइनों का परीक्षण करें।

  3. ड्रॉडाउन और ट्रैकिंग क्षमता के बीच इष्टतम संतुलन खोजने के लिए एटीआर गुणक का परीक्षण करें।

  4. सिग्नल की गुणवत्ता में सुधार के लिए एमएसीडी, केडी जैसे अन्य फ़िल्टर जोड़ें।

  5. बाजार की अस्थिरता के आधार पर स्थिति आकार और स्टॉप लॉस प्रतिशत का अनुकूलन करना।

सारांश

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


/*backtest
start: 2023-10-07 00:00:00
end: 2023-10-13 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © mohanee

//@version=4
//strategy("", overlay=true)
strategy(title="VWMA_withATRstops_strategy V2", overlay=true, pyramiding=1,     default_qty_type=strategy.percent_of_equity,  default_qty_value=20, initial_capital=10000, currency=currency.USD)  //default_qty_value=10, default_qty_type=strategy.fixed,

float xATRTrailingStop=na
int pos=na

vwmalength = input(33, title="VWMA Length", minval=1, maxval=365)
//vwmalength2 = input(9, title="VWAM Short Term Length", minval=1, maxval=365)
nATRPeriod = input(33, title="ATR length", minval=1, maxval=365)
nATRMultip = input(3.5, title="ATR Multiplier")

rsiofVwmaLength=input(14, title="RSI of VWMA Length")

riskCapital = input(title="Risk % of capital", defval=10, minval=1)
stopLoss=input(5,title="Stop Loss",minval=1)

vwmaVal=vwma(close, vwmalength)
//vwmaVal2=vwma(close, vwmalength2)
//maVal=sma(close, vwmalength)

plot(vwmaVal, color=color.orange, linewidth=2,  title="VWMA")
//plot(vwmaVal2, color=color.blue, title="VWMA Short Term")
//plot(maVal, color=color.blue, title="MA")

//rsi of vwma Longterm
rsiofVwmaVal=rsi(vwmaVal,rsiofVwmaLength)

xATR = atr(nATRPeriod)
nLoss = nATRMultip * xATR

xATRTrailingStop:= iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss), iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss), iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))

pos:=	iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1, 	    iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0))) 

color1 = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 

//plot(xATRTrailingStop, color=color1, title="ATR Trailing Stop")

//Entry--
//Echeck how many units can be purchased based on risk manage ment and stop loss
qty1 = (strategy.equity  * riskCapital / 100 ) /  (close*stopLoss/100)  

//check if cash is sufficient  to buy qty1  , if capital not available use the available capital only
qty1:= (qty1 * close >= strategy.equity ) ? (strategy.equity / close) : qty1


//Long Entry
//strategy.entry(id="VWMA LE", long=true, qty=qty1, when= close >vwmaVal and open>vwmaVal and close>open and close > xATRTrailingStop and xATRTrailingStop>  vwmaVal)

strategy.entry(id="VWMA LE", long=true, qty=qty1, when= rsiofVwmaVal>=30 and  close>open and close>vwmaVal and pos == 1 )    ///pos == 1 means ATRStop line is green    
//vwmaVal2>vwmaVal and

plot(strategy.position_size>=1  ? xATRTrailingStop : na, color=color1, style=plot.style_linebr, title="ATR Trailing Stop")
bgcolor(strategy.position_size>=1 ? color.blue : na )

//Exit
strategy.close(id="VWMA LE",  when= strategy.position_size>=1 and crossunder(close, xATRTrailingStop)  )
//strategy.close(id="VWMA LE",  when= strategy.position_size>=1 and close<vwmaVal and open<vwmaVal and close<open )

अधिक