दोहरी प्रवृत्ति रेखाएं बुद्धिमान ट्रैकिंग बीटीसी निवेश रणनीति

लेखक:चाओझांग, दिनांक: 2023-11-22 15:18:53
टैगः

img

अवलोकन

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

रणनीति तर्क

  1. एक दोहरी चलती औसत बनाने के लिए 25 अवधि ईएमए और 100 अवधि एलएसएमए का उपयोग करें। उनके क्रॉसओवर का उपयोग बाजार की प्रवृत्ति निर्धारित करने के लिए किया जाता है। ईएमए मूल्य परिवर्तनों पर जल्दी से प्रतिक्रिया करता है जबकि एलएसएमए झूठे ब्रेकआउट को फ़िल्टर करता है।

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

  3. लंबी पोजीशन लेने के बाद, एटीआर संकेतक का उपयोग करके गणना की जाने वाली गतिशील स्टॉप लॉस बीटीसी के अपट्रेंड को प्रभावी ढंग से ट्रैक करने के लिए समायोजित करती रहती है। विशेष रूप से, स्टॉप लॉस लाइन का प्रारंभिक बिंदु प्रवेश मूल्य है। उसके बाद, प्रत्येक समायोजन एटीआर आयाम के एक निश्चित प्रतिशत द्वारा ऊपर की ओर फिसल जाएगा।

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

लाभ विश्लेषण

  1. प्रवृत्ति को निर्धारित करने के लिए दोहरी चलती औसत का उपयोग करना अधिक विश्वसनीय है और प्रभावी रूप से झूठे संकेतों को रोक सकता है।

  2. एटीआर गतिशील ट्रेलिंग स्टॉप लॉस अक्सर छोटे स्टॉप लॉस से बचते हुए अधिकांश मुनाफे को लॉक कर सकता है।

  3. भले ही तेजी की प्रवृत्ति समाप्त हो या नहीं, जब तक चलती औसत एक निकास संकेत जारी करती है, जोखिम को नियंत्रित करने के लिए स्थिति को रोक दिया जाएगा।

  4. इस रणनीति में मैन्युअल हस्तक्षेप के बिना उच्च स्तर की स्वचालन है, जिससे यह दीर्घकालिक लाइव ट्रेडिंग के लिए उपयुक्त है।

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

  1. अभी भी भारी स्लिप नुकसान से बचने के लिए अचानक बड़ी खबरों पर ध्यान देने की जरूरत है।

  2. यद्यपि दोहरी चलती औसत का संयोजन झूठे संकेतों को कम कर सकता है, फिर भी रेंज-बाउंड बाजारों में उनसे पूरी तरह बचना मुश्किल है।

  3. एटीआर की अनुचित पैरामीटर सेटिंग भी स्टॉप लॉस प्रभाव को प्रभावित कर सकती है। विभिन्न उत्पादों के आधार पर समायोजन की आवश्यकता होती है।

  4. अनुचित चलती औसत अवधि या समय पर अद्यतन करने में विफलता संकेत विलंब का कारण बन सकती है।

  5. स्वचालित व्यापार को बाधित करने वाले असामान्य क्रैश से बचने के लिए सर्वर स्थिरता सुनिश्चित करें।

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

  1. प्रवृत्ति निर्धारित करने के लिए बोलिंगर बैंड जैसे अधिक संकेतक जोड़े जा सकते हैं। कीमतों की भविष्यवाणी करने के लिए मशीन लर्निंग मॉडल का भी उपयोग किया जा सकता है।

  2. एटीआर गतिशील स्टॉप लॉस की गणना विधि को भी स्टॉप लॉस को सुचारू बनाने के लिए समायोजित और अनुकूलित किया जा सकता है।

  3. प्रमुख समाचारों के प्रभाव से बचने के लिए व्यापारिक मात्रा के आधार पर अलर्ट तंत्र और इंट्राडे रोटेशन सुविधाएं जोड़ी जा सकती हैं।

  4. अलग-अलग सिक्कों के लिए मापदंड भिन्न होते हैं। व्यक्तिगत मापदंडों को प्रशिक्षित करने के लिए अधिक ऐतिहासिक डेटा का उपयोग किया जा सकता है।

सारांश

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


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

//@version=4
strategy("Automated Bitcoin (BTC) Investment Strategy", overlay=true, initial_capital=5000,pyramiding = 0, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100,  commission_type=strategy.commission.percent,commission_value=0.1)

////////////  Functions

Atr(p) =>
    atr = 0.
    Tr = max(high - low, max(abs(high - close[1]), abs(low - close[1])))
    atr := nz(atr[1] + (Tr - atr[1])/p,Tr)

