ٹریکنگ پرائس بریک آؤٹ ہائی اور کم حکمت عملی


تخلیق کی تاریخ: 2023-12-22 12:59:43 آخر میں ترمیم کریں: 2023-12-22 12:59:43
کاپی: 1 کلکس کی تعداد: 606
1
پر توجہ دیں
1623
پیروکار

ٹریکنگ پرائس بریک آؤٹ ہائی اور کم حکمت عملی

جائزہ

ایک ٹرینڈ ٹریکنگ حکمت عملی ہے جس میں قیمتوں کی ایک K لائن کو توڑنے سے پہلے ایک اونچائی یا نچلے حصے کی پیروی کی جاتی ہے۔ یہ ایک حرکت پذیر اوسط کے ساتھ مل کر رجحان کی سمت کا تعین کرنے کے لئے ، توڑنے کے مقام پر داخل ہوتا ہے ، اور پھر منافع کو مقفل کرنے کے لئے اسٹاپ نقصان یا ٹریکنگ اسٹاپ قائم کرتا ہے۔

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

اس حکمت عملی کے تحت پوزیشن کھولنے اور ختم کرنے کے لیے مندرجہ ذیل شرائط پر غور کیا جاتا ہے:

  1. K لائن کو سرخ یا سبز کا فیصلہ کرنے کے لئے کہ آیا K لائن اوپر ہے یا نیچے ہے
  2. اس بات کا تعین کریں کہ آیا موجودہ K لائن پچھلی K لائن کی اونچائی یا نچلے حصے کو توڑتی ہے
  3. رجحانات کی سمت کا تعین کرنے کے لئے تیز رفتار اور سست رفتار اوسط استعمال کریں
  4. جب اوپر کی K لائن پچھلی نیچے کی K لائن کی اونچائی کو توڑتی ہے تو زیادہ کام کریں جب نیچے کی K لائن پچھلی اوپر کی K لائن کی نچلی سطح کو توڑتی ہے تو خالی کریں
  5. فلیٹ پوزیشن کی شرائط اسٹاپ نقصان یا ٹریکنگ اسٹاپ نقصان ٹرگر ہیں۔ یہ بھی ترتیب دیا جاسکتا ہے کہ اگر ریورس K لائن نمودار ہوتی ہے تو فوری طور پر اسٹاپ نقصان

اس حکمت عملی کے ساتھ ساتھ دوسرا الٹ K لائن کا فیصلہ بھی کیا گیا ہے تاکہ جعلی توڑ کو فلٹر کیا جاسکے ، اور اس سے اس بات کو یقینی بنایا جاسکے کہ توڑنے والا سگنل قابل اعتماد ہے۔

طاقت کا تجزیہ

  • واضح حکمت عملی اور آسانی سے قابو پانے والی کارروائی
  • ڈبل منتقل اوسط کے ساتھ مل کر بڑے رجحانات کو درست کرنے کے لئے یقینی بنائیں
  • ٹریکنگ سٹاپ نقصانات سے زیادہ منافع حاصل کرنے میں مدد ملتی ہے
  • ریورس K- لائن میکانزم کی مدد سے پیچھا کرنے سے بچنے میں مدد ملے گی

خطرے کا تجزیہ

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

رسک کنٹرول کے اقدامات:

  1. انڈیکس یا بڑے پیمانے پر بڑے پیمانے پر منتخب کریں، انفرادی اسٹاک کے اعلی خطرے سے بچیں
  2. حرکت پذیری اوسط پیرامیٹرز کو بہتر بنانے کے لئے، بہتر فیصلے کی درستگی
  3. اسٹاپ نقصان کی حد کو مناسب طریقے سے بڑھانا تاکہ انفرادی نقصان پر قابو پایا جا سکے

اصلاح کی سمت

اس حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے:

  1. مختلف منتقل اوسط پیرامیٹرز کے مجموعے کی جانچ
  2. مجموعی طور پر فیصلہ کرنے کے لئے دیگر اشارے کے ساتھ ٹیسٹ
  3. پوزیشن کھولنے اور روکنے کے مقامات کو بہتر بنانے کے پیرامیٹرز
  4. کوالٹی سکریننگ کے قواعد میں اضافہ
  5. مشین لرننگ الگورتھم کے ساتھ مل کر پیرامیٹرز کو خود بخود بہتر بنانا

خلاصہ کریں۔

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

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

//@version=5
strategy("Broken High/Low Strategy", overlay=true, initial_capital = 5000, default_qty_value = 25, pyramiding = 10, default_qty_type= strategy.percent_of_equity)

useEMAForStop = input.bool(false, 'Use trail stop EMA', group = 'Exit strategy')
trailStopMALength = input(8, 'Trail stop EMA length', group = 'Exit strategy')

