
এই কৌশলটি একটি চলমান গড়, একটি ব্রিন ব্যান্ড এবং একটি তুলনামূলকভাবে দুর্বল সূচক তিনটি সূচক একত্রিত করে, একটি বহু-চক্রের স্টক ট্রেডিংয়ের জন্য। এটি ক্রয় করার সময় একই সাথে দ্রুত চলমান গড়ের উপর একটি ধীর চলমান গড়, একটি তুলনামূলকভাবে দুর্বল সূচক 50 এর নীচে এবং একটি বন্ধের মূল্য ব্রিন ব্যান্ডের মাঝারি ট্রেলের নীচে তিনটি শর্ত বিবেচনা করে। এটি বিক্রি করার সময়, একটি তুলনামূলকভাবে দুর্বল সূচক 70 এর উপরে এবং একটি বন্ধের মূল্য ব্রিন ব্যান্ডের উপরে ট্রেলের উপরে বিবেচনা করে।
এই কৌশলটি মূলত তিনটি সূচক ব্যবহার করে বিচার করে। প্রথমটি হল MACD সূচক, যা দ্রুত এবং ধীর দুটি ভিন্ন সময়কালের চলমান গড় দ্বারা গঠিত, যখন দ্রুত লাইনটি ধীর লাইনটি অতিক্রম করে তখন একটি কেনার সংকেত তৈরি করে। দ্বিতীয়টি হল ব্রিনের ব্যান্ড, যা মধ্যম, উপরের এবং নীচের তিনটি লাইন নিয়ে গঠিত। যখন দামটি নীচের ট্র্যাকের কাছাকাছি আসে তখন একটি অস্থির উপত্যকা কেনার পয়েন্ট এবং যখন দামটি উপরের ট্র্যাকের কাছাকাছি আসে তখন একটি পয়েন্ট যা ক্ষতি বন্ধ করতে হবে। তৃতীয়টি হল RSI, যা সিকিওরিটির দামের চলাচলের গতি এবং পরিবর্তনের পরিমাণকে প্রতিফলিত করে, যেখানে ক্রয় পয়েন্ট এবং উপত্যকা বিক্রয় পয়েন্ট পাওয়া যায়।
নির্দিষ্ট ট্রেডিংয়ের সময়, এই কৌশলটি প্রথমে দ্রুত চলমান গড়ের উপর একটি ধীর চলমান গড়ের মধ্য দিয়ে যেতে বলে, যা শেয়ারের দাম বাড়ার গতি বাড়িয়ে তোলে এবং কেনা যায়। একই সাথে, আরএসআই 50 এর নীচে থাকা প্রয়োজন, যা শেয়ারের দাম ওভারসোল্ড অঞ্চলে থাকতে পারে এবং কেনার সময় প্রবেশ করে। এছাড়াও, বন্ধের দামটি ব্রিনের বন্ডের মধ্যবর্তী ট্রেলের নীচে থাকা প্রয়োজন, যা শেয়ারের দামের উপত্যকা অংশে রয়েছে এবং এটি একটি ভাল কেনার পয়েন্টও।
স্টপ এবং স্টপ লস ক্ষেত্রে, যখন RSI 70 এর উপরে থাকে, তখন শেয়ারের দাম ওভার-বয় অঞ্চলে থাকতে পারে, যা দেখায় যে উত্থানের গতিবেগ হ্রাস পেয়েছে, স্টপগুলি বিবেচনা করা উচিত। এছাড়াও, যখন সমাপ্তির দামগুলি ব্রিনের ব্যান্ডের উপরে থাকে, তখন শেয়ারের দামগুলি খুব বেশি হতে পারে, রিটার্নের ঝুঁকি রয়েছে এবং যথাযথভাবে স্টপ করা উচিত।
এই কৌশলটি চলমান গড়, ব্রিন ব্যান্ড এবং আরএসআই এর তিনটি সূচকের সুবিধা ব্যবহার করে, যা ক্রয় এবং বিক্রয়ের সময়কে আরও সঠিকভাবে নির্ধারণ করতে পারে। এর সুবিধাগুলি নিম্নরূপঃ
মুভিং এভারেজ শেয়ারের দাম বাড়ানোর গতি নির্ধারণ করে, বুলিনের মধ্যবর্তী ট্র্যাক শেয়ারের দামের নীচে ক্রয় স্থান খুঁজে পেতে পারে, আরএসআই শেয়ারের উচ্চতা কেনার জন্য বাধা দিতে পারে। তিনটির সংমিশ্রণটি শেয়ারের দামের মধ্যবর্তী সময়ে ক্রয়ের জন্য আরও ভাল সময় নির্ধারণ করতে পারে।
আরএসআই এবং ব্রিনের সংমিশ্রণটি শীর্ষস্থানীয় শেয়ারের দামগুলিকে ভালভাবে ধরে রাখতে পারে, ওভারবইয়ের ঘটনা এড়াতে এবং সময়মতো বন্ধ করতে পারে।
মাল্টি-সাইক্লিক বিচার ব্যবহার করে, আপনি বিভিন্ন স্তরের ব্যবসায়ের সুযোগগুলিকে কাজে লাগাতে পারেন এবং লাভের সুযোগটি প্রসারিত করতে পারেন।
এই কৌশলটির ট্রেডিং লজিকটি সহজ, পরিষ্কার এবং সহজে বোঝা যায়, যা মাঝারি এবং দীর্ঘমেয়াদী বিনিয়োগের জন্য উপযুক্ত।
যদিও এই কৌশলটি একাধিক সূচককে একত্রিত করে, ট্রেডিং সিদ্ধান্তের সঠিকতা বাড়ায়। তবে, নিম্নলিখিত প্রধান ঝুঁকি রয়েছেঃ
প্যারামিটার সেট করার ঝুঁকি। চলন্ত গড়, ব্রিন ব্যান্ড এবং আরএসআই এর প্যারামিটারগুলিকে বাস্তব পরিস্থিতির সাথে সামঞ্জস্য করতে হবে। যদি প্যারামিটারগুলি ভুলভাবে সেট করা হয় তবে ট্রেডিংয়ের কার্যকারিতা প্রভাবিত হতে পারে।
এই কৌশলটি আরও ভালভাবে বহুমুখী মুদ্রা বাজারে প্রয়োগ করা যায়। একটি ভাল বাজারে, শেয়ারের দাম আরও দ্রুত হ্রাস পায়, এবং এই কৌশলটির ক্ষতি হ্রাসের ব্যবস্থাগুলি কার্যকর হতে পারে না।
একক শেয়ারের ঝুঁকি এই কৌশলটি পোর্টফোলিওর জন্য আরও উপযুক্ত, একক শেয়ারের ঝুঁকি এখনও বিদ্যমান, বিনিয়োগকে বিচ্ছিন্ন করার প্রয়োজন
ট্রেডিং ফ্রিকোয়েন্সি খুব বেশি হতে পারে। যদি প্যারামিটারগুলি সঠিকভাবে সেট করা থাকে তবে এই কৌশলটি প্রায়শই ট্রেড করতে পারে। এটি লেনদেনের ব্যয় এবং করের ফি বাড়িয়ে তুলবে।
সমাধানঃ
পরিমাপের তথ্যের উপর ভিত্তি করে প্যারামিটারটি সামঞ্জস্য করা উচিত যাতে সূচকটি সংকেত প্রেরণের ফ্রিকোয়েন্সিটি আরও উপযুক্ত করে তোলে।
মুভিং এভারেজ চক্রটি যথাযথভাবে সামঞ্জস্য করা যেতে পারে, ক্রয়ের ফ্রিকোয়েন্সি হ্রাস করা এবং ক্ষতি হ্রাস করা যায়।
একক শেয়ারের ঝুঁকি কমানোর জন্য বিনিয়োগের বৈচিত্র্য বাড়ানো।
এই কৌশলটি আরও উন্নত করার সুযোগ রয়েছেঃ
আরো পরিমাপ ফিল্টার, যেমন লেনদেনের পরিমাপ, কেনার সময় লেনদেনের পরিমাণ বাড়াতে এবং সিদ্ধান্ত গ্রহণের সঠিকতা বাড়াতে ব্যবহার করা যেতে পারে।
পজিশন ম্যানেজমেন্ট মডিউল যোগ করা যায়, যা বাজারের অবস্থার উপর ভিত্তি করে পজিশন পরিবর্তন করে।
ডিপ লার্নিং অ্যালগরিদমের সাথে মিলিত, এটি স্বয়ংক্রিয়ভাবে প্যারামিটার সেটিংগুলিকে অপ্টিমাইজ করতে পারে, প্রচুর পরিমাণে ডেটা প্রশিক্ষণ দিয়ে।
এই পদ্ধতিতে, আপনি আরও সময়কালের বিচার যুক্ত করতে পারেন, যার ফলে এটির প্রয়োগযোগ্যতা বাড়বে।
এই কৌশলটি সামগ্রিকভাবে যুক্তিসঙ্গতভাবে পরিষ্কার, সহজেই বোঝা যায়, একাধিক সূচক বিচারকে সমন্বিতভাবে ব্যবহার করে, কিছুটা মিথ্যা সংকেত হ্রাস করে। প্যারামিটার অপ্টিমাইজেশন এবং আরও প্রযুক্তিগত সূচক যুক্ত করে, সিদ্ধান্ত গ্রহণের নির্ভুলতা আরও বাড়ানো এবং কৌশলটির দৃ strength়তা বাড়ানো যেতে পারে। এই কৌশলটি মাঝারি-দীর্ঘমেয়াদী বিনিয়োগের জন্য উপযুক্ত এবং এটি পরিমাণগত ব্যবসায়ের জন্যও ব্যবহার করা যেতে পারে। তবে কোনও কৌশলই বাজারের ঝুঁকিকে পুরোপুরি এড়াতে পারে না, পজিশনের আকার এবং স্টপ লসকে ভালভাবে নিয়ন্ত্রণ করতে হবে।
/*backtest
start: 2023-11-25 00:00:00
end: 2023-12-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//
//@author Alorse
//@version=4
strategy("MACD + BB + RSI [Alorse]", shorttitle="BB + MACD + RSI [Alorse]", overlay=true, pyramiding=0, currency=currency.USD, default_qty_type=strategy.percent_of_equity, initial_capital=1000, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.01)
txtVer = "1.0.1"
version = input(title="Version", type=input.string, defval=txtVer, options=[txtVer], tooltip="This is informational only, nothing will change.")
src = input(title="Source", type=input.source, defval=close)
// MACD
fast_length = input(title="Fast Length", type=input.integer, defval=12, group="MACD")
slow_length = input(title="Slow Length", type=input.integer, defval=26, group="MACD")
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9, group="MACD")
sma_source = input(title="Oscillator MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
sma_signal = input(title="Signal Line MA Type", type=input.string, defval="EMA", options=["SMA", "EMA"], group="MACD")
fast_ma = sma_source == "SMA" ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source == "SMA" ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal == "SMA" ? sma(macd, signal_length) : ema(macd, signal_length)
// Bollinger Bands
bbGroup = "Bollindger Bands"
length = input(20, title="Length", group=bbGroup)
mult = input(2.0, title="StdDev", minval=0.001, maxval=5, group=bbGroup)
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
// RSI
rsiGroup = "RSI"
lenRSI = input(14, title="Length", minval=1, group=rsiGroup)
// lessThan = input(50, title="Less than", minval=1 , maxval=100, group=rsiGroup)
RSI = rsi(src, lenRSI)
// Strategy Conditions
buy = crossover(macd, signal) and RSI < 50 and close < basis
sell = RSI > 70 and close > upper
// Stop Loss
slGroup = "Stop Loss"
useSL = input(false, title="╔══════ Enable ══════╗", group=slGroup, tooltip="If you are using this strategy for Scalping or Futures market, we do not recommend using Stop Loss.")
SLbased = input(title="Based on", type=input.string, defval="Percent", options=["ATR", "Percent"], group=slGroup, tooltip="ATR: Average True Range\nPercent: eg. 5%.")
multiATR = input(10.0, title="ATR Mult", type=input.float, group=slGroup, inline="atr")
lengthATR = input(14, title="Length", type=input.integer, group=slGroup, inline="atr")
SLPercent = input(10, title="Percent", type=input.float, group=slGroup) * 0.01
longStop = 0.0
shortStop = 0.0
if SLbased == "ATR"
longStop := valuewhen(buy, low, 0) - (valuewhen(buy, rma(tr(true), lengthATR), 0) * multiATR)
longStopPrev = nz(longStop[1], longStop)
longStop := close[1] > longStopPrev ? max(longStop, longStopPrev) : longStop
shortStop := (valuewhen(sell, rma(tr(true), lengthATR), 0) * multiATR) + valuewhen(sell, high, 0)
shortStopPrev = nz(shortStop[1], shortStop)
shortStop := close[1] > shortStopPrev ? max(shortStop, shortStopPrev) : shortStop
if SLbased == "Percent"
longStop := strategy.position_avg_price * (1 - SLPercent)
shortStop := strategy.position_avg_price * (1 + SLPercent)
strategy.entry("Long", true, when=buy)
strategy.close("Long", when=sell, comment="Exit")
if useSL
strategy.exit("Stop Loss", "Long", stop=longStop)