
इस रणनीति का मुख्य विचार ट्रेंड ट्रैक करने के लिए गतिशील चलती औसत का उपयोग करना है, स्टॉप लॉस सेट करना है, और हाइकलिंग स्टॉप टेक्नोलॉजी निर्देशों के साथ संयोजन में बहु-अवकाश संकेत निर्णय करना है। एटीआर इंडिकेटर का उपयोग गतिशील चलती औसत और स्टॉप लॉस स्थिति की गणना के लिए किया जाता है।
यह रणनीति पहले एटीआर सूचक की गणना करती है और फिर इनपुट मूल्य स्रोतों और मापदंडों के साथ मिलकर एक गतिशील चलती औसत की गणना करती है। जब कीमत गतिशील चलती औसत से ऊपर / नीचे होती है तो एक अधिक / शून्य संकेत उत्पन्न होता है। साथ ही साथ स्टॉप लॉस स्टॉप पोजीशन सेट करें और मूल्य परिवर्तन को ट्रैक करें।
विशेष रूप से, पहले एटीआर संकेतक और पैरामीटर nLoss की गणना करें। इसके बाद, वर्तमान चक्र की कीमत और पिछले चक्र की रोकथाम की स्थिति की गणना करें, दोनों की तुलना करें और रोकथाम लाइन को अपडेट करें। जब कीमत पिछले चक्र की रोकथाम लाइन को तोड़ती है, तो अधिक / शून्य सिग्नल पॉस और संबंधित रंग उत्पन्न होता है; जब ट्रेडिंग सिग्नल उत्पन्न होता है, तो एक तीर का निशान खींचें। अंत में, स्टॉपलॉस लॉजिक के अनुसार एक सपाट स्थिति।
इस रणनीति का सबसे बड़ा लाभ यह है कि गतिशील चलती औसत का उपयोग वास्तविक समय में मूल्य परिवर्तन को ट्रैक करने के लिए किया जाता है। यह पारंपरिक फिक्स्ड चलती औसत की तुलना में अधिक ट्रेंड को पकड़ने और रोक की संभावना को कम करने के लिए बेहतर है। इसके अलावा, एटीआर स्टॉप के साथ, स्टॉप पोजीशन को बाजार में उतार-चढ़ाव के आधार पर लचीले ढंग से समायोजित किया जा सकता है, जिससे जोखिम को प्रभावी ढंग से नियंत्रित किया जा सकता है।
इस रणनीति का मुख्य जोखिम यह है कि कीमतों में भारी उछाल हो सकता है, जिससे स्टॉपलाइन को तोड़ने के लिए गलत संकेत मिलते हैं। इसके अलावा, अनुचित शर्तों की स्थापना से बहुत अधिक बार व्यापार हो सकता है।
समाधान चलती औसत अवधि को अनुकूलित करना है, एटीआर और स्टॉप लॉस गुणांक के आकार को समायोजित करना है, और गलत संकेतों की संभावना को कम करना है। इसके अलावा, फ़िल्टरिंग शर्तों को सेट किया जा सकता है ताकि बहुत अधिक व्यापार से बचा जा सके।
इस रणनीति को निम्नलिखित पहलुओं से अनुकूलित किया जा सकता हैः
विभिन्न प्रकारों और अवधि के लिए चलती औसत का परीक्षण करें और सर्वोत्तम पैरामीटर संयोजन खोजें
एटीआर चक्र पैरामीटर को अनुकूलित करें, स्टॉप लॉस संवेदनशीलता को संतुलित करें
अतिरिक्त फ़िल्टरिंग शर्तों और संकेतकों को जोड़ना, सिग्नल की गुणवत्ता में सुधार
स्टॉप लॉस स्टॉप को समायोजित करें, रिटर्न जोखिम अनुपात को अनुकूलित करें
इस रणनीति का मुख्य विचार गतिशील चलती औसत है जो वास्तविक समय में मूल्य परिवर्तन को ट्रैक करता है, एटीआर संकेतक का उपयोग करता है जो गतिशील रूप से स्टॉपलॉस सेट करता है, जबकि ट्रेंड का पालन करते हुए जोखिम को सख्ती से नियंत्रित करता है। पैरामीटर अनुकूलन और नियम संशोधन के माध्यम से, इस रणनीति को एक बहुत ही व्यावहारिक मात्रात्मक प्रणाली में प्रशिक्षित किया जा सकता है।
/*backtest
start: 2022-11-23 00:00:00
end: 2023-11-05 05:20:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT","stocks":0}]
*/
//@version=5
strategy(title='UT Bot v5', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
//CREDITS to HPotter for the orginal code. The guy trying to sell this as his own is a scammer lol.
//Edited and converted to @version=5 by SeaSide420 for Paperina
// Inputs
AllowBuy = input(defval=true, title='Allow Buy?')
AllowSell = input(defval=false, title='Allow Sell?')
h = input(false, title='Signals from Heikin Ashi Candles')
//revclose = input(defval=true, title='Close when reverse signal?')
Price = input(defval=open, title='Price Source (recommended OPEN to avoid repainting)')
smoothing = input.string(title="Moving Average Type", defval="HMA", options=["SMA", "EMA", "WMA", "HMA"])
MA_Period = input(2, title='This changes the MAPeriod')
a = input.float(1, title='This changes the sensitivity',step=0.1)
c = input(11, title='ATR Period')
TakeProfit = input.int(defval=50000, title='Take Profit ($)', minval=1)
StopLoss = input.int(defval=50000, title='Stop Loss ($)', minval=1)
xATR = ta.atr(c)
nLoss = a * xATR
src = h ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, Price, lookahead=barmerge.lookahead_off) : Price
xATRTrailingStop = 0.0
iff_1 = src > nz(xATRTrailingStop[1], 0) ? src - nLoss : src + nLoss
iff_2 = src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0) ? math.min(nz(xATRTrailingStop[1]), src + nLoss) : iff_1
xATRTrailingStop := src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0) ? math.max(nz(xATRTrailingStop[1]), src - nLoss) : iff_2
pos = 0
iff_3 = src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0) ? -1 : nz(pos[1], 0)
pos := src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0) ? 1 : iff_3
xcolor = pos == -1 ? color.red : pos == 1 ? color.green : color.blue
ma_function(src, MA_Period) =>
switch smoothing
"SMA" => ta.sma(src, MA_Period)
"EMA" => ta.ema(src, MA_Period)
"WMA" => ta.wma(src, MA_Period)
=> ta.hma(src, MA_Period)
thema = ma_function(src, MA_Period)
above = ta.crossover(thema, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, thema)
buy = src > xATRTrailingStop and above
sell = src < xATRTrailingStop and below
barbuy = src > xATRTrailingStop
barsell = src < xATRTrailingStop
plot(thema,title="The M.A.",color=color.green,linewidth=2)
plot(xATRTrailingStop,title="The M.A.",color=color.red,linewidth=2)
plotshape(buy, title = "Buy", text = "Buy", style = shape.labelup, location = location.belowbar, color= color.green, textcolor = color.white, size = size.tiny)
plotshape(sell, title = "Sell", text = "Sell", style = shape.labeldown, location = location.abovebar, color= color.red, textcolor = color.white, size = size.tiny)
barcolor(barbuy ? color.green : na)
barcolor(barsell ? color.red : na)
strategy.close_all(when=strategy.openprofit>TakeProfit,alert_message="Close- TakeProfit", comment = "TP")
strategy.close_all(when=strategy.openprofit<StopLoss-(StopLoss*2),alert_message="Close- StopLoss", comment = "SL")
strategy.close("buy", when = sell and AllowSell==false , comment = "close buy")
strategy.close("sell", when = buy and AllowBuy==false, comment = "close sell")
strategy.entry("buy", strategy.long, when = buy and AllowBuy)
strategy.entry("sell", strategy.short, when = sell and AllowSell)