
এই কৌশলটি বাজারের প্রবণতা সম্পর্কে বিচার করার জন্য ব্রিন ব্যান্ড, আরএসআই, এডিএক্স, এমএসিডি ইত্যাদি একাধিক সূচক ব্যবহার করে, যার প্রবণতা সনাক্তকরণের শক্তিশালী ক্ষমতা রয়েছে। সূচক সংকেত যখন বুলিশ হয়, তখন পশ্চাদ্ধাবন কৌশল গ্রহণ করা হয়; যখন সূচক সংকেত একই সাথে বিয়ারিশ হয়, তখন পজিশন স্টপ করা হয়।
মাল্টি-ইনডিকেটর প্যাকেজের মাধ্যমে বিচার করুন, মূল্যের প্রবণতা সঠিকভাবে সনাক্ত করুন, যখন প্রবণতা ঘটে তখন সময়মতো অনুসরণ করুন, অতিরিক্ত উপার্জন অর্জন করুন।
এই কৌশলটির সবচেয়ে বড় সুবিধা হল যে সূচক সমন্বয়টি ব্যাপক এবং সঠিকভাবে বিচার করা হয়, যা মূল্যের প্রবণতাকে কার্যকরভাবে সনাক্ত করতে পারে এবং একটি একক সূচকের কারণে মিথ্যা সংকেত এড়াতে পারে।
বিশেষ করে, এর সুবিধাগুলো হলঃ
এই প্যাকেজটি ব্যবহার করে, আপনি আপনার কৌশলকে স্থিতিশীল করতে পারবেন, যাতে আপনার ভুল সংকেত কম হয় এবং আপনার কৌশল স্থিতিশীল হয়।
এই কৌশলটির প্রধান ঝুঁকিগুলো হলোঃ
ঝুঁকির জন্য, একাধিক সূচকের উপর নির্ভরশীলতার কারণে, একক সূচকের ব্যর্থতার সমস্যাটি কিছুটা এড়ানো যায়, তবে ঝুঁকি নিয়ন্ত্রণ ব্যবস্থাটি উন্নত করা দরকার।
ঝুঁকি 2 এর জন্য, প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা যেতে পারে, লেনদেনের ব্যাপ্তি সংক্ষিপ্ত করা যায়, লেনদেনের ফ্রিকোয়েন্সি হ্রাস করা যায় এবং ঝুঁকি হ্রাস করা যায়।
এই কৌশলটি নিম্নলিখিত দিকগুলিকে অনুকূলিত করতে পারেঃ
ক্রমাগত অপ্টিমাইজেশনের মাধ্যমে, কৌশলগত প্যারামিটারগুলির দৃঢ়তা ক্রমাগত উন্নত করা এবং মিথ্যা সংকেতের সম্ভাবনা হ্রাস করা।
এই কৌশলটি সামগ্রিকভাবে প্রবণতা সংকেত সনাক্ত করার জন্য শক্তিশালী এবং সূচক সমন্বয় দ্বারা বিচার করে, মূল্য প্রবণতা কার্যকরভাবে সনাক্ত করতে পারে।
তবে কিছু ঝুঁকিও রয়েছে, দীর্ঘমেয়াদী স্থিতিশীল কার্যকারিতার জন্য বায়ু নিয়ন্ত্রণ ব্যবস্থা এবং প্যারামিটারগুলির ক্রমাগত অপ্টিমাইজেশনের প্রয়োজন। যদি মেশিন লার্নিং এবং অন্যান্য পদ্ধতিগুলি পরবর্তী পর্যায়ে প্যারামিটারগুলির স্বয়ংক্রিয় অপ্টিমাইজেশনের জন্য প্রবর্তন করা যায় তবে কৌশলটির রুক্ষতা এবং উপার্জনের ক্ষমতা ব্যাপকভাবে বাড়ানো হবে।
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 5h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © abilash.s.90
dIMinusCalc(adxLen) =>
smoothedTrueRange = 0.0
smoothedDirectionalMovementMinus = 0.0
dIMinus = 0.0
trueRange = 0.0
directionalMovementMinus = 0.0
trueRange := max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
directionalMovementMinus := nz(low[1])-low > high-nz(high[1]) ? max(nz(low[1])-low, 0): 0
smoothedTrueRange := nz(smoothedTrueRange[1]) - (nz(smoothedTrueRange[1])/adxLen) + trueRange
smoothedDirectionalMovementMinus := nz(smoothedDirectionalMovementMinus[1]) - (nz(smoothedDirectionalMovementMinus[1])/adxLen) + directionalMovementMinus
dIMinus := smoothedDirectionalMovementMinus / smoothedTrueRange * 100
dIMinus
dIPlusCalc(adxLen) =>
smoothedTrueRange = 0.0
smoothedDirectionalMovementPlus = 0.0
dIPlus = 0.0
trueRange = 0.0
directionalMovementPlus = 0.0
trueRange := max(max(high-low, abs(high-nz(close[1]))), abs(low-nz(close[1])))
directionalMovementPlus := high-nz(high[1]) > nz(low[1])-low ? max(high-nz(high[1]), 0): 0
smoothedTrueRange := nz(smoothedTrueRange[1]) - (nz(smoothedTrueRange[1])/adxLen) + trueRange
smoothedDirectionalMovementPlus := nz(smoothedDirectionalMovementPlus[1]) - (nz(smoothedDirectionalMovementPlus[1])/adxLen) + directionalMovementPlus
dIPlus := smoothedDirectionalMovementPlus / smoothedTrueRange * 100
dIPlus
Adx(adxLen) =>
dIPlus = 0.0
dIMinus = 0.0
dX = 0.0
aDX = 0.0
dIPlus := dIPlusCalc(adxLen)
dIMinus := dIMinusCalc(adxLen)
dX := abs(dIPlus-dIMinus) / (dIPlus+dIMinus)*100
aDX := sma(dX, adxLen)
aDX
BarInSession(sess) => time(timeframe.period, sess) != 0
//@version=4
strategy("Bollinger Band + RSI + ADX + MACD", overlay=true)
//Session
session = input(title="Trading Session", type=input.session, defval="0930-1500")
sessionColor = BarInSession(session) ? color.green : na
bgcolor(color=sessionColor, transp=95)
// Bollinger Bands
src = input(high, title="Bollinger Band Source", type=input.source)
length = input(3, minval=1, type=input.integer, title="Bollinger Band Length")
mult = input(4.989, minval=0.001, maxval=50, step=0.001, type=input.float, title="Bollinger Band Std Dev")
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(upper, title="Bollinger Band Upper", color=color.red)
plot(lower, title="Bollinger Band Lower", color=color.green)
// RSI
rsiSrc = input(close, title="RSI Source", type=input.source)
rsiLength = input(16, minval=1, type=input.integer, title="RSI Length")
rsiComparator = input(39.2, title="RSI Comparator", type=input.float, step=0.1)
rsi = rsi(rsiSrc, rsiLength)
// ADX
adxLength = input(14, minval=1, type=input.integer, title="ADX Length")
adxComparator = input(14, minval=1, type=input.integer, title="ADX Comparator")
adx = Adx(adxLength)
// Heikinashi
haClose = security(heikinashi(syminfo.ticker), timeframe.period, close)
haOpen = security(heikinashi(syminfo.ticker), timeframe.period, open)
nextHaOpen = (haOpen + haClose) / 2
//MACD
macdCalcTypeProcessed = input(title="MACD Source", type=input.source, defval=high)
fast = input(12, title="MACD Fast")
slow = input(20, title="MACD Slow")
signalLen = input(15, title="MACD Signal")
fastMA = ema(macdCalcTypeProcessed, fast)
slowMA = ema(macdCalcTypeProcessed, slow)
macd = fastMA - slowMA
signal = sma(macd, signalLen)
longCondition() =>
(low < lower) and (rsi[0] > rsiComparator) and (adx > adxComparator) and (close > nextHaOpen) and BarInSession(session) and macd > signal
stop = (close - max((low - (low * 0.0022)), (close - (close * 0.0032)))) / syminfo.mintick
target = (max(upper, (close + (close * 0.0075))) - close) / syminfo.mintick
strategy.entry("SX,LE", strategy.long, when=longCondition(), comment="SX,LE")
strategy.close_all(when=(not BarInSession(session)))
strategy.exit("LX", from_entry="SX,LE", profit=target, loss=stop)