गति संतुलन चैनल प्रवृत्ति अनुसरण रणनीति


निर्माण तिथि: 2023-12-12 18:07:31 अंत में संशोधित करें: 2023-12-12 18:07:31
कॉपी: 0 क्लिक्स: 621
1
ध्यान केंद्रित करना
1621
समर्थक

गति संतुलन चैनल प्रवृत्ति अनुसरण रणनीति

अवलोकन

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

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

यह रणनीति मुख्य रूप से निम्नलिखित दो मापदंडों पर आधारित हैः

  1. गतिशीलता संकेतक (डीएमआई): बाजार के खुले रुझान का आकलन करने के लिए, संकेतक एक व्यापार संकेत उत्पन्न करता है जब यह थ्रेसहोल्ड सेट करने से बड़ा होता है।

  2. संतुलन चैनल (Keltner Channel): प्रवृत्ति क्षेत्र को निर्धारित करने के लिए, जब कीमत ऊपर की ओर बढ़ जाती है तो यह खरीदने का समय होता है, और जब कीमत नीचे की ओर गिरती है तो यह बियर सिग्नल होता है।

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

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

श्रेष्ठता विश्लेषण

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

  2. संतुलन चैनल का उपयोग करके विशिष्ट लेनदेन क्षेत्रों को निर्धारित करने के लिए, लाभप्रद क्षेत्रों को प्रभावी ढंग से लॉक करना संभव है।

  3. संकेतक पैरामीटर और व्यापार नियम सख्ती से उचित हैं, रिटर्न्स डेटा अच्छा प्रदर्शन कर रहा है, और वास्तविक समय में सत्यापित प्रभाव है।

  4. रणनीतियाँ सरल, स्पष्ट और समझने में आसान हैं, जो कि क्वांटिफाइड ट्रेडिंग के शुरुआती लोगों के लिए उपयुक्त हैं।

  5. रणनीतिक जोखिम नियंत्रण योग्य है, मध्य-रेखा सम-रेखीय गतिशील स्टॉप लॉस का उपयोग करके, एकल नुकसान को प्रभावी रूप से नियंत्रित करता है।

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

  1. रणनीति केवल प्रवृत्ति के लिए लागू होती है, यह अस्थिर बाजारों के लिए लागू नहीं होती है, जैसे कि QtCore चैनल बढ़ता है, मिड-रेल स्टॉप लॉस बहुत आराम से होता है और नुकसान को नियंत्रित नहीं किया जा सकता है।

  2. DMI सूचक में कुछ देरी है, प्रवृत्ति की पुष्टि की पुष्टि नहीं की जा सकती है, और प्रवृत्ति में जल्दी हस्तक्षेप से नुकसान हो सकता है।

  3. एक निश्चित प्रतिशत स्टॉप का जोखिम है कि एक बड़े झटके के बाद प्रवृत्ति में फिर से हस्तक्षेप करने में असमर्थ होने के कारण, बाद की घटनाओं को याद किया जाएगा।

  4. हालांकि, यह अभी भी स्थिरता को सत्यापित करने के लिए लंबे समय तक चलने की आवश्यकता है।

अनुकूलन दिशा

  1. एक निश्चित प्रतिशत रोक को बदलने के लिए एटीआर रोक, मोबाइल रोक आदि जैसे विभिन्न रोक को परीक्षण किया जा सकता है।

  2. प्रवृत्ति की पुष्टि के बाद प्रवेश सुनिश्चित करने के लिए, लेन-देन की मात्रा में वृद्धि जैसे उप-प्रमाणित संकेतकों को जोड़ा जा सकता है।

  3. विभिन्न पैरामीटर संयोजनों के अनुकूलन का परीक्षण करें और सर्वोत्तम पैरामीटर संयोजनों को खोजें।

  4. चरण अनुकूलन और गतिशील प्रतिक्रिया परीक्षण के माध्यम से पैरामीटर स्थिरता की पुष्टि की जा सकती है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Original Idea by: @Wunderbit


