এটি একটি দ্বি-চলমান গড়ের উপর ভিত্তি করে একটি ট্রেডিং কৌশল। এটি দ্রুত চলমান গড় এবং ধীর চলমান গড়ের ক্রস-সম্পর্ক অনুসারে বাজারের প্রবণতা বিচার করে এবং একটি ট্রেডিং সংকেত উত্পন্ন করে। যখন দ্রুত গড়টি ধীর গড়টি অতিক্রম করে তখন একটি কেনার সংকেত উত্পন্ন হয়; যখন দ্রুত গড়টি ধীর গড়ের নীচে অতিক্রম করে তখন একটি বিক্রয় সংকেত উত্পন্ন হয়।
এই কৌশলটি মূলত চলমান গড়ের ট্রেন্ড ট্র্যাকিং ফাংশন ব্যবহার করে। চলমান গড় হল একটি নির্দিষ্ট সময়ের মধ্যে historicalতিহাসিক সমাপ্তির দামের উপর ভিত্তি করে গণনা করা গড় মূল্য, যা দিনের মধ্যে সামান্য ওঠানামা করতে পারে, বৃহত্তর সময়ের সময়ের মধ্যে মূল্যের প্রবণতা প্রতিফলিত করে। দ্রুত গড়টি স্বল্প সময়ের জন্য ব্যবহৃত হয়, দামের পরিবর্তনের প্রতি আরও দ্রুত প্রতিক্রিয়া জানায়; ধীর গড়টি দীর্ঘ সময়ের জন্য ব্যবহৃত হয়, যা দীর্ঘমেয়াদী প্রবণতাকে উপস্থাপন করে। দ্রুত গড়ের উপর ধীর গড়ের মধ্য দিয়ে অতিক্রম করা একটি স্বল্পমেয়াদী ট্রেন্ডকে অতিক্রম করে, যা দেখায় যে দামটি একটি উচ্চতর প্রবণতা শুরু করেছে। বিপরীতে, দ্রুত গড়ের নীচে ধীর গড়ের মধ্য দিয়ে অতিক্রম করা একটি দীর্ঘমেয়াদী প্রবণতাকে আঘাত করে এবং দামটি হ্রাস পেতে পারে।
এই কৌশলটি বিভিন্ন পিরিয়ডের দৈর্ঘ্যের চলমান গড় লাইন সেট করে, গড় লাইনগুলির মধ্যে ক্রস ব্যবহার করে একটি লেনদেনের সংকেত তৈরি করে। যখন স্বল্প-পিরিয়ড গড় লাইনটি দীর্ঘ-পিরিয়ড গড় লাইনটি অতিক্রম করে, তখন এটি স্বল্পমেয়াদী ট্রেডিংকে নির্দেশ করে এবং একটি কেনার সংকেত দেয়। যখন স্বল্প-পিরিয়ড গড় লাইনটি দীর্ঘ-পিরিয়ড গড় লাইনটি অতিক্রম করে, তখন এটি স্বল্পমেয়াদী ট্রেডিংকে দুর্বল করে এবং একটি বিক্রয় সংকেত দেয়। কৌশল কোডটি প্লট ফাংশন দ্বারা গড় লাইনটি আঁকেন, ট্রেন্ড ভেরিয়েবলগুলি গড় লাইনটির ক্রস সম্পর্ক নির্ধারণ করে এবং ক্রস হওয়ার সময় কেনা এবং বিক্রয় সংকেতগুলি আউটপুট করে।
ডাবল ইয়ারলাইন ক্রস কৌশলটি মুভিং ইয়ারলাইনের ট্রেন্ড ট্র্যাকিং বৈশিষ্ট্যটি ব্যবহার করে, দ্রুত এবং ধীরে ধীরে ইয়ারলাইনের ক্রস দ্বারা ট্রেডের দিকনির্দেশনা এবং ট্রেডিং সংকেত তৈরি করে। এই কৌশলটি সহজেই কাজ করে, তবে কিছু সমস্যা রয়েছে। প্যারামিটারগুলি সামঞ্জস্য করে, অন্যান্য সূচকগুলির সাথে মিলিত হয় এবং অ্যালগরিদম অপ্টিমাইজেশনের মতো উপায়ে এটি একটি স্থিতিশীল এবং নির্ভরযোগ্য ট্রেডিং সিস্টেম তৈরি করতে পারে। সামগ্রিকভাবে, ডাবল ইয়ারলাইন কৌশলটি একটি খুব ক্লাসিক এবং সহজেই পরিচালনাযোগ্য ট্রেন্ড ট্র্যাকিং কৌশল।
/*backtest
start: 2023-01-01 00:00:00
end: 2023-04-14 00:00:00
period: 1d
basePeriod: 1h
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/
// © KivancOzbilgic
//@version=4
strategy("pomila", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2018, title = "From Year", minval = 999)
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 = 999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => time >= start and time <= finish ? true : false
longCondition = buySignal
if (longCondition)
strategy.entry("BUY", strategy.long, when = window())
shortCondition = sellSignal
if (shortCondition)
strategy.entry("SELL", strategy.short, when = window())
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)