وسائل لوڈ ہو رہے ہیں... لوڈنگ...

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

مصنف:چاؤ ژانگ، تاریخ: 2023-12-19 15:46:38
ٹیگز:

img

جائزہ

مومنٹم بریکآؤٹ ٹریڈنگ حکمت عملی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو اہم سپورٹ / مزاحمت کی سطحوں سے باہر قیمتوں میں بریکآؤٹ کا پتہ لگاکر تجارتی سگنل تیار کرتی ہے۔ یہ حکمت عملی ڈونچیان چینل اشارے کو متحرک طور پر اہم سپورٹ / مزاحمت کی سطحوں کی نشاندہی کرنے اور غلط تجارت سے بچنے کے لئے حرکت پذیر اوسط کے ساتھ سگنل کو مزید فلٹر کرنے کے لئے استعمال کرتی ہے۔

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

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

چلتی اوسط کا استعمال رجحان کی سمت کا اندازہ کرنے کے لئے کیا جاتا ہے۔ صرف اس قیمت کے ساتھ سگنل خریدیں جس کی قیمت چلتی اوسط سے زیادہ ہے تاکہ استحکام سے بچ سکے۔

خاص طور پر ، داخلے کی شرط میں شامل ہیں: قیمت ڈونچیان چینل کے اوپری بینڈ سے اوپر ٹوٹ جاتی ہے اور چلتی اوسط سے اوپر بند ہوجاتی ہے۔ باہر نکلنے کی شرط یہ ہے: قیمت ڈونچیان چینل کے نچلے بینڈ سے نیچے ٹوٹ جاتی ہے۔

سٹاپ نقصان ڈونچیئن چینل کے نچلے بینڈ کی پیروی کرتا ہے، اس بات کو یقینی بناتا ہے کہ سٹاپ رجحان کے ساتھ ساتھ زیادہ سے زیادہ ایڈجسٹ ہوتا ہے.

فوائد کا تجزیہ

یہ حکمت عملی مؤثر طریقے سے دو اشارے کو یکجا کرتی ہے تاکہ رجحان کی سمت اور رفتار کا اندازہ لگایا جاسکے ، غلط بریک آؤٹ سگنل سے غلط تجارت سے بچنے کے ل.۔ اس دوران ، ٹریلنگ اسٹاپ حکمت عملی کو رجحان کے بعد منافع کو زیادہ سے زیادہ کرنے کی اجازت دیتا ہے۔

خاص طور پر، فوائد یہ ہیں:

  1. ڈونچیئن چینل متحرک طور پر اہم سپورٹ/ مزاحمت کی سطح کا تعین کرتا ہے، رجحان موڑ کے مقامات کی نشاندہی کرتا ہے۔

  2. حرکت پذیر اوسط مستحکم کرنے کو فلٹر کرتا ہے، غیر ضروری whipssaws سے بچنے کے.

  3. ڈونچین چینل کے نچلے بینڈ کی پیروی کرنے سے منافع کو زیادہ سے زیادہ کرنے کی اجازت ملتی ہے۔

  4. معقول پیرامیٹرز مختلف مارکیٹ کے ماحول میں لچک فراہم کرتے ہیں۔

خطرے کا تجزیہ

ان کے سامنے آنے والے اہم خطرات:

  1. ناکام بریک آؤٹ کا خطرہ - قیمت اپر بینڈ سے اوپر بریک آؤٹ کے بعد رفتار کو برقرار رکھنے میں ناکام ہے۔

  2. رجحان الٹ جانے کا خطرہ - قیمت کا الٹ جانا ٹریلنگ سٹاپ نقصان سے پہلے ہوتا ہے۔

  3. پیرامیٹر کی اصلاح کا خطرہ - غیر موثر پیرامیٹرز سے زیادہ تجارت یا ناکافی سگنل ہوتے ہیں۔

کم کرنے کے لئے، حجم کی تصدیق، حرکت پذیر اوسط ٹوننگ، معقول سٹاپ فاصلے جیسے عوامل کو شامل کیا جانا چاہئے.

بہتر مواقع

مزید اصلاحات:

  1. حجم فلٹر شامل کریں تاکہ اعلی رفتار کے وقفے کو یقینی بنایا جاسکے۔

  2. آلہ کی خصوصیات کے لئے چلتی اوسط مدت کو بہتر بنائیں.

  3. قیمت کی اتار چڑھاؤ کی حرکیات پر مبنی موافقت پذیر سٹاپ نقصان کا طریقہ کار۔

  4. ابتدائی سٹاپ آؤٹ کے بعد دوبارہ داخل ہونے کا طریقہ کار اضافی رجحان کی بحالی کی نقل و حرکت کو پکڑنے کے لئے.

  5. مصنوعات کی جھلکیاں کی طرف سے پیرامیٹرز کی نشاندہی کرنے کے لئے مضبوط کثیر مارکیٹ ٹیسٹنگ.

