डबल बॉटम रिवर्सल मीन्स रिवर्सन डीसीए ग्रिड रणनीति

लेखक:चाओझांग, दिनांकः 2024-02-20 11:09:33
टैगः

img

अवलोकन

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

रणनीति तर्क

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

विशेष रूप से, हाल के 14 मोमबत्तियों पर एटीआर संकेतक पहले ta.atr के माध्यम से प्राप्त किया जाता है। फिर हाल के 5 मोमबत्तियों पर मूल्य अस्थिरता की गणना की जाती है। वे ग्रिड क्षेत्र को निर्धारित करने के लिए उपयोग किए जाने वाले मुख्य मापदंड हैं। ग्रिड में 4 मूल्य स्तर होते हैं - निचली कीमत + अस्थिरता, निचली कीमत + 0.75 * अस्थिरता, और इसी तरह। एक बार डबल बॉटम शर्त ट्रिगर हो जाने के बाद, इस सूत्र के अनुसार समान आकार के 4 सीमा आदेश रखे जाएंगे। कई मोमबत्तियों के बाद अधूरे आदेश रद्द कर दिए जाएंगे।

इसके अतिरिक्त, रणनीति एक स्टॉप लॉस मूल्य और एक ले लाभ मूल्य भी निर्धारित करती है। स्टॉप लॉस मूल्य डबल बॉटम माइनस एक टिक आकार की सबसे कम कीमत पर सेट किया जाता है, जबकि ले लाभ मूल्य एंट्री मूल्य प्लस एटीआर के 5 गुना पर सेट किया जाता है। जब स्थिति का आकार 0 से अधिक होता है तो ये दो मूल्य वास्तविक समय में अपडेट हो जाएंगे।

ताकत

इस रणनीति के मुख्य लाभ इस प्रकार हैंः

  1. पलटाव को निर्धारित करने के लिए डबल बॉटम का प्रयोग सटीकता में सुधार करता है और झूठे ब्रेक से बचा जाता है।
  2. डीसीए ग्रिड व्यापारियों को विभिन्न कीमतों पर धीरे-धीरे पदों का निर्माण करने की अनुमति देता है, जिससे लागत आधार कम होता है।
  3. गतिशील एटीआर और अस्थिरता मापदंडों को बाजार परिवर्तनों के आधार पर ग्रिड और लाभ सीमा को समायोजित किया जाता है।
  4. ऑटो स्टॉप लॉस प्रभावी रूप से प्रति ट्रेड हानि राशि को नियंत्रित करता है।

जोखिम विश्लेषण

प्रमुख जोखिमः

  1. मूल्य बिना उलट के समर्थन के माध्यम से तोड़ सकता है, स्टॉप लॉस और नुकसान को ट्रिगर कर सकता है। सुरक्षा के लिए स्टॉप लॉस दूरी को चौड़ा करें।
  2. गलत डीसीए ग्रिड सेटिंग से कम भरने की दर हो सकती है। भरने की दर सुनिश्चित करने के लिए विभिन्न मापदंडों का परीक्षण करें।
  3. अस्थिर बाजार में अक्सर लाभ लेने के साथ whipsaws। व्यापक लाभ लेने के गुणकों की अनुमति देने पर विचार करें।

सुधार के क्षेत्र

कुछ क्षेत्रों में सुधार किया जा सकता हैः

  1. नुकसान से बचने के लिए मुख्य प्रवृत्ति के साथ केवल व्यापार उलटा करें।
  2. पूंजी उपयोग दक्षता को अनुकूलित करने के लिए पहली प्रविष्टि के लिए बड़े आकार और ग्रिड प्रविष्टियों के लिए छोटे आकार पर विचार करें।
  3. इष्टतम मापदंडों को खोजने के लिए विभिन्न मापदंड संयोजनों का परीक्षण करें या गतिशील समायोजन तर्क डिजाइन करें।
  4. ऑटो पैरामीटर अनुकूलन प्राप्त करने के लिए उन्नत मंच में मशीन लर्निंग को एकीकृत करें।

