वीडब्ल्यूएमए-एडीएक्स गति और ट्रेंड-आधारित बिटकॉइन लंबी रणनीति

लेखक:चाओझांग, दिनांकः 2024-04-03 17:47:49
टैगःवीडब्ल्यूएमएएडीएक्सडीएमआईएसएमएईएमएआरएमएडब्ल्यूएमएएचएमएएसएमएमए

img

अवलोकन

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

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

  1. लंबी प्रवृत्ति निर्धारित करने के लिए 9-दिवसीय और 14-दिवसीय वीडब्ल्यूएमए का उपयोग करें। एक तेजी का संकेत तब उत्पन्न होता है जब अल्पकालिक चलती औसत लंबी अवधि के चलती औसत से ऊपर जाती है।
  2. प्रवृत्ति फिल्टर के रूप में 89 दिनों के उच्चतम और निम्नतम मूल्य VWMA से निर्मित एक अनुकूलनशील चलती औसत पेश करें। केवल तब ही स्थिति खोलने पर विचार करें जब समापन मूल्य या उद्घाटन मूल्य इस चलती औसत से ऊपर हो।
  3. ADX और DMI संकेतकों का उपयोग करके प्रवृत्ति की शक्ति की पुष्टि करें। प्रवृत्ति को केवल तभी पर्याप्त रूप से मजबूत माना जाता है जब ADX 18 से अधिक हो और +DI और -DI के बीच का अंतर 15 से अधिक हो।
  4. कम ट्रेडिंग वॉल्यूम वाले अवधियों से बचने के लिए वॉल्यूम वॉल्यूम फंक्शन का उपयोग करके 60% और 95% प्रतिशत के बीच ट्रेडिंग वॉल्यूम वाले बारों को फ़िल्टर करें।
  5. स्टॉप-लॉस स्तर को 0.96 से 0.99 गुना पूर्ववर्ती मोमबत्ती के उच्च पर सेट करें, जोखिम को नियंत्रित करने के लिए समय सीमा बढ़ने के साथ घटता है।
  6. जब पूर्वनिर्धारित होल्डिंग समय तक पहुँच जाता है या कीमत अनुकूलनशील चलती औसत से नीचे गिर जाती है तो स्थिति को बंद कर दें।

लाभ विश्लेषण

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

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

  1. जब बाजार में उतार-चढ़ाव होता है या रुझान स्पष्ट नहीं होता है, तो रणनीति अधिक झूठे संकेत उत्पन्न कर सकती है।
  2. स्टॉप-लॉस का स्तर अपेक्षाकृत संकीर्ण है, जो समय से पहले स्टॉप-आउट को ट्रिगर कर सकता है और बाजार में बड़े उतार-चढ़ाव के दौरान नुकसान बढ़ सकता है।
  3. इस रणनीति में व्यापक आर्थिक परिस्थितियों और महत्वपूर्ण घटनाओं पर विचार नहीं किया गया है और यह 'ब्लैक स्वान' घटनाओं के सामने विफल हो सकती है।
  4. पैरामीटर सेटिंग्स अपेक्षाकृत स्थिर हैं और अनुकूलन क्षमता की कमी है, जिसके परिणामस्वरूप विभिन्न बाजार वातावरणों में अस्थिर प्रदर्शन हो सकता है।

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

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

सारांश

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


/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Q_D_Nam_N_96

//@version=5
strategy("Long BTC Strategy", overlay=true, 
     default_qty_type = strategy.percent_of_equity, 
     default_qty_value = 100, initial_capital = 1000, currency = currency.USD)

Volume_Quartile(vol) =>
    qvol1 = ta.percentile_linear_interpolation(vol, 60,15)
    qvol2 = ta.percentile_linear_interpolation(vol, 60,95)
    vol > qvol1 and vol < qvol2

smma(src, length) =>
	smma =  0.0
	smma := na(smma[1]) ? ta.sma(src, length) : (smma[1] * (length - 1) + src) / length
	smma

ma(source, length, type) =>
    switch type
        "SMA" => ta.sma(source, length)
        "EMA" => ta.ema(source, length)
        "RMA" => ta.rma(source, length)
        "WMA" => ta.wma(source, length)
        "VWMA" => ta.vwma(source, length)
        "HMA" => ta.hma(source, length)
        "SMMA" => smma(source, length)

DMI(len, lensig) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    trur = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / trur)+11
    minus = fixnan(100 * ta.rma(minusDM, len) / trur)-11
    sum = plus + minus
    adx = 100 * ta.vwma(math.abs(plus - minus-11) / (sum == 0 ? 1 : sum), lensig)

    [adx, plus, minus]

cond1 = Volume_Quartile(volume*hlcc4)

ma1 = ma(close,9, "VWMA")
// plot(ma1, color = color.blue)
ma2 = ma(close,14, "VWMA")
// plot(ma2, color = color.orange)

n = switch timeframe.period
    "240" => 0.997
    => 0.995

ma3 = (0.1*ma(ta.highest(close,89),89, "VWMA") + 
     0.9*ma(ta.lowest(close,89),89, "VWMA"))*n

plot(ma3, color = color.white)

[adx, plus, minus] = DMI(7, 10)


cond2 = adx > 18 and plus - math.abs(minus) > 15

var int count = 0

if barstate.isconfirmed and strategy.position_size != 0
    count += 1
else
    count := 0

p_roc = 0
if timeframe.period == '240'
    p_roc := 14
else
    p_roc := 10

longCondition = ta.crossover(ma1, ma2) and (close > open ? close > ma3 : open > ma3) and ((ma3 - ma3[1])*100/ma3[1] >= -0.2) and ((close-close[p_roc])*100/close[p_roc] > -2.0)
float alpha = 0.0
float sl_src = high[1]
if (longCondition and cond1 and cond2 and strategy.position_size == 0)
    strategy.entry("buy", strategy.long)
    if timeframe.period == '240'
        alpha := 0.96
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+5, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '30'
        alpha := 0.985
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '45'
        alpha := 0.985
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '60'
        alpha := 0.98
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '120'
        alpha := 0.97
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == '180'
        alpha := 0.96
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else if timeframe.period == 'D'
        alpha := 0.95
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)
    else 
        alpha := 0.93
        strategy.exit("exit-buy","buy", stop = sl_src*alpha)
        // line.new(bar_index, sl_src*alpha, bar_index+20, sl_src*alpha, width = 2, color = color.white)

period = switch timeframe.period
    "240" => 90
    "180" => 59
    "120" => 35
    "30" => 64
    "45" => 40
    "60" => 66
    "D" => 22
    => 64

if (count > period or close < ma3)
    strategy.close('buy', immediately = true) 

संबंधित

अधिक

कज़ज़ज़888मोबाइल स्टॉप के साथ बेहतर होगा।