ڈونچیئن چینل بریک آؤٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-09-14 14:44:44
ٹیگز:

حکمت عملی منطق

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

انٹری کے قوانین یہ ہیں: جب قیمت کسی نظر ثانی کی مدت میں سب سے زیادہ اعلی سے اوپر ہوتی ہے (مثال کے طور پر 20 دن) ، اور جب قیمت کسی اور نظر ثانی کی مدت میں سب سے کم کم سے نیچے ہوتی ہے (مثال کے طور پر 10 دن) تو مختصر ہوجاتا ہے۔

ایگزٹ کے قوانین یہ ہیں: چینل کے وسط یا نچلے بینڈ میں لانگ پوزیشنوں کو روکا جاتا ہے۔ وسط بینڈ ایک مخصوص مدت (جیسے 10 دن) میں سب سے زیادہ اعلی اور سب سے کم کم کی اوسط ہے۔

مثال کے طور پر، مندرجہ ذیل پیرامیٹرز کے ساتھ BTCUSDT کی تجارت:

  • طویل اندراج نظرثانی کی مدت: 20 دن
  • لمبی سٹاپ نقصان کی نظرثانی کی مدت: 10 دن
  • درمیانی بینڈ پر سٹاپ نقصان: جی ہاں
  • مختصر اندراج کی نظرثانی کی مدت: 10 دن
  • مختصر سٹاپ نقصان کی نظر ثانی کی مدت: 20 دن
  • درمیانی بینڈ پر سٹاپ نقصان: جی ہاں

داخلہ اور روکنے کے قوانین یہ ہوں گے:

  • جب قیمت 20 دن کی بلند ترین سطح سے تجاوز کرتی ہے تو طویل عرصے تک جائیں
  • 10 دن کے اعلی اور کم کے وسط نقطہ پر طویل سٹاپ نقصان
  • جب قیمت 10 دن کی کم سے کم ہوتی ہے تو مختصر ہوجائیں
  • 20 دن کے اعلی اور کم کے وسط میں مختصر سٹاپ نقصان

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

فوائد

  • بریکآؤٹس ابتدائی طور پر رجحان کی سمت کی نشاندہی کرسکتے ہیں
  • قیمت کے قریب نقصانات کو روکنے میں مدد ملتی ہے
  • لچکدار پیرامیٹرز مختلف سائیکلوں کے لئے اصلاح کی اجازت دیتے ہیں

خطرات

  • بریکآؤٹس whipsaws کے لئے موزوں ہیں، توثیق کی ضرورت ہے
  • غیر مستحکم بازاروں میں ہلچل کے شکار سٹاپ نقصانات کو بند کریں
  • پیرامیٹر کی ناقص ترتیب سے زیادہ تجارت یا ناکافی رکاوٹوں کا سبب بن سکتا ہے

خلاصہ

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


/*backtest
start: 2023-08-14 00:00:00
end: 2023-09-13 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Donchian Channel Strategy", overlay=true, default_qty_type= strategy.percent_of_equity, initial_capital = 1000, default_qty_value = 20, commission_type=strategy.commission.percent, commission_value=0.036)

//Long optopns
buyPeriodEnter = input(10, "Channel Period for Long enter position")
buyPeriodExit = input(10, "Channel Period for Long exit position")
isMiddleBuy = input(true, "Is exit on Base Line? If 'no' - exit on bottom line")
takeProfitBuy = input(2.5, "Take Profit (%) for Long position")
isBuy = input(true, "Allow Long?")

//Short Options
sellPeriodEnter = input(20, "Channel Period for Short enter position")
sellPeriodExit = input(20, "Channel Period for Short exit position")
isMiddleSell = input(true, "Is exit on Base Line? If 'no' - exit on upper line")
takeProfitSell = input(2.5, "Take Profit (%) for Short position")
isSell = input(true, "Allow Short?")

// Test Start
startYear = input(2005, "Test Start Year")
startMonth = input(1, "Test Start Month")
startDay = input(1, "Test Start Day")
startTest = timestamp(startYear,startMonth,startDay,0,0)

//Test End
endYear = input(2050, "Test End Year")
endMonth = input(12, "Test End Month")
endDay = input(30, "Test End Day")
endTest = timestamp(endYear,endMonth,endDay,23,59)

timeRange = time > startTest and time < endTest ? true : false

// Long&Short Levels
BuyEnter = highest(buyPeriodEnter)
BuyExit = isMiddleBuy ? ((highest(buyPeriodExit) + lowest(buyPeriodExit)) / 2): lowest(buyPeriodExit)

SellEnter = lowest(sellPeriodEnter)
SellExit = isMiddleSell ? ((highest(sellPeriodExit) + lowest(sellPeriodExit)) / 2): highest(sellPeriodExit)

// Plot Data
plot(BuyEnter, style=plot.style_line, linewidth=2, color=color.blue, title="Buy Enter")
plot(BuyExit, style=plot.style_line, linewidth=1, color=color.blue, title="Buy Exit", transp=50)
plot(SellEnter, style=plot.style_line, linewidth=2, color=color.red, title="Sell Enter")
plot(SellExit, style=plot.style_line, linewidth=1, color=color.red, title="Sell Exit", transp=50)

// Calc Take Profits
TakeProfitBuy = 0.0
TakeProfitSell = 0.0
if strategy.position_size > 0
    TakeProfitBuy := strategy.position_avg_price*(1 + takeProfitBuy/100)
    
if strategy.position_size < 0
    TakeProfitSell := strategy.position_avg_price*(1 - takeProfitSell/100)

// Long Position    
if isBuy and timeRange
    strategy.entry("Long", strategy.long, stop = BuyEnter, when = strategy.position_size == 0) 
    
strategy.exit("Long Exit", "Long", stop=BuyExit, limit = TakeProfitBuy, when = strategy.position_size > 0)

// Short Position
if isSell and timeRange
    strategy.entry("Short", strategy.short, stop = SellEnter, when = strategy.position_size == 0) 
    
strategy.exit("Short Exit", "Short", stop=SellExit, limit = TakeProfitSell, when = strategy.position_size < 0)

// Close & Cancel when over End of the Test
if time > endTest
    strategy.close_all()
    strategy.cancel_all()


مزید