
اس حکمت عملی میں متعدد دورانیہ پر مبنی ڈونگ چیان چینل اشارے پر مبنی رجحانات کا سراغ لگانے کا نظام بنایا گیا ہے۔ مختلف ٹائم فریموں میں ڈونگ چیان چینل کے اختراعات کا تجزیہ کرکے ، مرکزی رجحانات اور مقامی رجحانات کے تعاون کے تعلقات کو ملا کر ، بصری طور پر بدیہی رجحان بینڈ گراف تشکیل دیا گیا ہے۔ حکمت عملی میں رجحان کی طاقت اور کمزوری کو ظاہر کرنے کے لئے رنگ کی گہری تبدیلی کا استعمال کیا گیا ہے ، سبز زاویہ اوپر کی طرف رجحان کی نمائندگی کرتا ہے ، سرخ زاویہ نیچے کی طرف رجحان کی نمائندگی کرتا ہے ، رنگ جتنا گہرا ہوتا ہے رجحان زیادہ واضح ہوتا ہے۔
اس حکمت عملی کا مرکز ڈونچین چینل کے اشارے کی بنیاد پر رجحانات کا فیصلہ کرنا ہے۔ ڈونچین چینل اعلی ترین قیمت چینل اور کم قیمت چینل پر مشتمل ہے ، جو موجودہ قیمتوں اور چینل کے مقام کے تعلقات کا موازنہ کرکے رجحانات کا فیصلہ کرتا ہے۔ اس میں بنیادی طور پر درج ذیل چند اہم اجزاء شامل ہیں:
اس حکمت عملی نے ایک بصری اثر کو نمایاں کیا ، جس میں کثیر دورانیہ ڈونگ چیان چینل کے جدید استعمال کے ذریعہ ، ایک ٹریڈنگ سسٹم کی تعمیر کی گئی ہے۔ اس حکمت عملی کا بنیادی فائدہ یہ ہے کہ رجحان تجزیہ کے پیچیدہ عمل کو بصری شکل دی جائے ، جس سے تاجروں کو مارکیٹ کی حرکت کو بصری طور پر سمجھنے میں مدد ملے۔ معقول پیرامیٹرز کی اصلاح اور خطرے سے متعلق اقدامات کے ذریعہ ، اس حکمت عملی میں عملی استعمال کی اچھی قدر ہے۔ اس سے تاجروں کو مشورہ دیا جاتا ہے کہ وہ مارکیٹ کے ماحول کے انتخاب پر توجہ دیں اور اپنی خطرے کی برداشت کے ساتھ پوزیشن مینجمنٹ کا استعمال کریں۔
/*backtest
start: 2024-06-12 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Donchian Trend Ribbon Strategy", shorttitle="DonchianTrendRibbonStrat", overlay=true, precision=0)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Parameters
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dlen = input.int(defval=20, title="Donchian Channel Period", minval=10)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Helper function to determine color
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
f_color(mainTrend, localTrend) =>
// mainTrend = 1 => uptrend, -1 => downtrend
// localTrend = 1 => local uptrend, -1 => local downtrend
// Return color based on whether local trend aligns with the main trend
color c = na
if mainTrend == 1
c := localTrend == 1 ? color.new(color.lime, 0) : color.new(color.lime, 60)
else if mainTrend == -1
c := localTrend == -1 ? color.new(color.red, 0) : color.new(color.red, 60)
else
c := na
c
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Function dchannel - determines main trend (1 or -1)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dchannel(len) =>
float hh = ta.highest(len)
float ll = ta.lowest(len)
var int tr = 0
tr := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(tr[1])
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Function dchannelalt - determines local trend and returns color
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dchannelalt(len, maintrend) =>
float hh = ta.highest(len)
float ll = ta.lowest(len)
var int tr = 0
tr := close > hh[1] ? 1 : close < ll[1] ? -1 : nz(tr[1])
f_color(maintrend, tr)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Calculate main trend
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
maintrend = dchannel(dlen)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Plotting the Donchian Trend Ribbon
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
plot( 5, color=dchannelalt(dlen - 0, maintrend), style=plot.style_columns, histbase= 0)
plot(10, color=dchannelalt(dlen - 1, maintrend), style=plot.style_columns, histbase= 5)
plot(15, color=dchannelalt(dlen - 2, maintrend), style=plot.style_columns, histbase=10)
plot(20, color=dchannelalt(dlen - 3, maintrend), style=plot.style_columns, histbase=15)
plot(25, color=dchannelalt(dlen - 4, maintrend), style=plot.style_columns, histbase=20)
plot(30, color=dchannelalt(dlen - 5, maintrend), style=plot.style_columns, histbase=25)
plot(35, color=dchannelalt(dlen - 6, maintrend), style=plot.style_columns, histbase=30)
plot(40, color=dchannelalt(dlen - 7, maintrend), style=plot.style_columns, histbase=35)
plot(45, color=dchannelalt(dlen - 8, maintrend), style=plot.style_columns, histbase=40)
plot(50, color=dchannelalt(dlen - 9, maintrend), style=plot.style_columns, histbase=45)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Trading Logic (STRATEGY)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bool goLong = (maintrend == 1)
bool goShort = (maintrend == -1)
// Entry signals
if goLong
strategy.entry("Long", strategy.long)
if goShort
strategy.entry("Short", strategy.short)
// Close positions when trend changes
if strategy.position_size > 0 and goShort
strategy.close("Long")
if strategy.position_size < 0 and goLong
strategy.close("Short")