//@version=4
strategy("Keltner Channel [LINKUSDT] 1H", overlay=true, initial_capital=3000,pyramiding = 0, currency="USD", default_qty_type=strategy.percent_of_equity, default_qty_value=100,  commission_type=strategy.commission.percent,commission_value=0.1)


/// TREND
trend_cond = input(true, title="Enable Ribbon Filter")
ribbon_period = input(30, "Ribbon Period", step=1)

leadLine1 = ema(close, ribbon_period)
leadLine2 = sma(close, ribbon_period)

// 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=leadLine2 < leadLine1
DT=leadLine2 > leadLine1

///////////////////////////////////////INDICATORS

// KELTNER //
source       = close
useTrueRange = input(true)
length       = input(80, "KELTNER Period", step=1, minval=1)
mult         = input(3.0,"KELTNER Multiple", step=0.1)

// Calculate Keltner Channel
ma      = ema(source, length)
range   = useTrueRange ? tr : high - low
rangema = ema(range, length)
upper = ma + rangema * mult
lower = ma - rangema * mult

plot(ma, title="Middle", color=color.orange)
p1=plot(upper, title="Upper", color=color.orange)
p2=plot(lower, title="Lower", color=color.orange)
fill(p1,p2)


// DMI INDICATOR //

lensig = input(14, title="ADX Smoothing", minval=1, maxval=50)
len = input(14, minval=1, title="DI Length")
up = change(high)
down = -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 = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / trur)
minus = fixnan(100 * rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * rma(abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)

trig_level=input(title="+DI Trigger Level", defval=32, minval=1,step=1)
//trig_level_adx=input(title="ADX Trigger Level", defval=30, minval=1,step=1)

//plot(adx, color=#FF006E, title="ADX")
//plot(plus, color=#0094FF, title="+DI")
//plot(minus, color=#FF6A00, title="-DI")
// plot(trig_level, color=color.white, title="Key Level")

///////////////////////////////////////////////////////////


////////////////////////////////////////////////////Component Code Start

testStartYear = input(2019, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2030, "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
    
///// Component Code Stop //////////////////////////////////////////

//////////////// STRATEGY EXECUTION //////////////////////////

// STRATEGY CONDITION
// LONG

long = ((open > lower and open < upper) and close > upper) and plus > minus and plus > trig_level and volume[0] > volume[1]
entry_long = trend_cond ? long and UT : long
exit_long = (close < ma) //or low < SL_long

//LONG SET UP
// Take Profit / Stop Loss

entry_price_long=valuewhen(entry_long,close,0)
//SL_long = entry_price_long * (1 - long_sl_inp)

long_tp1_inp = input(8, title='Long Take Profit 1 Target %', step=0.1)/100
long_tp1_qty = input(20, title="Long Take Profit 1 Qty %", step=1)

long_tp2_inp = input(16, title='Long Take Profit 2 Target %', step=0.1)/100
long_tp2_qty = input(30, 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_inp = input(4, title='Long Stop Loss %', step=0.1)/100
//long_stop_level = strategy.position_avg_price * (1 - long_sl_inp)


// STRATEGY EXECUTION
if testPeriod()

    // LONG
    
    strategy.entry(id="Long", long=true, when=entry_long, comment = "INSERT ENTRY LONG COMMAND")
    strategy.exit("TP1","Long", qty_percent=long_tp1_qty, limit=long_take_level_1) // PLACE TAKE PROFIT IN WBT BOT SETTINGS 
    strategy.exit("TP2","Long", qty_percent=long_tp2_qty, limit=long_take_level_2) // PLACE TAKE PROFIT IN WBT BOT SETTINGS
    strategy.close(id="Long", when=exit_long, comment= "INSERT EXIT LONG COMMAND")


//PLOT FIXED SLTP LINE
// 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 ? long_stop_level : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Stop Loss")