fastMALength = input(5 , 'Fast MA length', group = 'Trend strength')
fastEMAEnabled = input.bool(false, 'Fast EMA enabled (default is SMA)', group = 'Trend strength')

slowMALength = input(10, 'Slow MA length', group = 'Trend strength')
slowEMAEnabled = input.bool(false, 'Slow EMA enabled (default is SMA)', group = 'Trend strength')

ignoreSlowMA = input.bool(false, 'Use fast MA for trend ignoring slow MA', group = 'Trend strength')

useOpposingBarAsExit = input.bool(false, 'Using opposing bar as exit', group = 'Exit strategy')
secondEntryEnabled = input.bool(false, 'Second bar that eliminates opposing bar for entry', group = 'Trend strength')

longsEnabled = input.bool(true, 'Enable longs', group = 'Trade settings')
shortsEnabled = input.bool(true, 'Enable shorts', group = 'Trade settings')

fastMA = fastEMAEnabled ? ta.ema(close, fastMALength) : ta.sma(close, fastMALength)
slowMA = slowEMAEnabled ? ta.ema(close, slowMALength) : ta.sma(close, slowMALength)

FromMonth=input.int(defval=1,title="FromMonth",minval=1,maxval=12, group = 'Time filters')
FromDay=input.int(defval=1,title="FromDay",minval=1,maxval=31, group = 'Time filters')
FromYear=input.int(defval=1990,title="FromYear",minval=1900, group = 'Time filters')
ToMonth=input.int(defval=1,title="ToMonth",minval=1,maxval=12, group = 'Time filters')
ToDay=input.int(defval=1,title="ToDay",minval=1,maxval=31, group = 'Time filters')
ToYear=input.int(defval=9999,title="ToYear",minval=2017, group = 'Time filters')
start=timestamp(FromYear,FromMonth,FromDay,00,00)
finish=timestamp(ToYear,ToMonth,ToDay,23,59)
window()=>time>=start and time<=finish?true:false
afterStartDate = time >= start and time<=finish?true:false
closeTradesEOD = input.bool(false, 'Close trades end of day', group = 'Time filters')

trailStopMA = ta.ema(close, trailStopMALength)

isGreenCandle = close > open
isRedCandle = close < open
isBrokenHigh = close > open[1]
isPriorCandleRed = close[1] < open[1]
isPriorPriorCandleRed = close[2] < open[2]
isPriorPriorCandleGreen = close[2] > open[2]
isPriorCandleGreen = close[1] > open[1]
isBrokenLow = close < open[1]

isPriorRedCandleBroken = isGreenCandle and isPriorCandleRed and isBrokenHigh
isPriorGreenCandleBroken = isRedCandle and isPriorCandleGreen and isBrokenLow

isPriorPriorRedCandleBroken = secondEntryEnabled and not isPriorRedCandleBroken and isGreenCandle and isPriorPriorCandleRed ? close > open[2] : false
isPriorPriorGreenCandleBroken = secondEntryEnabled and not isPriorGreenCandleBroken and isRedCandle and isPriorPriorCandleGreen ? close < open[2] : false

longOpenCondition = (isPriorRedCandleBroken or isPriorPriorRedCandleBroken) and afterStartDate and (ignoreSlowMA ? close > fastMA : fastMA > slowMA) and longsEnabled
longCloseCondition = useOpposingBarAsExit ? isRedCandle : ta.crossunder(close, fastMA)
longCloseCondition := useEMAForStop ? ta.crossunder(close, trailStopMA) : longCloseCondition

shortOpenCondition = (isPriorGreenCandleBroken or isPriorPriorGreenCandleBroken) and afterStartDate and (ignoreSlowMA ? close < fastMA : fastMA < slowMA) and shortsEnabled
shortCloseCondition = useOpposingBarAsExit ? isGreenCandle : ta.crossover(close, fastMA)
shortCloseCondition := useEMAForStop ? ta.crossover(close, trailStopMA) : shortCloseCondition

if (longOpenCondition)
    strategy.entry("Long Entry", strategy.long)

if (longCloseCondition)
    strategy.close('Long Entry', 'Long Exit')

if (shortOpenCondition)
    strategy.entry("Short Entry", strategy.long)

if (shortCloseCondition)
    strategy.close('Short Entry', 'Short Exit')

if (closeTradesEOD and hour >= 14 and minute >= 30)
    strategy.close_all("EOD")

plot(useEMAForStop ? trailStopMA : na, linewidth = 2, color = color.red)
plot(fastMA)
plot(ignoreSlowMA ? na : slowMA, linewidth = 4)