ADX, RSI, SMA মাল্টি-ইন্ডিকেটর কম্বিনেশন ট্রেডিং কৌশল


সৃষ্টির তারিখ: 2023-09-14 16:19:46 অবশেষে সংশোধন করুন: 2023-09-14 16:19:46
অনুলিপি: 3 ক্লিকের সংখ্যা: 1004
1
ফোকাস
1617
অনুসারী

কৌশল নীতি

এই কৌশলটি ট্রেডিং সিগন্যাল তৈরির জন্য প্রবণতার দিকনির্দেশনা এবং ওভার-বিক্রয় ওভার-বিক্রয় অঞ্চলগুলি সনাক্ত করতে একাধিক প্রযুক্তিগত সূচক ব্যবহার করে।

প্রধান সূচকগুলো হলঃ

  1. গড় দিক নির্দেশক সূচক (ADX): প্রবণতা শক্তি বিচার

  2. তুলনামূলকভাবে দুর্বল সূচক (আরএসআই): ওভারবয় ওভারসোল্ড

  3. সানগ্লাস গড় (এসএমএ): স্বল্পমেয়াদী প্রবণতা নির্ণয় করা

  4. এক্সট্রিম এসএআর সূচক: দীর্ঘ ও স্বল্পমেয়াদী প্রবণতা নির্ণয় করা

  5. চ্যানেল ব্রেকঃ ট্রেন্ড ব্রেকিং

লেনদেনের লজিকঃ

  1. ADX এর মতে, প্রবণতা বিদ্যমান এবং যথেষ্ট শক্তিশালী

  2. এসএআর-এর দীর্ঘ ও স্বল্পমেয়াদী প্রবণতা

  3. আরএসআই ওভার-বই ওভার-সোল্ডের পরিধি চিহ্নিত করে

  4. দাম এসএমএ গড় লাইন অতিক্রম করলে প্রবেশ করুন

  5. মূল্য চ্যানেল ভেঙে প্রবেশ

একাধিক সূচক একে অপরকে যাচাই করে বিচার সঠিকতা বৃদ্ধি করে, বিভিন্ন কৌশল সমন্বয় একটি সিস্টেম ট্রেডিং সিস্টেম গঠন করে।

কৌশলগত সুবিধা

  • সিগন্যালের গুণগত মান উন্নত করতে মাল্টিমিটার প্যারেন্টিং

  • বিভিন্ন কৌশল সমন্বয়, পদ্ধতিগত ভর্তি

  • ADX ট্রেন্ড চিহ্নিত করেছে, আরএসআই ওভারবয় ওভারসোল্ড করেছে

  • এসএআর ট্রেন্ডিং, এসএমএ এবং চ্যানেলের মাধ্যমে প্রবেশ করে

কৌশলগত ঝুঁকি

  • মাল্টি-প্যারামিটার সেটিং, পুনরাবৃত্তি পরীক্ষার অপ্টিমাইজেশান প্রয়োজন

  • সংমিশ্রণ শর্তের কম ফ্রিকোয়েন্সি

  • ইঙ্গিতগুলি যখন দ্বন্দ্বের সংকেত দেয় তখন এটি পরিচালনা করা কঠিন

সারসংক্ষেপ

এই কৌশলটি বিভিন্ন ধরণের সূচকগুলির সুবিধা গ্রহণ করে এবং একটি শক্তিশালী ব্যবসায়ের ব্যবস্থা তৈরি করে। তবে এটির জন্য প্যারামিটারগুলি অনুকূলিতকরণ করা দরকার যাতে ব্যবসায়ের ফ্রিকোয়েন্সি যুক্তিসঙ্গত হয়। সামগ্রিকভাবে, কৌশলটি শক্তিশালী প্রবণতা সনাক্তকরণের সাথে কার্যকরভাবে প্রবেশের সাথে একত্রিত হয়।

কৌশল সোর্স কোড
/*backtest
start: 2023-09-12 00:00:00
end: 2023-09-13 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// strategy("Combined Strategy", overlay=true, default_qty_value=100, initial_capital=1000, margin_long=0.1)

adxlen = input(7, title="ADX Smoothing")
dilen = input(7, title="DI Length")
dirmov(len) =>
    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)
    truerange = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / truerange)
    minus = fixnan(100 * ta.rma(minusDM, len) / truerange)
    [plus, minus]

adx(dilen, adxlen) =>
    [plus, minus] = dirmov(dilen)
    sum = plus + minus
    adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), adxlen)
sig = adx(dilen, adxlen)

// The same on Pine Script™
pine_supertrend(factor, atrPeriod) =>
    src = hl2
    atr = ta.atr(atrPeriod)
    upperBand = src + factor * atr
    lowerBand = src - factor * atr
    prevLowerBand = nz(lowerBand[1])
    prevUpperBand = nz(upperBand[1])

    lowerBand := lowerBand > prevLowerBand or close[1] < prevLowerBand ? lowerBand : prevLowerBand
    upperBand := upperBand < prevUpperBand or close[1] > prevUpperBand ? upperBand : prevUpperBand
    int direction = na
    float superTrend = na
    prevSuperTrend = superTrend[1]
    if na(atr[1]) and ta.rsi(close, 21) < 66 and ta.rsi(close,3) > 80 and ta.rsi(close, 28) > 49 and sig > 20
        direction := 1
    else if prevSuperTrend == prevUpperBand
        direction := close > upperBand ? -1 : 1
    else
        direction := close < lowerBand ? 1 : -1
    superTrend := direction == -1 ? lowerBand : upperBand
    [superTrend, direction]

[pineSupertrend, pineDirection] = pine_supertrend(3, 10)
upTrend = pineDirection < 0
downTrend = pineDirection > 0

// Define the 20-period SMA
sma20 = ta.sma(close, 20)

a = ta.rsi(close,14)
OB = input(70)
OS = input(30)
os = a > OB
ob = a < OS

if upTrend and close > pineSupertrend and close > sma20 and os
    strategy.entry("Buy", strategy.long)

if ta.crossunder(close, sma20) or ob
    strategy.close_all()

//define when to breakout of channel 
//("ChannelBreakOutStrategy", overlay=true)
length = input.int(title="Length", minval=1, maxval=1000, defval=5)
upBound = ta.highest(high, length)
downBound = ta.lowest(low, length)
if (not na(close[length]))
	strategy.entry("ChBrkLE", strategy.long, stop=upBound + syminfo.mintick, comment="ChBrkLE")
strategy.entry("ChBrkSE", strategy.short, stop=downBound - syminfo.mintick, comment="ChBrkSE")