মাল্টি-ইন্ডিকেটর ইন্টিগ্রেশনের উপর ভিত্তি করে ট্রেন্ড ট্র্যাকিং কৌশল


সৃষ্টির তারিখ: 2023-09-13 17:16:51 অবশেষে সংশোধন করুন: 2023-09-13 17:16:51
অনুলিপি: 1 ক্লিকের সংখ্যা: 666
1
ফোকাস
1617
অনুসারী

এই কৌশলটির নাম হল প্রবণতা ট্র্যাকিং কৌশল যা বহু-দর্শনীয় সমন্বয়ের উপর ভিত্তি করে। এই কৌশলটি আরএসআই, এডিএক্স এবং এমএসিডি এর তিনটি সূচক ব্যবহার করে, একটি উচ্চতর প্রবণতা নিশ্চিত হওয়ার পরে একটি উচ্চতর প্রবণতা নিশ্চিত করে এবং একটি নিম্নমুখী প্রবণতা নিশ্চিত হওয়ার পরে প্লেইন করে।

আরএসআই সূচকটি ওভারবয় ওভারসোলের অবস্থা নির্ধারণ করে। আরএসআইয়ের উপরে 30 টি ওভারবয় শেষ হওয়ার পরে, অতিরিক্ত বিবেচনা করা হয়। আরএসআইয়ের নীচে 70 টি ওভারবয় শেষ হওয়ার পরে, প্লেইন বিবেচনা করা হয়।

এডিএক্স সূচকটি প্রবণতার শক্তি নির্ধারণ করে। এডিএক্স মানের উপরে 25 টির মানে ট্রেন্ডের অবস্থা প্রবেশ করা এবং নীচে 25 টির মানে ট্রেন্ডের সমাপ্তি।

MACD সূচক স্বল্পমেয়াদী প্রবণতা নির্ধারণ করে। DIFF উপরে DEA অতিক্রম করে সংক্ষিপ্ত লাইন উত্থান, আরও বিবেচনা করুন। DIFF নীচে DEA অতিক্রম করে সংক্ষিপ্ত লাইন পতন, সমতল অবস্থান বিবেচনা করুন।

যখন RSI, ADX এবং MACD তিনটি সূচক একই সাথে একাধিক ট্রেন্ডের সংকেত দেখায়, তখন অতিরিক্ত লেনদেন করুন। যখন তিনটি সূচক একাধিক ট্রেন্ডের সমাপ্তি দেখায়, তখন পলস করুন।

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

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

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

// RSI
//@version=3
// strategy("Femi Strategy", overlay=true)
strategy("Femi Strategy", overlay=false)
RSIlength = input( 14 )
overSold = input( 30 )
overBought = input( 70 )
price = close

vrsi = rsi(price, RSIlength)



//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)





// ADX

//@version=3
adxlen = input(14)
dilen = input(14)
adxThreshold = input( 25 )
dirmov(len) =>
	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)
	truerange = rma(tr, len)
	plus = fixnan(100 * rma(plusDM, len) / truerange)
	minus = fixnan(100 * rma(minusDM, len) / truerange)
	[plus, minus]

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

sig = adx(dilen, adxlen)


// MACD
//@version=3
MACDZero = input(0)
fastLength = input(12)
slowlength = input(26)
MACDLength = input(9)

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD



source = close
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

if (not na(vrsi))
    if (crossover(delta, MACDZero))
        strategy.entry("FEMIMACDLE", strategy.long, comment="FEMIMACDLE")
    else
        strategy.cancel(id="FEMIMACDLE")
        
    
    if (crossunder(vrsi, overSold))
        strategy.entry("FEMIRSILE", strategy.long, comment="FEMIRSILE")
    else
        strategy.cancel(id="FEMIRSILE")
        
        
    // if(crossover(sig, adxThreshold)) // crossover(sig, adxThreshold) crossover(delta, MACDZero) crossunder(vrsi, overSold)
    //     strategy.entry("FEMIADXLE", strategy.long, comment="FEMIADXLE")
    // else
    //     strategy.cancel(id="FEMIADXLE")
        
        
    // if (crossover(source, lower))
    //     strategy.entry("FEMIBBLE", strategy.long, comment="FEMIBBLE")
    // else
    //     strategy.cancel(id="FEMIBBLE")
        
    // if(crossunder(sig, adxThreshold))
        // strategy.cancel(id="FEMILE")
        // strategy.exit(id="FEMILE")
        
    // if (crossunder(delta, MACDZero))
        // strategy.entry("FEMIMACDSE", strategy.short, comment="FEMIMACDSE")
    if (crossover(vrsi, overBought))
        // strategy.entry("FEMIRSISE", strategy.short, comment="FEMIRSISE")
        strategy.close("FEMIRSILE")
        strategy.close("FEMIMACDLE")
        strategy.close("FEMIADXLE")
        strategy.close("FEMIBBLE")
    
    if (crossunder(sig, adxThreshold) and crossunder(delta, MACDZero) and crossunder(source, upper)) // crossover(delta, MACDZero) crossover(vrsi, overSold) crossover(sig, adxThreshold)
        strategy.close("FEMIRSILE")
        strategy.close("FEMIMACDLE")
        strategy.close("FEMIADXLE")
        strategy.close("FEMIBBLE")
        
    // if(crossunder(source, upper))
    //     strategy.close("FEMIRSILE")
    //     strategy.close("FEMIMACDLE")
    //     strategy.close("FEMIADXLE")
    //     strategy.close("FEMIBBLE")
        // strategy.entry("FEMIADXSE", strategy.short, comment="FEMIADXSE")
    // else
    //     strategy.cancel(id="FEMISE")

// plot(sig, color=red, title="ADX", linewidth=2, style=areabr)
// plot(adxThreshold, color=blue, title="ADX")


// plot(vrsi, color=green, title="RSI", linewidth=2, style=areabr)
// plot(overSold, color=blue, title="RSI")
// plot(overBought, color=red, title="RSI")

// plot(delta, color=green, title="MACD", linewidth=2, style=areabr)
// plot(MACDZero, color=blue, title="MACD")
// plot(overBought, color=red, title="MACD")
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)