
এই কৌশলটি ইকুইলেন্স স্কেল ক্লাউড ইন্ডিকেটর দ্বারা প্রদত্ত বিভিন্ন সংকেত ব্যবহার করে একটি বিশুদ্ধ প্রবণতা ট্র্যাকিং কৌশল ডিজাইন করেছে, যা মধ্যম ও দীর্ঘমেয়াদী প্রবণতা ক্যাপচার, ঝড়ের সমন্বয় ফিল্টার এবং শক্তিশালী প্রবণতার দিকনির্দেশনা ট্র্যাক করার উদ্দেশ্যে।
এই কৌশলটি সুষম স্কেল ক্লাউড গ্রাফ সূচকগুলিতে রূপান্তর লাইন, বেঞ্চলাইন এবং বিলম্বের লাইন ব্যবহার করে। দীর্ঘমেয়াদী প্রবণতা সিদ্ধান্তের ক্ষেত্রে, প্রবণতা নির্ধারণের জন্য অগ্রগামী মেঘ এবং পশ্চাদগামী মেঘের উত্থান-পতনের সম্পর্কের উপর দৃষ্টি নিবদ্ধ করা হয়। নির্দিষ্ট প্রবেশ এবং প্রস্থান সময় নির্বাচনের ক্ষেত্রে, রূপান্তর লাইন এবং বেঞ্চলাইনের ক্রস এবং দামের সাথে ক্লাউড গ্রাফের সম্পর্কের পরিবর্তন প্রধান ভিত্তি।
সামগ্রিকভাবে, এই কৌশলটির কেন্দ্রীয় যুক্তি হলঃ মধ্যম ও দীর্ঘমেয়াদী প্রবণতার দিকনির্দেশ নিশ্চিত করা-> শক্তিশালী প্রবণতা পুনরায় চালু হওয়ার সুযোগের জন্য অপেক্ষা করা-> প্রবণতা অনুসরণ করা-> স্টপ লস প্রস্থান অনুসরণ করা।
বিশেষত, মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা নির্ধারণ করার সময়, পূর্ববর্তী মেঘ এবং পিছনের মেঘের পরিবর্তনের সম্পর্কের মাধ্যমে নির্ধারণ করা হয় (যদি পূর্ববর্তী মেঘটি উপরে থাকে এবং সবুজ হয় তবে এটি উত্থান প্রবণতা প্রতিনিধিত্ব করে, বিপরীতে এটি পতনের প্রবণতা প্রতিনিধিত্ব করে) । যখন মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা নিশ্চিত হয়, তখন রূপান্তর লাইন এবং বেসলাইনগুলির ক্রস এবং দামের মেঘের চার্টটি ভেঙে যাওয়ার সংকেত দিয়ে প্রবণতা বিচার পুনরায় চালু করা হয়, প্রবেশের সংকেত জারি করা হয়; প্রবেশের পরে বেসলাইনটি স্টপ লস প্রস্থান ট্র্যাক করার জন্য স্টপ লস লাইন হিসাবে ব্যবহৃত হয়।
এইভাবে, মধ্য ও স্বল্পমেয়াদী অস্থিরতা ফিল্টার করা এবং শক্তিশালী প্রবণতার সুযোগকে কাজে লাগানো এবং দীর্ঘমেয়াদী স্থিতিশীল সুপার রিটার্নের জন্য সিকিউরিটিজ মার্কেটে প্রবেশ করা যায়।
(i) মধ্য ও দীর্ঘমেয়াদী প্রবণতা নির্ধারণের জন্য ভারসাম্য স্কেল ক্লাউড গ্রাফ ব্যবহার করুন, যা মূল দিকনির্দেশের পক্ষে সহায়ক
(২) রূপান্তর লাইন এবং বেঞ্চমার্ক লাইন ক্রস এবং দাম এবং মেঘের সাথে সম্পর্কিত পরিবর্তনগুলি প্রবেশের সময় নির্ধারণ করে, শক্তিশালী প্রবণতা ক্যাপচার করার জন্য কার্যকরভাবে ঝাঁকুনিগুলি ফিল্টার করতে পারে
(৩) ট্র্যাকিং স্টপ-লস-এক্সিট মেকানিজম, যা একটি বড় প্রবণতা থেকে লাভ অর্জন করতে পারে এবং কার্যকরভাবে পৃথক ক্ষতি নিয়ন্ত্রণ করতে পারে
(৪) সুষম স্কেল মেঘের একাধিক সংকেতকে একত্রিত করে, একটি পদ্ধতিগত প্রবণতা ট্র্যাকিং কৌশল গঠন করে, স্থিতিশীলভাবে ভাল পারফরম্যান্স করে
(১) মাঝারি এবং দীর্ঘমেয়াদী ত্রুটিপূর্ণ বিচার পদ্ধতিগত ঝুঁকি। মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা যদি ভুল বিচার করা হয় তবে পরবর্তী ক্রিয়াকলাপগুলি ভুল দিকের ঝুঁকির মুখোমুখি হবে।
(২) প্রবেশাধিকার সময় ভুল বাছাইয়ের ঝুঁকি। প্রবেশাধিকার সময় ভুল বাছাই করা হলে, এটি সহজেই ধরা পড়ে।
(৩) ট্র্যাকিং স্টপ লস খুব কাছাকাছি নিয়ে আসা ঝুঁকি। যদি স্টপ লস খুব কাছাকাছি থাকে তবে চরম পরিস্থিতিতে স্টপ লস ভেঙে ক্ষতি হতে পারে।
(৪) লেনদেনের ঘনত্বের কারণে লেনদেনের ব্যয় বোঝা। লেনদেনের ব্যয় বাড়তে পারে যদি প্যারামিটার সেটিংয়ের কারণে লেনদেনের ঘনত্ব বেশি হয়।
(i) বিভিন্ন সমান্তরাল স্কেল পিরিয়ড প্যারামিটারগুলির সমন্বয় পরীক্ষা করে সর্বোত্তম প্যারামিটারটি সন্ধান করুন
(২) প্রবেশের শর্তগুলিকে অনুকূলিতকরণ, কার্যকর প্রবেশ নিশ্চিত করার জন্য কঠোরতর ফিল্টার ডিজাইন করা
(৩) ঝুঁকি ও লাভের মধ্যে সর্বোত্তম ভারসাম্য খুঁজে বের করার জন্য স্টপ লস দূরত্বের সমন্বয়
(৪) মূল্যের লক্ষ্যমাত্রার সাথে মূল্যের দূরত্বকে সংযুক্ত করে লাভজনক মূল্য সংযোজন, যা গতিশীল লাভের প্রক্রিয়া গঠন করে
এই সমীকরণ স্কেল ক্লাউড ট্রেন্ড ট্র্যাকিং কৌশল, সমন্বিত সমীকরণ স্কেল ক্লাউড ম্যাপ একাধিক সংকেত ট্রেন্ড দিকনির্দেশ, প্রবেশের সময়, ক্ষতির অবসান নির্ধারণ করে। অনুশীলন দেখায় যে এই কৌশলটি কার্যকরভাবে মাঝারি এবং দীর্ঘমেয়াদী প্রবণতা, ফিল্টার ঝাঁকুনি, স্থিতিশীল ওভাররেট অর্জন করতে পারে। ভবিষ্যতে ক্রমাগত অপ্টিমাইজেশন পরীক্ষার মাধ্যমে কৌশলটির কার্যকারিতা আরও উন্নত করার এবং আরও ভাল রিটার্ন পাওয়ার আশা করা যায়।
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Ichimoku trendfollowing", overlay=true, initial_capital=1000, commission_type=strategy.commission.cash_per_order, commission_value=0.04, slippage=2)
//***************************
// INPUT BACKTEST RANGE *
//***************************
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2010, title = "From Year", minval = 2000)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2000)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true
//***************
//* ICHIMOKU *
//***************
//inizializzazione parametri,,
tenkanPeriods = input(9, minval=1, title="Tenkan-Sen")
kinjunPeriods = input(26, minval=1, title="Kinjun-Sen")
senkouSpanBPeriods = input(52, minval=1, title="Senkou Span B")
displacement = input(26, minval=1, title="-ChinkouSpan/+SenkouSpan A")
//definizione Tenkan-Sen (9 Period), Kinjun-Sen (26 Period), Chinkou Span (Lagging Line)
averageHighLow(period) => avg(lowest(period), highest(period))
tenkan= averageHighLow(tenkanPeriods)
kinjun = averageHighLow(kinjunPeriods)
senkouSpanA = avg(tenkan, kinjun)
senkouSpanB = averageHighLow(senkouSpanBPeriods)
//definisco il colore della kumo in base al trend.
senkouSpan1Above = senkouSpanA >= senkouSpanB ? 1 : na
senkouSpan2Below = senkouSpanA <= senkouSpanB ? 1 : na
span1plotU = senkouSpan1Above ? senkouSpanA : na
span2plotU = senkouSpan1Above ? senkouSpanB : na
span1plotD = senkouSpan2Below ? senkouSpanA : na
span2plotD = senkouSpan2Below ? senkouSpanB : na
col = senkouSpanA >= senkouSpanB ? lime : red
//plots Ichimoku
plot(tenkan, title = 'Tenkan-Sen', linewidth=1, color=blue)
plot(kinjun, title = 'Kinjun-Sen', linewidth=1, color=red)
plot(close, title = 'Chinkou Span', linewidth=1, offset = -displacement, color=aqua)
plot( senkouSpanA, title = 'Senkou Span A', style=line, linewidth=1, offset = displacement, color=lime)
plot(senkouSpanB, title = 'Senkou Span B', style=line, linewidth=1, offset = displacement, color=red)
//Cloud Lines Plot
p1 = plot(span1plotU ? span1plotU : na, title = 'Senkou Span A Above Senkou Span B', style=linebr, linewidth=1, offset = displacement, color=col)
p2 = plot(span2plotU ? span2plotU : na, title = 'Senkou Span B (52 Period) Below Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p3 = plot(span1plotD ? span1plotD : na, title = 'Senkou Span A (26 Period) Below Span B Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
p4 = plot(span2plotD ? span2plotD : na, title = 'Senkou Span B (52 Period) Above Span A Cloud', style=linebr, linewidth=1, offset = displacement, color=col)
//Fills that color cloud based on Trend.
fill(p1, p2, color=lime, transp=70, title='Kumo (Cloud)')
fill(p3, p4, color=red, transp=70, title='Kumo (Cloud)')
//***********************************************
//* condizioni ingresso ed uscita mercato *
//***********************************************
isKumoRialzista = senkouSpanA >= senkouSpanB ? true : false
isSopraKumo = (close > max(senkouSpanA[displacement], senkouSpanB[displacement]))
isSottoKumo = (close < min(senkouSpanA[displacement], senkouSpanB[displacement]))
isChinkouSpanSopra = high[displacement]<close
isChinkouSpanSotto = low[displacement]>close
filtroLong=isSopraKumo and isChinkouSpanSopra
filtroShort=isSottoKumo and isChinkouSpanSotto
//rimbalzato su kijun quando i prezzi stavano ritracciando e il trend era già in atto(tenkan >kijun x entrare long
isPullBackLijunEntryLong = kinjun<tenkan and low<kinjun and (close>kinjun)
isPullBackLijunEntryShort =kinjun>tenkan and high>kinjun and (close<kinjun)
//Breackout Kumo
isBreackoutKumoEntryLong = crossover(close, max(senkouSpanA[displacement], senkouSpanB[displacement])) and (close>tenkan) and (close>kinjun)
isBreackoutKumoEntryShort = crossunder(close, min(senkouSpanA[displacement], senkouSpanB[displacement])) and (close<tenkan) and (close<kinjun)
ConditionEntryLong = (isPullBackLijunEntryLong or isBreackoutKumoEntryLong ) and filtroLong
ConditionEntryShort = (isPullBackLijunEntryShort or isBreackoutKumoEntryLong ) and filtroShort
isExitLong = close<kinjun
isExitShort = close>kinjun
//ingressi ed uscite Mercato
strategy.entry ("Long",long=true, when = window() and ConditionEntryLong)
strategy.entry ("Short",long=false, when = window() and ConditionEntryShort)
strategy.close(id="Long", when=isExitLong)
strategy.close(id="Short", when=isExitShort)
strategy.close_all(when=not window())