डाउनट्रेंड रणनीति के बाद डॉलर मूल्य औसतकरण

लेखक:चाओझांग, दिनांकः 2024-01-17 17:57:58
टैगः

img

अवलोकन

इस रणनीति का मुख्य विचार अल्पकालिक गिरावट समाप्त होने के बाद नियमित रूप से निम्न औसत कीमतों को ट्रैक करना है। विशेष रूप से, रणनीति प्रत्येक महीने के अंत में अल्पकालिक गिरावट के अंत की पहचान करेगी, ताकि नियमित रूप से पदों को जोड़ा जा सके; साथ ही, अंतिम के लाइन बंद होने पर पदों को साफ किया जा सके।

रणनीतिक सिद्धांत

  1. नियमित ट्रैकिंग सिग्नल निर्णयः 24*30 के-लाइन (एक महीने का प्रतिनिधित्व करने वाले) के बाद यह निर्धारित किया जाता है कि नियमित ट्रैकिंग बिंदु तक पहुंच गया है और पहला सिग्नल आउटपुट है।

  2. अल्पकालिक गिरावट के अंत का निर्णयः प्रवृत्ति निर्धारित करने के लिए एमएसीडी संकेतक का उपयोग करें। जब एमएसीडी विचलन होता है और एमएसीडी संकेत रेखा से नीचे जाता है, तो यह निर्धारित किया जाता है कि अल्पकालिक गिरावट समाप्त हो गई है।

  3. प्रवेश नियम: जब नियमित ट्रैकिंग सिग्नल और अल्पकालिक गिरावट सिग्नल का अंत एक ही समय में ट्रिगर किया जाता है, तो एक ट्रैकिंग सिग्नल जारी किया जाता है और लंबी स्थिति खोली जाती है।

  4. बाहर निकलने के नियमः जब अंतिम K-लाइन बंद हो जाती है, तो सभी पदों को खाली करें।

उपरोक्त रणनीति के बुनियादी व्यापार प्रवाह और सिद्धांत हैं। यह ध्यान देने योग्य है कि रणनीति बैकटेस्ट में प्रति माह $ 1,000 का ट्रैक करने के लिए डिफ़ॉल्ट है, जिसे 33 महीने तक बढ़ाया जाएगा, अर्थात $ 33,000 का कुल निवेश।

लाभ विश्लेषण

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

सामान्य तौर पर, यह लागत औसतकरण की रणनीति है जो मध्यम और दीर्घकालिक धारकों के लिए अधिक उपयुक्त है ताकि वे संतोषजनक रिटर्न प्राप्त करने के लिए नियमित रूप से बैच खरीद सकें।

जोखिम और समाधान

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

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

अनुकूलन दिशाएँ

इस रणनीति को निम्नलिखित दिशाओं में और अधिक अनुकूलित किया जा सकता हैः

  1. अत्यधिक बार-बार व्यापार की समस्या को कम करने के लिए नियमित ट्रैकिंग चक्र को अनुकूलित करें, जैसे कि हर दो महीने में एक बार ट्रैकिंग।

  2. अल्पकालिक गिरावट के अंत को निर्धारित करने के लिए अधिक संकेतकों को शामिल करें, जिससे प्रवेश बिंदु सबसे निचले बिंदु के करीब हो।

  3. इष्टतम विन्यास खोजने के लिए हर महीने निवेशित धनराशि का अनुकूलन करें।

  4. जब कीमतें बहुत नीचे गिरती हैं तो अत्यधिक नुकसान से बचने के लिए स्टॉप लॉस रणनीतियों को शामिल करने का प्रयास करें।

  5. इष्टतम रखरखाव दिनों को खोजने के लिए रिटर्न पर विभिन्न रखरखाव अवधि के प्रभाव का परीक्षण करें।

सारांश

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


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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/
// © BHD_Trade_Bot

// @version=5
strategy(
 shorttitle            = 'DCA After Downtrend v2',
 title                 = 'DCA After Downtrend v2 (by BHD_Trade_Bot)',
 overlay               = true,
 calc_on_every_tick    = false,
 calc_on_order_fills   = false,
 use_bar_magnifier     = false,
 pyramiding            = 1000,
 initial_capital       = 0,
 default_qty_type      = strategy.cash,
 default_qty_value     = 1000,
 commission_type       = strategy.commission.percent,
 commission_value      = 1.1)



