ٹوٹا ہوا اعلی / کم حکمت عملی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو پچھلے موم بتی کی اونچائی یا نچلی سطح سے آگے کی قیمتوں میں خرابی کا سراغ لگاتی ہے۔ یہ رجحان کی سمت کا تعین کرنے کے لئے حرکت پذیر اوسط کا استعمال کرتی ہے اور خرابی کے مقامات پر داخل ہوتی ہے ، جس میں منافع میں مقفل ہونے کے لئے اسٹاپ نقصان یا ٹریلنگ اسٹاپ نقصان ہوتا ہے۔
اس حکمت عملی کے تحت داخل ہونے اور باہر نکلنے کے لئے اہم شرائط مندرجہ ذیل ہیں:
اس حکمت عملی میں غلط بریک آؤٹ سے بچنے اور سگنل کی وشوسنییتا کو یقینی بنانے کے لئے دوسری الٹ موم بتی پر مبنی فلٹرز کا بھی استعمال کیا گیا ہے۔
خطرے کے کنٹرول کے اقدامات:
اس حکمت عملی کو مندرجہ ذیل پہلوؤں میں بہتر بنایا جاسکتا ہے:
ٹوٹا ہوا اعلی / کم حکمت عملی مجموعی طور پر ایک پختہ رجحان کی پیروی کرنے والی حکمت عملی ہے۔ معاون فیصلے کے لئے اوسط حرکت پذیر کی مدد سے ، یہ رجحانات کی ایک خاص ڈگری پر قبضہ کرسکتا ہے۔ اسٹاپ نقصان اور ٹریلنگ اسٹاپ میکانزم بھی منافع میں مقفل کرنے میں مدد کرتے ہیں۔ مسلسل جانچ اور اصلاح کے ذریعہ ، اس حکمت عملی کے پیرامیٹرز اور کارکردگی زیادہ نمایاں ہوسکتی ہے۔
/*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)