ٹوٹی ہوئی اعلی / کم حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-22 12:59:43
ٹیگز:

img

جائزہ

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

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

اس حکمت عملی کے تحت داخل ہونے اور باہر نکلنے کے لئے اہم شرائط مندرجہ ذیل ہیں:

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

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

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

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

خطرے کا تجزیہ

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

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

  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)

مزید