نتیجہ

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


/*backtest
start: 2022-12-12 00:00:00
end: 2023-12-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// Revision:        1
// Author:          @millerrh
// Strategy:  
//      Entry: Buy when Donchian Channel breaks out
//      Exit: Trail a stop with the lower Donchian Channel band
// Conditions/Variables:
//    1. Can add a filter to only take setups that are above a user-defined moving average (helps avoid trading counter trend) 
//    2. Manually configure which dates to back test
//    3. User-Configurable DC Channel length


// === CALL STRATEGY/STUDY, PROGRAMATICALLY ENTER STRATEGY PARAMETERS HERE SO YOU DON'T HAVE TO CHANGE THEM EVERY TIME YOU RUN A TEST ===
// (STRATEGY ONLY) - Comment out srategy() when in a study() 
strategy("Donchian Breakout", overlay=true, initial_capital=10000, currency='USD', 
   default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1)
// (STUDY ONLY) - Comment out study() when in a strategy() 
//study("Donchian Breakout", overlay=true)


// === BACKTEST RANGE ===
From_Year  = input(defval = 2019, title = "From Year")
From_Month = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
From_Day   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
To_Year    = input(defval = 9999, title = "To Year")
To_Month   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
To_Day     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
Start  = timestamp(From_Year, From_Month, From_Day, 00, 00)  // backtest start window
Finish = timestamp(To_Year, To_Month, To_Day, 23, 59)        // backtest finish window

// == INPUTS ==
trigInput = input(title = "Execute Trades On...", defval = "Wick", options=["Wick","Close"]) // Useful for comparing standing stop orders vs. waiting for candle closes prior to action
stopTrail = input(title = "Trail Stops On...", defval = "ATR", options = ["ATR","Bottom of DC Channel","Midline of DC Channel","Tightest of ATR/Bot DC Channel"])
dcPeriod = input(title="DC period", type=input.integer, defval=20)

// === PLOT THE DONCHIAN CHANNEL ===
// Logic
dcUpper = highest(high, dcPeriod)
dcLower = lowest(low, dcPeriod)
dcMid = avg(dcUpper, dcLower)

// Plotting
dcUplot = plot(dcUpper, color=color.blue, linewidth=1, title="Upper Channel Line")
dcLplot = plot(dcLower, color=color.blue, linewidth=1, title="Lower Channel Line")
dcMidPlot = plot(dcMid, color=color.gray, linewidth=1, title="Mid-Line Average")
fill(dcUplot, dcLplot, color=color.gray, transp=90)

// == FILTERING ==
// Inputs
useMaFilter = input(title = "Use MA for Filtering?", type = input.bool, defval = true)
maType = input(defval="SMA", options=["EMA", "SMA"], title = "MA Type For Filtering")
maLength   = input(defval = 100, title = "MA Period for Filtering", minval = 1)

// Declare function to be able to swap out EMA/SMA
ma(maType, src, length) =>
    maType == "EMA" ? ema(src, length) : sma(src, length) //Ternary Operator (if maType equals EMA, then do ema calc, else do sma calc)
maFilter = ma(maType, close, maLength)
plot(maFilter, title = "Trend Filter MA", color = color.green, linewidth = 3, style = plot.style_line, transp = 50)

// Check to see if the useMaFilter check box is checked, this then inputs this conditional "maFilterCheck" variable into the strategy entry 
maFilterCheck = if useMaFilter == true
    maFilter
else
    0

// == ENTRY AND EXIT CRITERIA ==
// Trigger stop based on candle close or High/Low (i.e. Wick) - If doing daily timeframe, can do candle close.  Intraday should use wick.
trigResistance = trigInput == "Close" ? close : trigInput == "Wick" ? high : na
trigSupport = trigInput == "Close" ? close : trigInput == "Wick" ? low : na
buySignal = trigResistance >= dcUpper[1] // The [1] looks at the previous bar's value as it didn't seem to be triggering correctly without it (likely) DC moves with each bar
sellSignal = trigSupport <= dcLower[1]

buy = buySignal and dcUpper[1] > maFilterCheck // All these conditions need to be met to buy


// (STRATEGY ONLY) Comment out for Study
// This string of code enters and exits at the close
if (trigInput == "Close")
    strategy.entry("Long", strategy.long, when = buy)
    strategy.close("Long", when = sellSignal)

// This string of code enters and exits at the wick (i.e. with pre-set stops)
if (trigInput == "Wick")
    strategy.entry("Long", strategy.long, stop = dcUpper[1], when = time > Start and time < Finish and dcUpper[1] > maFilterCheck)
    strategy.exit("Exit Long", from_entry = "Long", stop = dcLower[1])





مزید