ڈونچین چینل رجحان کی پیروی کرنے والی حکمت عملی


تخلیق کی تاریخ: 2024-01-22 12:30:05 آخر میں ترمیم کریں: 2024-01-22 12:30:05
کاپی: 0 کلکس کی تعداد: 645
1
پر توجہ دیں
1617
پیروکار

ڈونچین چینل رجحان کی پیروی کرنے والی حکمت عملی

جائزہ

ڈونچیئن چینل ٹرینڈ ٹریکنگ حکمت عملی ایک ٹرینڈ ٹریکنگ حکمت عملی ہے جو ڈونچیئن چینل کے اشارے پر مبنی ہے۔ یہ قیمت کے رجحانات کی شناخت کے لئے مختلف لمبائی کے ڈونچیئن چینلز کا استعمال کرتا ہے اور جب قیمت چینل کو توڑ دیتی ہے تو اس سے تجارتی سگنل پیدا ہوتا ہے۔

اس حکمت عملی کا بنیادی خیال یہ ہے کہ طویل دورانیے کے ڈونچیئن چینلز کا استعمال بڑے رجحان کی سمت کا تعین کرنے کے لئے کیا جائے ، اور مختصر دورانیے کے ڈونچیئن چینلز کو داخلہ اور اسٹاپ نقصان کے اشارے کے طور پر استعمال کیا جائے۔ اس کا مقصد درمیانی لمبی لائن کی قیمتوں کے رجحانات کو پکڑنا ہے تاکہ مارکیٹ میں قلیل مدتی اتار چڑھاؤ سے بچنے کے لئے۔

حکمت عملی کا اصول

  1. طویل دورانیے (جیسے 50 دن) کی اعلی ترین اختتامی قیمتوں اور کم سے کم اختتامی قیمتوں کا حساب لگانا ڈونچین چینل کی تعمیر کرتا ہے۔ جب قیمت چینل کو توڑتی ہے تو زیادہ نظر آتی ہے اور جب وہ نیچے کی طرف جاتا ہے تو خالی نظر آتی ہے۔ یہ بڑے رجحانات کا فیصلہ کرنے کی بنیاد ہے۔

  2. مختصر دورانیے (جیسے 20 دن) کے لئے اعلی ترین اختتامی قیمت اور کم سے کم اختتامی قیمت کو داخلے اور اسٹاپ نقصان کے معیار کے طور پر شمار کریں۔ جب قیمت لمبی لائن چینل کو توڑ دیتی ہے تو ، اگر اختتامی قیمت بھی مختصر لائن چینل کو توڑ دیتی ہے تو ، داخلہ زیادہ / خالی ہوتا ہے۔

  3. جب کثیر سرخی کی پوزیشن رکھی جاتی ہے تو ، اگر قیمت شارٹ لائن سے نیچے گر جاتی ہے تو اس کا خاتمہ ہوجاتا ہے۔ جب خالی سرخی کی پوزیشن رکھی جاتی ہے تو ، اگر قیمت شارٹ لائن سے ٹریک ہوجاتی ہے تو اس کا خاتمہ ہوجاتا ہے۔

  4. روک تھام کا مقام N گنا اے ٹی آر ہے۔ یہ مارکیٹ میں اتار چڑھاؤ کے مطابق خود بخود ایڈجسٹ کیا جاسکتا ہے ، جو روک تھام کے متحرک ہونے کے امکان کو کم کرنے میں معاون ہے۔

  5. تجارت کے اختتام سے پہلے پوزیشن کو صاف کرنے کا انتخاب کرسکتے ہیں ، یا اسٹاپ نقصان تک پوزیشن کو برقرار رکھ سکتے ہیں۔ اس کو ایک ان پٹ پیرامیٹر کے ذریعہ کنٹرول کیا جاسکتا ہے۔

اس حکمت عملی میں رجحانات کا اندازہ لگانے اور منافع کو روکنے کے ساتھ ساتھ ، قیمتوں کے رجحانات کو پکڑنے اور خطرے کو کنٹرول کرنے کے لئے ، درمیانی اور لمبی لائن آپریشن کے لئے موزوں ہے۔