//TEMA
TEMA(series, length) =>
    if (length > 0)
        ema1 = ema(series, length)
        ema2 = ema(ema1, length)
        ema3 = ema(ema2, length)
        (3 * ema1) - (3 * ema2) + ema3
    else
        na
tradeType = input("LONG", title="What trades should be taken : ", options=["LONG", "SHORT", "BOTH", "NONE"])

///////////////////////////////////////////////////
/// INDICATORS
source=close

/// TREND
trend_type1 = input("TEMA", title ="First Trend Line : ", options=["LSMA", "TEMA","EMA","SMA"])
trend_type2 = input("LSMA", title ="First Trend Line : ", options=["LSMA", "TEMA","EMA","SMA"])

trend_type1_length=input(25, "Length of the First Trend Line")
trend_type2_length=input(100, "Length of the Second Trend Line")

leadLine1 = if trend_type1=="LSMA"
    linreg(close, trend_type1_length, 0)
else if trend_type1=="TEMA"
    TEMA(close,trend_type1_length)
else if trend_type1 =="EMA"
    ema(close,trend_type1_length)
else
    sma(close,trend_type1_length)

leadLine2 = if trend_type2=="LSMA"
    linreg(close, trend_type2_length, 0)
else if trend_type2=="TEMA"
    TEMA(close,trend_type2_length)
else if trend_type2 =="EMA"
    ema(close,trend_type2_length)
else
    sma(close,trend_type2_length)

p3 = plot(leadLine1, color= #53b987, title="EMA", transp = 50, linewidth = 1)
p4 = plot(leadLine2, color= #eb4d5c, title="SMA", transp = 50, linewidth = 1)
fill(p3, p4, transp = 60, color = leadLine1 > leadLine2 ? #53b987 : #eb4d5c)

//Upward Trend
UT=crossover(leadLine1,leadLine2)
DT=crossunder(leadLine1,leadLine2)

// TP/ SL/  FOR LONG
// TAKE PROFIT AND STOP LOSS
long_tp1_inp = input(15, title='Long Take Profit 1 %', step=0.1)/100
long_tp1_qty = input(20, title="Long Take Profit 1 Qty", step=1)

long_tp2_inp = input(30, title='Long Take Profit 2%', step=0.1)/100
long_tp2_qty = input(20, title="Long Take Profit 2 Qty", step=1)

long_take_level_1 = strategy.position_avg_price * (1 + long_tp1_inp)
long_take_level_2 = strategy.position_avg_price * (1 + long_tp2_inp)

long_sl_input = input(5, title='stop loss in %', step=0.1)/100
long_sl_input_level = strategy.position_avg_price * (1 - long_sl_input)

// Stop Loss
multiplier = input(3.5, "SL Mutiplier", minval=1, step=0.1)
ATR_period=input(8,"ATR period", minval=1, step=1)

// Strategy
//LONG STRATEGY CONDITION

SC = input(close, "Source", input.source)
SL1 = multiplier * Atr(ATR_period)  // Stop Loss
Trail1 = 0.0
Trail1 :=  iff(SC < nz(Trail1[1], 0) and SC[1] < nz(Trail1[1], 0), min(nz(Trail1[1], 0), SC + SL1), iff(SC > nz(Trail1[1], 0), SC - SL1, SC + SL1))
Trail1_high=highest(Trail1,50)

// iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1),

entry_long=crossover(leadLine1,leadLine2) and Trail1_high < close
exit_long = close < Trail1_high or crossover(leadLine2,leadLine1) or close < long_sl_input_level

///// BACKTEST PERIOD ///////
testStartYear = input(2016, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(9999, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

if testPeriod()
    if tradeType=="LONG" or tradeType=="BOTH"
        if strategy.position_size == 0 or strategy.position_size > 0
            strategy.entry("long", strategy.long, comment="b8f60da7_ENTER-LONG_BINANCE_BTC/USDT_b8f60da7-BTC-Investment_4H", when=entry_long)
            strategy.exit("TP1", "long", qty_percent=long_tp1_qty, limit=long_take_level_1)
            strategy.exit("TP2", "long", qty_percent=long_tp2_qty, limit=long_take_level_2)
            strategy.close("long", when=exit_long, comment="b8f60da7_EXIT-LONG_BINANCE_BTC/USDT_b8f60da7-BTC-Investment_4H" )


// LONG POSITION

plot(strategy.position_size > 0 ? long_take_level_1 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="1st Long Take Profit")
plot(strategy.position_size > 0 ? long_take_level_2 : na, style=plot.style_linebr, color=color.green, linewidth=1, title="2nd Long Take Profit")
plot(strategy.position_size > 0 ? Trail1_high : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")

अधिक