এই কৌশলটি সমুদ্রের আকাশ এবং প্রথম সমান্তরাল সূচক ব্যবহার করে প্রবণতা দিক নির্ধারণ এবং প্রবণতা ট্র্যাকিংয়ের সাথে যুক্ত। সমুদ্রের সমান্তরাল সমতল কে-লাইন ডেটা শব্দ হ্রাস করে। প্রথম সমান্তরাল সূচক রূপান্তর লাইন, বেসলাইন ইত্যাদির মতো একাধিক সংকেতের সমন্বয়ে প্রবণতা শক্তিশালী। দ্বৈত সূচক কৌশল স্থিতিশীলতা বাড়ায়।
সমুদ্রের সমাপ্তির মূল্য গণনা করুন এবং রূপান্তর লাইন, বেসলাইন ইত্যাদির প্রথম সমান্তরাল সূচকের সূচকগুলি আঁকুন। যখন সমাপ্তির মূল্য পূর্বের দু’দিনের চেয়ে বেশি এবং মেঘের মানচিত্রের উপরের এবং বিলম্বের লাইনের উপরে থাকে তখন বেশি করুন। যখন সমাপ্তির মূল্য পূর্বের দু’দিনের চেয়ে কম এবং মেঘের মানচিত্রের নীচের এবং বিলম্বের লাইনের নীচে থাকে তখন খালি করুন। প্রথম সমান্তরালের রূপান্তর লাইন এবং বেসলাইন ক্রসও সহায়ক সংকেত হিসাবে কাজ করে।
ঝুঁকি নিয়ন্ত্রণের জন্য সমতলীকরণ প্যারামিটারগুলি যথাযথভাবে সামঞ্জস্য করা যেতে পারে, হোল্ডিং চক্রটি সংক্ষিপ্ত করা যায়, প্রাথমিক সমতা সূচকের প্যারামিটারগুলি অপ্টিমাইজ করা যায় ইত্যাদি
এই কৌশলটি প্রবণতার দিকনির্দেশের জন্য একাধিক সূচককে সংহত করে এবং এটি নিয়ন্ত্রণের ক্ষমতাকে আরও শক্তিশালী করে তোলে।
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("Heiken Ashi + Ichimoku Kinko Hyo Strategy", shorttitle="HaI", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=1000, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
hahigh = security(heikinashi(syminfo.tickerid), timeframe.period, high)
halow = security(heikinashi(syminfo.tickerid), timeframe.period, low)
TenkanSenPeriods = input(9, minval=1, title="Tenkan Sen Periods")
KijunSenPeriods = input(24, minval=1, title="Kijun Sen Periods")
SenkouSpanBPeriods = input(51, minval=1, title="Senkou Span B Periods")
displacement = input(24, minval=1, title="Displacement")
donchian(len) => avg(lowest(len), highest(len))
TenkanSen = donchian(TenkanSenPeriods)
KijunSen = donchian(KijunSenPeriods)
SenkouSpanA = avg(TenkanSen, KijunSen)
SenkouSpanB = donchian(SenkouSpanBPeriods)
SenkouSpanH = max(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
SenkouSpanL = min(SenkouSpanA[displacement - 1], SenkouSpanB[displacement - 1])
ChikouSpan = close[displacement-1]
plot(TenkanSen, color=blue, title="Tenkan Sen", linewidth = 2)
plot(KijunSen, color=maroon, title="Kijun Sen", linewidth = 3)
plot(close, offset = -displacement, color=orange, title="Chikou Span", linewidth = 2)
sa=plot (SenkouSpanA, offset = displacement, color=green, title="Senkou Span A", linewidth = 2)
sb=plot (SenkouSpanB, offset = displacement, color=red, title="Senkou Span B", linewidth = 3)
fill(sa, sb, color = SenkouSpanA > SenkouSpanB ? green : red)
longCondition = hahigh > max(hahigh[1],hahigh[2]) and close>ChikouSpan and close>SenkouSpanH and (TenkanSen>=KijunSen or close>KijunSen)
if (longCondition)
strategy.entry("Long",strategy.long)
shortCondition = halow < min(halow[1],halow[2]) and close<ChikouSpan and close<SenkouSpanL and (TenkanSen<=KijunSen or close<KijunSen)
if (shortCondition)
strategy.entry("Short",strategy.short)
closelong = halow < min(halow[1],halow[2]) and (TenkanSen<KijunSen or close<TenkanSen or close<KijunSen or close<SenkouSpanH or close<ChikouSpan)
if (closelong)
strategy.close("Long")
closeshort = hahigh > max(hahigh[1],hahigh[2]) and (TenkanSen>KijunSen or close>TenkanSen or close>KijunSen or close>SenkouSpanL or close>ChikouSpan)
if (closeshort)
strategy.close("Short")