طاقت کا تجزیہ

  1. طویل مدتی رجحانات کو مؤثر طریقے سے شناخت کریں اور قلیل مدتی مارکیٹ کے شور سے پریشان نہ ہوں۔

  2. خود کار طریقے سے نقصانات کو روکنے کا طریقہ کار انفرادی نقصانات کو محدود کرتا ہے۔

  3. اے ٹی آر اسٹاپ نقصان مارکیٹ میں اتار چڑھاؤ کے مطابق اسٹاپ نقصان کی فاصلے کو ایڈجسٹ کرسکتا ہے ، جس سے اسٹاپ نقصان کے جھٹکے کا امکان کم ہوجاتا ہے۔

  4. جب آپ تجارت نہیں کرسکتے ہیں تو خود کار طریقے سے صفائی کرنے کا اختیار ، تجارت کے خطرات کا انتظام کریں۔

  5. حکمت عملی کی منطق سادہ، واضح اور سمجھنے میں آسان ہے۔

خطرے کا تجزیہ

  1. غیر واضح رجحانات کے ساتھ مارکیٹوں میں ، حکمت عملی زیادہ تجارت پیدا کرتی ہے ، جس سے تجارت کی لاگت میں اضافہ ہوتا ہے اور نقصانات کا امکان ہوتا ہے۔

  2. اگرچہ اسٹاپ نقصان کا طریقہ کار موجود ہے ، لیکن غیر معمولی حالات میں ، قیمت کے فرق سے براہ راست اسٹاپ نقصان کا سبب بن سکتا ہے۔

  3. اے ٹی آر کا حساب صرف تاریخی اعداد و شمار پر مبنی ہے ، اور مستقبل کے رجحانات اور اتار چڑھاؤ کی درست پیش گوئی نہیں کی جاسکتی ہے۔ اصل اسٹاپ نقصان کا فاصلہ بہت بڑا یا بہت چھوٹا ہوسکتا ہے۔

  4. ایک سٹاپ نقصان آرڈر کی 100٪ ضمانت نہیں دی جاسکتی ہے۔ انتہائی صورتوں میں ، اس کو نظرانداز کیا جاسکتا ہے اور نقصان کا سبب بن سکتا ہے۔

اصلاح کی سمت

  1. Donchian چینل پیرامیٹرز کو ایڈجسٹ کریں اور رجحانات کی شناخت کے اثر کو بہتر بنائیں

  2. اسٹریٹجک استحکام کو بڑھانے کے لئے دیگر اشارے کے ساتھ تجارت کی تصدیق کے اشارے جیسے MACD ، KDJ وغیرہ۔

  3. قیمتوں کے ساتھ چلنے والی روک تھام کو روکنے کے لئے موزوں روک تھام میں اضافہ کریں ، اور نقصان کو مزید محدود کریں۔

  4. مجموعی اثر پر مختلف پوزیشن ہولڈنگ کے اثرات کی جانچ کرنا ، بہترین پوزیشن ہولڈنگ کا دورانیہ طے کرنا۔

  5. متحرک پوزیشن کے سائز کو ایڈجسٹ کرنے پر غور کریں اور رجحانات کے دوران پوزیشن میں اضافہ کریں۔

خلاصہ کریں۔

ڈونچیئن چینل ٹرینڈ ٹریکنگ حکمت عملی میں رجحان کا فیصلہ اور رسک کنٹرول کو مربوط کیا گیا ہے تاکہ رجحان کی شناخت کے ذریعہ اضافی واپسی حاصل کی جاسکے ، جبکہ اسٹاپ نقصان کا طریقہ کار دم کے خطرے کو کنٹرول کرتا ہے۔ یہ حکمت عملی درمیانی اور لمبی لائن قیمت کے رجحانات کی شناخت اور گرفت کے لئے موزوں ہے ، جس میں پیرامیٹرز کی اصلاح اور طریقہ کار کی تکمیل کے بعد مستحکم مثبت منافع حاصل کیا جاسکتا ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Donchian", overlay=true, calc_on_every_tick=true)

// =============================================================================
// VARIABLES
// =============================================================================

donch_string = input.string(title="Lenght", options = ['20/10','50/20', '50/50', '20/20', '100/100'], defval='20/10')
permit_long  = input.bool(title = 'Permit long', defval = true)
permit_short  = input.bool(title = 'Permit short', defval = true)
risk_percent = input.float(title="Position Risk %", defval=0.5, step=0.25)
stopOffset = input.float(title="ATR mult", defval=2.0, step=0.5)
atrLen = input.int(title="ATR Length", defval=20)
close_in_end  = input.bool(title = 'Close in end', defval = true)
permit_stop  = input.bool(title = 'Permit stop', defval = true)


// =============================================================================
// CALCULATIONS
// =============================================================================

donch_len_big = 
 donch_string == '50/20' ? 50 : 
 donch_string == '50/50' ? 50 : 
 donch_string == '20/20' ? 20 : 
 donch_string == '20/10' ? 20 : 
 donch_string == '100/100' ? 100 : 
 na