सारांश

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


/*backtest
start: 2024-02-12 00:00:00
end: 2024-02-19 00:00:00
period: 3m
basePeriod: 1m
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/
// © cherepanovvsb

//@version=5
strategy("Reversal (only long)", overlay=true, margin_long=1, margin_short=1,initial_capital=1000,commission_type = strategy.commission.percent,commission_value =0.1,currency='USD', process_orders_on_close=true)
plotshape(low == low[1], style=shape.triangleup, location=location.belowbar, color=color.blue, title="1 Setup")
plotshape(low == low[1] and low[1]==low[2], style=shape.triangleup, location=location.belowbar, color=color.red, title="Triple Setup")

ATRlenght   = input.int(title="ATR length for taking profit", defval=14, group="Strategy Settings")
rewardMultiplier= input.int(title="ATR multiplier", defval=5, group="Strategy Settings")
Volatility_length=input.int(title='Volatility length',defval=5,group="Strategy Settings")
Volatility_multiplier=input.float(title='Volatility multiplier',defval=0.5,step=0.1, group="Strategy Settings")
Candles_to_wait=input.int(title='How many candles to wait after placing orders grid?',defval=4,group="Strategy Settings")

// Get ATR
atr1 = ta.atr(ATRlenght)

//Get volatility values (not ATR) 
float result = 0
for i = 0 to Volatility_length
	result+=high[i]-low[i]
volatility=result*Volatility_multiplier/Volatility_length

//Validate entrance points
validlow =  low [2]== low[1] and not na(atr1) 
validlong = validlow and strategy.position_size == 0  and low[1]<low


// Calculate SL/TP
longStopPrice = low[1]-syminfo.mintick
longStopDistance = close - longStopPrice
longTargetPrice = close + (longStopDistance * rewardMultiplier)
strategy.initial_capital = 50000
//Assign all variables
var tradeStopPrice = 0.0
var tradeTargetPrice = 0.0
var point1=0.0
var point2=0.0
var point3=0.0
var point4=0.0
var contracts = int(strategy.initial_capital/close)/4
if validlong 
    tradeStopPrice := longStopPrice
    tradeTargetPrice := longTargetPrice
    point1:=low[1]+volatility
    point2:=low[1]+volatility*0.75
    point3:=low[1]+volatility*0.5
    point4:=low[1]+volatility*0.25

strategy.entry ("Long1", strategy.long,limit=point1,qty=contracts, when=validlong)
strategy.entry ("Long2", strategy.long,limit=point2,qty=contracts, when=validlong)
strategy.entry ("Long3", strategy.long,limit=point3,qty=contracts, when=validlong)
strategy.entry ("Long4", strategy.long,limit=point4,qty=contracts, when=validlong)

stopcondition = ta.barssince(validlong) == Candles_to_wait

strategy.cancel("Long1",when=stopcondition)
strategy.cancel("Long2",when=stopcondition)
strategy.cancel("Long3",when=stopcondition)
strategy.cancel("Long4",when=stopcondition)
    
strategy.exit(id="Long Exit", limit=tradeTargetPrice, stop=tradeStopPrice, when=strategy.position_size > 0)

plot(strategy.position_size != 0 or validlong ? tradeStopPrice : na, title="Trade Stop Price", color=color.red, style=plot.style_linebr, linewidth=3)
plot(strategy.position_size != 0 or validlong ? tradeTargetPrice : na, title="Trade Target Price", color=color.green, style=plot.style_linebr, linewidth=3)

plot(strategy.position_size != 0? point1 : na, title="Long1", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point2 : na, title="Long2", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point3 : na, title="Long3", color=color.green, style=plot.style_linebr, transp=0)
plot(strategy.position_size != 0? point4 : na, title="Long4", color=color.green, style=plot.style_linebr, transp=0)



अधिक