
এই কৌশলটি বিভিন্ন প্রযুক্তিগত সূচকগুলিকে একত্রিত করে দীর্ঘ এবং স্বল্পমেয়াদী দ্বিপাক্ষিক ট্রেডিং সিদ্ধান্ত গ্রহণের জন্য ব্যবহার করে। প্রধানত ব্রিন লাইন, আরএসআই, এডিএক্স ইত্যাদির মতো সূচকগুলি অন্তর্ভুক্ত করে এবং প্রবণতার দিকনির্দেশের সাথে মিলিত হয়।
এই কৌশলটি মূলত দামের অস্থিরতার পরিস্থিতি নির্ধারণের জন্য বুলিং লাইন ব্যবহার করে, যেখানে বুলিং লাইন সংকীর্ণ হওয়া দামের ওঠানামা হ্রাসের প্রতিনিধিত্ব করে, সম্ভবত একটি ব্রেকআউট হতে পারে; এবং RSI এর সাথে মিলিত হয়ে ওভার-বয় ওভার-সেলিংয়ের বিচার করার জন্য, RSI 70 এর উপরে ওভার-বয় অঞ্চল এবং 30 এর নীচে ওভার-সেলিং অঞ্চল। যখন বুলিং লাইন সংকীর্ণ হয়, আরএসআই সূচকটি ওভার-বয় ওভার-সেলিং অঞ্চলের কাছাকাছি থাকে, তখন বিপরীত ট্রেড করা হয়।
এছাড়াও, এই কৌশলটি দামের প্রবণতার শক্তি নির্ধারণের জন্য ADX ব্যবহার করে। যখন ADX উচ্চ হয়, প্রবণতা শক্তিশালী হয়, তখন ট্রেডিংয়ের বিকল্পটি বেছে নেওয়া যেতে পারে; যখন ADX নিম্ন হয়, তখন কোনও স্পষ্ট প্রবণতা নেই, তখন বিপরীত ট্রেডিংয়ের বিষয়টি বিবেচনা করা যেতে পারে। অবশেষে, দীর্ঘমেয়াদী প্রবণতার দিকনির্দেশের জন্য সমান্তরাল লাইনটি বিবেচনা করুন, যদি দামগুলি উত্থান প্রবণতা হয় তবে কেনা বিবেচনা করা যেতে পারে; যদি দামগুলি নেমে যাওয়ার প্রবণতা থাকে তবে বিক্রয় বিবেচনা করা যেতে পারে।
বিশেষত, যখন বুলিনের বেন্ডটি সংকীর্ণ হয়, আরএসআই সূচকটি ওভার-বিক্রয় ওভার-বিক্রয় অঞ্চলের কাছাকাছি থাকে এবং দামটি ট্র্যাক থেকে নেমে যায়, তখন মনে হয় যে মুদ্রাটি পুনরুদ্ধার হতে পারে, এই সময়ে আরও বিবেচনা করুন; যখন বুলিনের বেন্ডটি সংকীর্ণ হয়, আরএসআই সূচকটি ওভার-বিক্রয় অঞ্চলের কাছাকাছি থাকে এবং দামটি ট্র্যাক থেকে বেরিয়ে আসে, তখন মুদ্রাটি নেমে যেতে পারে বলে মনে হয়, এই সময়ে শূন্য বিবেচনা করুন। এছাড়াও, যদি এডিএক্স উচ্চ হয়, দামটি উত্থানের প্রবণতায় থাকে, তবে আরও পজিশন করা যেতে পারে; যদি এডিএক্স কম হয়, দামটি নেমে যাওয়ার প্রবণতায় থাকে, তবে পজিশন খালি করা যেতে পারে। একাধিক সূচক ব্যবহার করে, ট্রেডিং সিস্টেমের স্থিতিশীলতা বাড়ানো যেতে পারে।
মাল্টি-মিটার প্যাকেজিং কৌশলটির নিম্নলিখিত সুবিধাগুলি রয়েছেঃ
একাধিক প্রযুক্তিগত সূচককে একত্রিত করে ট্রেডিং সিগন্যালের নির্ভুলতা এবং স্থায়িত্ব বাড়ানো হয়েছে। একটি একক সূচক জাল ভাঙ্গার মতো বিভ্রান্তিকর হতে পারে, একাধিক সূচক সমন্বয় সংকেত যাচাই করতে পারে এবং ভুল লেনদেন এড়াতে পারে।
প্রবণতা এবং অস্থিরতা উভয়ই বিবেচনা করে, বিভিন্ন বাজারের অবস্থার সাথে খাপ খাইয়ে নিতে সক্ষম, নমনীয়তা স্তর পরিবর্তন করে। প্রবণতা ট্রেডিং বড় প্রবণতা অনুসরণ করে, অস্থিরতা ট্রেডিং লক্ষ্যমাত্রা অল্প লাভ।
একই সময়ে, অতিরিক্ত কোকিং করা একতরফা বাজারে পজিশনের ঝুঁকি হ্রাস করতে পারে এবং চরম পরিস্থিতি প্রতিরোধ করতে পারে।
কিছু মুনাফা এবং সীমাবদ্ধ ক্ষতি যখন অবস্থানগুলি ভুল হয়।
প্যারামিটার অপ্টিমাইজেশনের মাধ্যমে, আপনি ক্রমাগত কৌশলগত কার্যকারিতা উন্নত করতে পারেন এবং বাজারের পরিবর্তনের সাথে মানিয়ে নিতে পারেন।
এই কৌশলটির কিছু ঝুঁকি রয়েছে যা সম্পর্কে সতর্ক থাকা দরকারঃ
একাধিক সূচক সমন্বয় কৌশলগত জটিলতা বৃদ্ধি করে, এবং প্যারামিটার সেটিং অনুপযুক্তভাবে কার্যকারিতা হ্রাস করতে পারে।
প্রযুক্তিগত সূচকগুলির উপর অত্যধিক নির্ভর করে মৌলিক তথ্য উপেক্ষা করা ট্রেডিং সিগন্যালকে ভুল হতে পারে। সূচকগুলি মিথ্যা সংকেত প্রেরণ করলে সতর্কতা অবলম্বন করা দরকার।
সূচকটি যখন সংকেত দেয়, তখন বাজারে কিছু পরিবর্তন ঘটে থাকতে পারে এবং উচ্চতা বা পতনের ঝুঁকি রয়েছে। যথাযথভাবে পুনঃনির্ধারণের জন্য অপেক্ষা করা প্রয়োজন।
মাল্টিপ্লেয়ার ডাবল ওপেন ট্রেডিং ফ্রিকোয়েন্সি বৃদ্ধি করে, ফী খরচ এবং তহবিলের চাপ বাড়ায়। পজিশনের আকার নিয়ন্ত্রণ করা প্রয়োজন।
কার্ভ ফিট হওয়ার ঝুঁকি রয়েছে, তাই বিভিন্ন বাজারে কৌশলটি পরীক্ষা করা ভাল।
কঠোর স্টপ লস, সতর্কতার সাথে পজিশনিং এবং যুক্তিসঙ্গতভাবে পজিশনের অবস্থান নিয়ন্ত্রণের মতো পদ্ধতির মাধ্যমে ঝুঁকি নিয়ন্ত্রণ করা যেতে পারে। সামগ্রিকভাবে, এই কৌশলটি শক্তিশালী ব্যবহারিকতা রয়েছে।
এই কৌশলটি নিম্নলিখিত দিকগুলি থেকে অপ্টিমাইজ করা যেতে পারেঃ
বিভিন্ন প্যারামিটার সমন্বয় পরীক্ষা করে, সর্বোত্তম প্যারামিটার খুঁজুন। প্যারামিটার অপ্টিমাইজেশনের জন্য ধাপে ধাপে পদ্ধতি, র্যান্ডম অনুসন্ধান, জেনেটিক অ্যালগরিদম ইত্যাদি ব্যবহার করা যেতে পারে।
KDJ, উইলিয়াম ইন্ডিকেটর ইত্যাদির মতো আরও সূচক যুক্ত করুন, সূচক গোষ্ঠী তৈরি করুন এবং কৌশল স্থিতিশীলতা উন্নত করুন।
পজিশন ম্যানেজমেন্ট অপ্টিমাইজ করুন, গতিশীল পজিশন সামঞ্জস্যের মাধ্যমে ঝুঁকি নিয়ন্ত্রণ করুন।
মেশিন লার্নিং অ্যালগরিদমের সাথে মিলিত, এটি মূল্য প্রবণতা এবং ভবিষ্যতের গতিবিধি নির্ধারণের জন্য একটি পরিমাণগত মডেল ব্যবহার করে।
বিভিন্ন জাত, সময়সীমা এবং বাজারে কৌশলগুলি পরীক্ষা করে তা উন্নত করা।
প্রবণতাগুলিকে প্রাথমিক পর্যায়ে এবং বিপরীত হওয়ার আগে প্রস্থান করার জন্য প্রবেশের সময় এবং প্রস্থান সময়কে অনুকূলিত করুন।
স্টপ ট্র্যাকিং, মোভিং স্টপ ইত্যাদি পদ্ধতি ব্যবহার করে মুনাফা লক করা এবং ঝুঁকি নিয়ন্ত্রণ করা।
৮. প্রযুক্তিগত সূচক থেকে প্রাপ্ত সংকেত ফিল্টার করার জন্য মৌলিক কারণ, বাজার কাঠামোর বিচার যোগ করা।
এই কৌশলটি বিভিন্ন সূচক ব্যবহার করে মূল্যের প্রবণতা নির্ধারণ করে এবং স্বয়ংক্রিয়ভাবে লেনদেন করতে সক্ষম হয়। কৌশলটির সুবিধাগুলি যেমন সূচক গ্রুপ যাচাইকরণ, দ্বি-মুখী লেনদেন এবং ক্ষতি বন্ধের ব্যবস্থা রয়েছে যা লেনদেনের দক্ষতা বাড়িয়ে তুলতে পারে। তবে অপ্টিমাইজেশন, মিথ্যা সংকেত ইত্যাদির বিষয়েও সতর্কতা অবলম্বন করা উচিত। ক্রমাগত অপ্টিমাইজেশন পরীক্ষার মাধ্যমে, কৌশলটি একটি স্থিতিশীল, ব্যবহারিক পরিমাণযুক্ত লেনদেনের সিস্টেম হতে পারে। এটি পরিমাণগত লেনদেনের কৌশল ডিজাইনের বিকাশের দিকের প্রতিনিধিত্ব করে।
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 2h
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/
// © The_Bigger_Bull
//@version=5
strategy("Best TradingView Strategy", overlay=true, margin_long=0, margin_short=0)
//Bollinger Bands
source1 = close
length1 = input.int(15, minval=1)
mult1 = input.float(2.0, minval=0.001, maxval=50)
basis1 = ta.sma(source1, length1)
dev1 = mult1 * ta.stdev(source1, length1)
upper1 = basis1 + dev1
lower1 = basis1 - dev1
//buyEntry = ta.crossover(source1, lower1)
//sellEntry = ta.crossunder(source1, upper1)
//RSI
ma(source, length, type) =>
switch type
"SMA" => ta.sma(source, length)
"Bollinger Bands" => ta.sma(source, length)
"EMA" => ta.ema(source, length)
"SMMA (RMA)" => ta.rma(source, length)
"WMA" => ta.wma(source, length)
"VWMA" => ta.vwma(source, length)
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group="RSI Settings")
rsiSourceInput = input.source(close, "Source", group="RSI Settings")
maTypeInput = input.string("SMA", title="MA Type", options=["SMA", "Bollinger Bands", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="MA Settings")
maLengthInput = input.int(14, title="MA Length", group="MA Settings")
bbMultInput = input.float(2.0, minval=0.001, maxval=50, title="BB StdDev", group="MA Settings")
up = ta.rma(math.max(ta.change(rsiSourceInput), 0), rsiLengthInput)
down = ta.rma(-math.min(ta.change(rsiSourceInput), 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
rsiMA = ma(rsi, maLengthInput, maTypeInput)
isBB = maTypeInput == "Bollinger Bands"
//plot(rsi, "RSI", color=#7E57C2)
//plot(rsiMA, "RSI-based MA", color=color.yellow)
rsiUpperBand = hline(70, "RSI Upper Band", color=#787B86)
hline(50, "RSI Middle Band", color=color.new(#787B86, 50))
rsiLowerBand = hline(30, "RSI Lower Band", color=#787B86)
fill(rsiUpperBand, rsiLowerBand, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")
bbUpperBand = plot(isBB ? rsiMA + ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Upper Bollinger Band", color=color.green)
bbLowerBand = plot(isBB ? rsiMA - ta.stdev(rsi, maLengthInput) * bbMultInput : na, title = "Lower Bollinger Band", color=color.green)
fill(bbUpperBand, bbLowerBand, color= isBB ? color.new(color.green, 90) : na, title="Bollinger Bands Background Fill")
//ADX
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Length")
dirmov(len) =>
up1 = ta.change(high)
down1 = -ta.change(low)
plusDM = na(up1) ? na : (up1 > down1 and up1 > 0 ? up1 : 0)
minusDM = na(down1) ? na : (down1 > up1 and down1 > 0 ? down1 : 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)
out = ta.sma(close, 14)
sma1=ta.sma(close,55)
ema200=ta.ema(close,200)
longCondition = (out>sma1) and ta.crossover(source1, lower1)
if (longCondition )
strategy.entry("long", strategy.long)
shortCondition = (out<sma1) and ta.crossunder(source1, lower1)
if (shortCondition )
strategy.entry("short", strategy.short)
stopl=strategy.position_avg_price-50
tptgt=strategy.position_avg_price+100
stopshort=strategy.position_avg_price+50
tptgtshort=strategy.position_avg_price-100
strategy.exit("longclose","long",trail_offset=5,trail_points=45,when=ta.crossover(sma1,out))
strategy.exit("shortclose","short",trail_offset=5,trail_points=45,when=ta.crossover(out,sma1))
//if strategy.position_avg_price<0
plot(sma1 , color=color.blue)
plot(out, color=color.green)
//plot(ema200,color=color.red)