
এই কৌশলটি একটি কোয়ান্টাম ট্রেডিং কৌশল যা তিনটি সুপার ট্রেন্ডিং সূচক, Ichimoku ক্লাউড সূচক, গড় বাস্তব তরঙ্গদৈর্ঘ্য (ATR) সূচক এবং সূচকীয় চলমান গড় (EMA) এর সমন্বয়ে গঠিত। এই কৌশলটি তিনটি সুপার ট্রেন্ডের মাধ্যমে বাজার প্রবণতার দিকনির্দেশের বিচার করে, Ichimoku ক্লাউড সমর্থন চাপের বিচার করে, এটিআর সূচকটি স্টপ লস সেট করে, ইএমএ সূচকটি প্রবণতা নিশ্চিত করে, একটি সম্পূর্ণ ট্রেডিং সিস্টেম গঠন করে।
এই কৌশলটির মূল যুক্তিটি তিনটি সুপারট্রেন্ডিং সূচকের উপর ভিত্তি করে। সুপারট্রেন্ডিং সূচকগুলি একটি নির্দিষ্ট সময়ের মধ্যে দামের সাথে গড় প্রকৃত তরঙ্গের আকারের সাথে তুলনা করে প্রবণতার দিক নির্ধারণ করে। দামগুলি যখন ট্রেলের উপরে থাকে তখন এটি একটি উজ্জ্বল সংকেত দেয় এবং যখন দামগুলি নীচে থাকে তখন এটি একটি নেতিবাচক সংকেত দেয়। এই কৌশলটি তিনটি ভিন্ন প্যারামিটারযুক্ত সুপারট্রেন্ডিং সূচক ব্যবহার করে, যখন তিনটি সুপারট্রেন্ডিং সূচক একই সাথে উজ্জ্বল বা নেতিবাচক সংকেত দেয় তখন একটি ট্রেডিং সংকেত দেয়।
এছাড়া, Ichimoku Cloud Indicator দ্বারা প্রদত্ত মেঘের ঘনত্ব বর্তমান প্রবণতার শক্তি এবং দুর্বলতা নির্ণয় করে, যার ফলে কিছু মিথ্যা সংকেত মুছে ফেলা হয়। ATR সূচকটি স্টপ লস সেট করার জন্য ব্যবহৃত হয়। EMA সূচকটি মধ্য-লং লাইন প্রবণতা নিশ্চিত করার জন্য ব্যবহৃত হয়।
বিশেষত, যখন দাম তিনটি গ্রুপের ওভারট্রেন্ডিং সূচকের উপরে থাকে, তখন আরও বেশি করুন; যখন দাম তিনটি গ্রুপের ওভারট্রেন্ডিং সূচকের নীচে থাকে, তখন খালি করুন। একই সাথে, দামগুলি ইচিমোকু মেঘের উপরে বা নীচে থাকার জন্য অনুরোধ করুন, অনিশ্চিত সংকেতগুলি ফিল্টার করুন। স্টপ লস পয়েন্টটি পজিশন খোলার দামের জন্য এটিআর সূচকের মানকে বিয়োগ করে, গতিশীল ট্র্যাকিংয়ের জন্য।
ট্রিপল সুপারট্রেন্ডিং সূচক প্যারামিটারগুলি বিভিন্নভাবে সেট করা হয়েছে, যা বাজারের শব্দকে কার্যকরভাবে ফিল্টার করতে পারে এবং প্রবণতার দিকনির্দেশের উচ্চ নির্ভুলতা নির্ধারণ করতে পারে।
Ichimoku মেঘ সূচক প্রবণতাকে শক্তিশালী বা দুর্বল বলে বিবেচনা করে, মিথ্যা ব্রেকডাউন এড়াতে। এটিআর স্টপ লস সেটিংটি যুক্তিসঙ্গত, সর্বাধিক পরিমাণে বিশাল ক্ষতি এড়াতে।
ইএমএ সূচকগুলি মধ্য-লম্বা লাইনের প্রবণতা দিকনির্দেশনা নির্ধারণে সহায়তা করে এবং সুপার-ট্রেন্ডিংয়ের সাথে একে অপরকে যাচাই করে, সংকেতের নির্ভরযোগ্যতা আরও বাড়ায়।
বিভিন্ন সূচক একত্রিত করা হয়, বিভিন্ন সূচক একে অপরকে যাচাই করতে পারে, বাজার প্রবণতা সমন্বিতভাবে বিচার করতে পারে, সংকেত আরও নির্ভরযোগ্য।
যদিও ইচিমোকু মেঘ সূচকের বিচার যোগ করা হয়, তবে মেঘের ঘনত্বকে ভেঙে অকার্যকর অঞ্চলে প্রবেশের ঝুঁকিও রয়েছে। এই ক্ষেত্রে এটিআর সূচকটি ক্ষতির কিছু অংশকে একটি নির্দিষ্ট পরিসরে নিয়ন্ত্রণ করবে।
যখন বাজারটি তীব্রভাবে ওঠানামা করে, এটিআর সূচকের সেট করা স্টপ লস পয়েন্টগুলি সরাসরি ট্রিগার করা যেতে পারে, যার ফলে কৌশলটির ক্ষতির হার বাড়তে পারে। এই ক্ষেত্রে এটিআর প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা বা স্টপ লস রেঞ্জ বাড়ানো যেতে পারে।
যদি ট্রিপল ওভারট্রেন্ডিং সূচক প্যারামিটারটি ভুলভাবে সেট করা হয়, তবে অনেকগুলি অকার্যকর সংকেত তৈরি হতে পারে। এর জন্য প্রচুর পরিমাণে পুনরাবৃত্তির মাধ্যমে সর্বোত্তম সমন্বয় প্যারামিটারটি সন্ধান করতে হবে।
অন্যান্য সূচকগুলি আরও যুক্ত করা যেতে পারে, যেমন ওঠানামা হার সূচক, ব্রিন ব্যান্ড সূচক ইত্যাদি, ফিল্টারিং সংকেতকে সহায়তা করে, নির্ভরযোগ্যতা বাড়ায়।
এটিআর সূচকের গণনা পদ্ধতির উন্নতি করে বড় আকারের ওঠানামা চলাকালীন স্টপ লস রেঞ্জকে গতিশীলভাবে সামঞ্জস্য করতে পারে এবং ক্ষতির হার কমিয়ে আনতে পারে।
মেশিন লার্নিং মডেলের সাথে যুক্ত হয়ে ট্রেডিং সিগন্যালের হিসাব করা যায় ইতিহাসের তথ্যের উপর ভিত্তি করে, যার ফলে ট্রেডিং সিগন্যালের সঠিকতা বাড়ায়।
এই কৌশলটি তিনটি সুপারট্রেন্ড, Ichimoku ক্লাউড, এটিআর সূচক এবং ইএমএ সূচকের চারটি অংশের সমন্বিত ব্যবহার করে। বিভিন্ন সূচকের মাধ্যমে সংকেতগুলি একে অপরকে যাচাই করে বাজার প্রবণতার দিকনির্দেশের বিচার করে। Ichimoku ক্লাউড এবং এটিআর স্টপ লস কন্ট্রোলের ঝুঁকি, ইএমএ মধ্য-লং লাইন প্রবণতা নিশ্চিত করতে সহায়তা করে। এই কৌশলগত সংকেতটি আরও নির্ভরযোগ্য এবং মধ্য-লং লাইন ধারনার জন্য উপযুক্ত। স্টপ লস প্রক্রিয়াটি আরও অনুকূলিত করা যেতে পারে এবং অন্যান্য সহায়ক সূচকগুলি যুক্ত করা যেতে পারে, যার ফলে আরও ভাল কৌশলগত প্রভাব পাওয়া যায়।
/*backtest
start: 2022-12-20 00:00:00
end: 2023-12-26 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="HyperTrend", shorttitle="HyperTrend", overlay=true )
//
float percent_of_portfo = input.int(2, title = "percent of portfo per order", minval = 0, maxval = 100) / 100
// ichimoku Cloud
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length", group = "ichimoku")
basePeriods = input.int(26, minval=1, title="Base Line Length", group = "ichimoku")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length", group = "ichimoku")
displacement = input.int(26, minval=1, title="Lagging Span", group = "ichimoku")
donchian(len) => math.avg(ta.lowest(len), ta.highest(len))
conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)
p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
title="Leading Span A", display = display.none)
p2 = plot(leadLine2, offset = displacement - 1, color=#ef9a9a,
title="Leading Span B", display = display.none)
plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Upper Line", display = display.none)
plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset = displacement - 1, title = "Kumo Cloud Lower Line", display = display.none)
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 72, 59) : color.rgb(244, 67, 54, 70))
// three supertrend
//1
atrPeriod1 = input(10, "ATR Length1", group="SuperTrend")
factor1 = input.float(1.0, "Factor1", step = 0.01, group="SuperTrend")
[supertrend1, direction1] = ta.supertrend(factor1, atrPeriod1)
supertrend1 := barstate.isfirst ? na : supertrend1
bodyMiddle1 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend1 = plot(direction1 < 0 ? supertrend1 : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend1 = plot(direction1 < 0 ? na : supertrend1, "Down Trend", color = color.red, style = plot.style_linebr)
//2
atrPeriod2 = input(11, "ATR Length2", group="SuperTrend")
factor2 = input.float(2.0, "Factor2", step = 0.01, group="SuperTrend")
[supertrend2, direction2] = ta.supertrend(factor2, atrPeriod2)
supertrend2 := barstate.isfirst ? na : supertrend2
bodyMiddle2 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend2 = plot(direction2 < 0 ? supertrend2 : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend2 = plot(direction2 < 0 ? na : supertrend2, "Down Trend", color = color.red, style = plot.style_linebr)
//3
atrPeriod3 = input(12, "ATR Length2", group="SuperTrend")
factor3 = input.float(3.0, "Factor2", step = 0.01, group="SuperTrend")
[supertrend3, direction3] = ta.supertrend(factor3, atrPeriod3)
supertrend3 := barstate.isfirst ? na : supertrend3
bodyMiddle3 = plot(barstate.isfirst ? na : (open + close) / 2, display = display.none)
upTrend3 = plot(direction3 < 0 ? supertrend3 : na, "Up Trend", color = color.green, style = plot.style_linebr)
downTrend3 = plot(direction3 < 0 ? na : supertrend3, "Down Trend", color = color.red, style = plot.style_linebr)
// ATR
lengthATR = input.int(title="Length (ATR)", defval=14, minval=1, group="ATR")
smoothingATR = input.string(title="Smoothing (ATR)", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"], group="ATR")
ma_function(sourceATR, lengthATR) =>
switch smoothingATR
"RMA" => ta.rma(sourceATR, lengthATR)
"SMA" => ta.sma(sourceATR, lengthATR)
"EMA" => ta.ema(sourceATR, lengthATR)
=> ta.wma(sourceATR, lengthATR)
ATR = ma_function(ta.tr(true), lengthATR)
plot(ATR, title = "ATR", color=color.new(#B71C1C, 0), display = display.none)
// EMA
lenEMA = input.int(200, minval=1, title="Length of EMA", group="EMA")
srcEMA = input(close, title="Source of EMA", group="EMA")
offset = input.int(title="Offset (EMA)", defval=0, minval=-500, maxval=500, group="EMA")
outEMA = ta.ema(srcEMA, lenEMA)
plot(outEMA, title="EMA", color=color.blue, offset=offset, display = display.none)
ma(sourceEMA, lengthEMA, type) =>
switch type
"SMA" => ta.sma(sourceEMA, lengthEMA)
"EMA" => ta.ema(sourceEMA, lengthEMA)
"SMMA (RMA)" => ta.rma(sourceEMA, lengthEMA)
"WMA" => ta.wma(sourceEMA, lengthEMA)
"VWMA" => ta.vwma(sourceEMA, lengthEMA)
typeMA = input.string(title = "Method (EMA)", defval = "SMA", options=["SMA", "EMA", "SMMA (RMA)", "WMA", "VWMA"], group="EMA")
smoothingLengthEMA = input.int(title = "Smoothing Length (EMA)", defval = 5, minval = 1, maxval = 100, group="EMA")
smoothingLine = ma(outEMA, smoothingLengthEMA, typeMA)
plot(smoothingLine, title="Smoothing Line", color=#f37f20, offset=offset, display=display.none)
//logic
if (open + ATR > supertrend1) and (open + ATR > supertrend2) and (open + ATR > supertrend3)
strategy.entry("L", strategy.long)
else if (open < supertrend1 + ATR) and (open < supertrend2 + ATR) and (open < supertrend3 + ATR)
strategy.entry("S", strategy.short)
else
strategy.close_all("C")