donch_len_small = 
 donch_string == '50/20' ? 20 : 
 donch_string == '50/50' ? 50 : 
 donch_string == '20/20' ? 20 : 
 donch_string == '20/10' ? 10 : 
 donch_string == '100/100' ? 100 : 
 na

big_maxclose = ta.highest(close, donch_len_big)
big_minclose = ta.lowest(close, donch_len_big)

small_maxclose = ta.highest(close, donch_len_small)
small_minclose = ta.lowest(close, donch_len_small)

atrValue = ta.atr(atrLen)[1]

tradeWindow  = true

// =============================================================================
// NOTOPEN QTY
// =============================================================================

risk_usd     = (risk_percent / 100) * strategy.equity
atr_currency = (atrValue * syminfo.pointvalue)
notopen_qty  = risk_usd / (stopOffset * atr_currency)

// =============================================================================
// LONG STOP
// =============================================================================

long_stop_price = 0.0
long_stop_price := 
 strategy.position_size > 0 and na(long_stop_price[1]) ? strategy.position_avg_price - stopOffset * atrValue : 
 strategy.position_size > 0 and strategy.openprofit > risk_usd ? strategy.position_avg_price:
 strategy.position_size > 0 ? long_stop_price[1] : 
 na

// =============================================================================
// SHORT STOP
// =============================================================================

short_stop_price = 0.0
short_stop_price := 
 strategy.position_size < 0 and na(short_stop_price[1]) ? strategy.position_avg_price + stopOffset * atrValue : 
 strategy.position_size < 0 and strategy.openprofit > risk_usd ? strategy.position_avg_price :
 strategy.position_size < 0 ? short_stop_price[1] : 
 na

// =============================================================================
// PLOT BG VERTICAL COLOR
// =============================================================================

cross_up = strategy.position_size <= 0 and close == big_maxclose and close >= syminfo.mintick and tradeWindow and permit_long
cross_dn =  strategy.position_size >= 0 and close == big_minclose and close >= syminfo.mintick and tradeWindow and permit_short
bg_color = cross_up ? color.green : cross_dn ? color.red : na
bg_color := color.new(bg_color, 70)
bgcolor(bg_color)

// =============================================================================
// PLOT HORIZONTAL LINES
// =============================================================================

s1 = cross_up ? na : cross_dn ? na : strategy.position_size != 0 ? strategy.position_avg_price : na
s2 = cross_up ? na : cross_dn ? na : strategy.position_size > 0 ? small_minclose : strategy.position_size < 0 ? small_maxclose : na
s3 = cross_up ? na : cross_dn ? na : not permit_stop ? na : 
 strategy.position_size > 0 ? long_stop_price : strategy.position_size < 0 ? short_stop_price : na

plot(series=big_maxclose, style=plot.style_linebr, color=color.black, linewidth=1, title="Donch Big Maxclose Black")
plot(series=big_minclose, style=plot.style_linebr, color=color.black, linewidth=1, title="Donch Big Minclose Black")

plot(series=s1, style=plot.style_linebr, color=color.yellow, linewidth=2, title="Entry Yellow")
plot(series=s2, style=plot.style_linebr, color=color.red, linewidth=1, title="Donch Small Red")
plot(series=s3, style=plot.style_linebr, color=color.fuchsia, linewidth=2, title="Stop Fuchsia")

// =============================================================================
// ENTRY ORDERS
// =============================================================================

if strategy.position_size <= 0 and close == big_maxclose and close >= syminfo.mintick and tradeWindow and permit_long
    strategy.entry("Long", strategy.long, qty=notopen_qty)

if (strategy.position_size >= 0) and close == big_minclose and close >= syminfo.mintick and tradeWindow and permit_short
    strategy.entry("Short", strategy.short, qty=notopen_qty)

// =============================================================================
// EXIT ORDERS
// =============================================================================

if strategy.position_size > 0 and permit_stop
    strategy.exit(id="Stop", from_entry="Long", stop=long_stop_price)

if strategy.position_size < 0 and permit_stop
    strategy.exit(id="Stop", from_entry="Short", stop=short_stop_price)

// ==========

if strategy.position_size > 0 and close == small_minclose and not barstate.islast
    strategy.close(id="Long", comment='Donch')

if strategy.position_size < 0 and close == small_maxclose and not barstate.islast
    strategy.close(id="Short", comment='Donch')

// ==========

if close_in_end
    if not tradeWindow
        strategy.close_all(comment='In end')

// =============================================================================
// END
// =============================================================================