// Backtest Time Period
start_year   = input(title='Start year'   ,defval=2017)
start_month  = input(title='Start month'  ,defval=1)
start_day    = input(title='Start day'    ,defval=1)
start_time   = timestamp(start_year, start_month, start_day, 00, 00)

end_year     = input(title='end year'     ,defval=2050)
end_month    = input(title='end month'    ,defval=1)
end_day      = input(title='end day'      ,defval=1)
end_time     = timestamp(end_year, end_month, end_day, 23, 59)

window() => time >= start_time and time <= end_time ? true : false
h1_last_bar = (math.min(end_time, timenow) - time)/1000/60/60 < 2



// EMA
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)

// EMA_CD
emacd = ema50 - ema200
emacd_signal = ta.ema(emacd, 20)
hist = emacd - emacd_signal

// BHD Unit
bhd_unit = ta.rma(high - low, 200) * 2
bhd_upper = ema200 + bhd_unit
bhd_upper2 = ema200 + bhd_unit * 2
bhd_upper3 = ema200 + bhd_unit * 3
bhd_upper4 = ema200 + bhd_unit * 4
bhd_upper5 = ema200 + bhd_unit * 5

bhd_lower = ema200 - bhd_unit
bhd_lower2 = ema200 - bhd_unit * 2
bhd_lower3 = ema200 - bhd_unit * 3
bhd_lower4 = ema200 - bhd_unit * 4
bhd_lower5 = ema200 - bhd_unit * 5

// Count n candles after x long entries
var int nPastCandles = 0
var int entryNumber = 0
if window()
    nPastCandles := nPastCandles + 1



// ENTRY CONDITIONS

// 24 * 30 per month
entry_condition1 = nPastCandles > entryNumber * 24 * 30

// End of downtrend
entry_condition2 = emacd < 0 and hist < 0 and hist > hist[2]

ENTRY_CONDITIONS = entry_condition1 and entry_condition2


if ENTRY_CONDITIONS
    entryNumber := entryNumber + 1
    entryId = 'Long ' + str.tostring(entryNumber)
    strategy.entry(entryId, strategy.long)
    
    

// CLOSE CONDITIONS

// Last bar
CLOSE_CONDITIONS = barstate.islast or h1_last_bar

if CLOSE_CONDITIONS
    strategy.close_all()



// Draw
colorRange(src) =>
    if src > bhd_upper5
        color.rgb(255,0,0)
    else if src > bhd_upper4
        color.rgb(255,150,0)
    else if src > bhd_upper3
        color.rgb(255,200,0)
    else if src > bhd_upper2
        color.rgb(100,255,0)
    else if src > bhd_upper
        color.rgb(0,255,100)
    else if src > ema200
        color.rgb(0,255,150)
    else if src > bhd_lower
        color.rgb(0,200,255)
    else if src > bhd_lower2
        color.rgb(0,150,255)
    else if src > bhd_lower3
        color.rgb(0,100,255)
    else if src > bhd_lower4
        color.rgb(0,50,255)
    else
        color.rgb(0,0,255)
        
bhd_upper_line = plot(bhd_upper, color=color.new(color.teal, 90))
bhd_upper_line2 = plot(bhd_upper2, color=color.new(color.teal, 90))
bhd_upper_line3 = plot(bhd_upper3, color=color.new(color.teal, 90))
bhd_upper_line4 = plot(bhd_upper4, color=color.new(color.teal, 90))
bhd_upper_line5 = plot(bhd_upper5, color=color.new(color.teal, 90))

bhd_lower_line = plot(bhd_lower, color=color.new(color.teal, 90))
bhd_lower_line2 = plot(bhd_lower2, color=color.new(color.teal, 90))
bhd_lower_line3 = plot(bhd_lower3, color=color.new(color.teal, 90))
bhd_lower_line4 = plot(bhd_lower4, color=color.new(color.teal, 90))
bhd_lower_line5 = plot(bhd_lower5, color=color.new(color.teal, 90))
// fill(bhd_upper_line5, bhd_lower_line5, color=color.new(color.teal, 95))

plot(ema50, color=color.orange, linewidth=3)
plot(ema200, color=color.teal, linewidth=3)
plot(close, color=color.teal, linewidth=1)
plot(close, color=colorRange(close), linewidth=3, style=plot.style_circles)


अधिक