
اعلی اور کم توڑنے والی پیمائش کی حکمت عملی ایک ایسی حکمت عملی ہے جس میں اسٹاک کی تاریخی اونچائی اور نچلی سطح کا استعمال کیا جاتا ہے تاکہ یہ معلوم کیا جاسکے کہ آیا قیمت ان اعلی اور کم سطحوں کو توڑ رہی ہے۔ یہ ایک خاص دورانیے میں اعلی ترین اور کم ترین قیمتوں کا حساب کتاب کرکے ، جب موجودہ دورانیے کی قیمت حالیہ مخصوص دورانیے کی اعلی ترین قیمت سے زیادہ ہو تو خریدنے کا اشارہ پیدا کرتی ہے۔ جب قیمت حالیہ مخصوص دورانیے کی کم ترین قیمت سے نیچے آجاتی ہے تو ، فروخت پیدا کرتی ہے۔ یہ سگنل حکمت عملی ایک قسم کی رجحانات کی پیروی کرنے والی حکمت عملی ہے ، جس میں اسٹاک کی قیمتوں کی رجحانات کی خصوصیات کو پکڑنے کے لئے ، اس کی عملی جنگ کی قیمت ہے۔
اس حکمت عملی کا بنیادی منطق یہ ہے کہ کسی خاص دورانیے میں ((ڈیفالٹ 50 K لائن) کی اعلی ترین اور کم ترین قیمتوں کا حساب لگایا جائے۔ اعلی ترین اور کم ترین قیمتوں کا حساب لگانے کے لئے ، اختتامی قیمت یا اعلی ترین اور کم ترین قیمتوں کا استعمال کرنے کا انتخاب کیا جاسکتا ہے ((ڈیفالٹ اعلی ترین اور کم ترین قیمتوں کا استعمال کریں)) ۔ پھر یہ فیصلہ کریں کہ آیا موجودہ K لائن کی اختتامی قیمت یا اعلی ترین قیمت حالیہ مخصوص دورانیے کی اعلی ترین قیمت سے زیادہ ہے ، اگر ایسا ہے اور اس سے پہلے ہی ایک اعلی ترین قیمت ہے (ڈیفالٹ 30 K لائن) ، ایک خرید سگنل پیدا کریں۔ اسی طرح ، یہ فیصلہ کریں کہ آیا موجودہ K لائن کی اختتامی قیمت یا کم از کم قیمت حالیہ مخصوص دورانیے کی کم از کم قیمت سے کم ہے ، اور اگر اس کی کم از کم قیمت ہے تو ، ایک فروخت سگنل پیدا کریں۔
جب خریدنے کا اشارہ پیدا ہوتا ہے تو ، حکمت عملی اس قیمت پر خریدتی ہے ، اور اس کی روک تھام اور روک تھام کی قیمت طے کرتی ہے۔ جب قیمت اسٹاپ نقصان کی قیمت کو چھوتی ہے تو ، حکمت عملی اسٹاپ نقصان سے باہر نکل جاتی ہے۔ جب قیمت اسٹاپ نقصان کی قیمت کو چھوتی ہے تو ، حکمت عملی اسٹاپ نقصان سے باہر نکل جاتی ہے۔ فروخت سگنل کی منطق بھی اسی طرح کی ہے۔
اس طرح کی اعلی یا کم توڑنے کی حکمت عملی کے کچھ فوائد ہیں:
اس حکمت عملی کے کچھ خطرات بھی ہیں:
ان خطرات پر قابو پانے کے لئے ، آپ کو مندرجہ ذیل طریقوں سے بہتر بنانے کی ضرورت ہے۔
اس اعلی یا کم توڑنے والی ریٹرننگ حکمت عملی کو مندرجہ ذیل پہلوؤں سے بہتر بنایا جاسکتا ہے۔
پیرامیٹرز کی اصلاح: مختلف پیرامیٹرز کے مجموعے کو زیادہ منظم طریقے سے جانچنے کے ذریعے بہترین پیرامیٹرز کو تلاش کیا جاسکتا ہے۔
دوسرے اشارے کے ساتھ مل کر فلٹرنگ سگنل۔ مثال کے طور پر ، ایک خریدنے کا اشارہ صرف اس وقت پیدا ہوتا ہے جب قیمت سب سے زیادہ قیمت کو توڑ دیتی ہے اور طویل مدتی حرکت پذیری اوسط کو مختصر مدت کی حرکت پذیری اوسط پر عبور کرتی ہے۔
اسٹاک کی قیمتوں میں اتار چڑھاؤ کی فریکوئنسی پر غور کریں۔ مثال کے طور پر ، جب اسٹاک کی قیمتوں میں اتار چڑھاؤ بڑھ جاتا ہے تو ، اس کی حد کو مناسب طریقے سے کم کرنے کے لئے اے ٹی آر انڈیکس کو جوڑا جاسکتا ہے۔
رجحان کے بازاروں اور جھٹکے والے بازاروں میں فرق کریں۔ رجحان کے واضح مرحلے میں ، رجحانات کی پیروی کرنے کے لئے پیرامیٹرز کو مناسب طریقے سے نرمی دیں۔ جب مارکیٹ میں جھٹکے ہوں تو ، پیرامیٹرز کو مناسب طریقے سے سخت کریں۔
پوزیشن مینجمنٹ کے طریقہ کار میں اضافہ کریں۔ مثال کے طور پر ، جب نقصانات ایک خاص تناسب تک پہنچ جاتے ہیں تو پوزیشن کھولنا بند کردیں۔
مجموعی طور پر ، اعلی اور کم توڑنے والی ریٹرننگ حکمت عملی ایک سادہ اور عملی رجحان کی پیروی کرنے والی حکمت عملی ہے۔ یہ تجارت کے اشارے کا تعین کرنے کے لئے یہ فیصلہ کرتا ہے کہ آیا قیمت کسی خاص دورانیے میں اعلی ترین اور کم ترین قیمتوں کو توڑ دیتی ہے۔ اس حکمت عملی میں سادگی ، رجحان کی پیروی ، اور پیرامیٹرز کی اصلاح جیسے فوائد ہیں۔ اس کے ساتھ ہی ، اس میں زیادہ تجارت پیدا کرنے اور اتار چڑھاؤ والی مارکیٹوں کو سنبھالنے کے قابل نہ ہونے کا خطرہ بھی موجود ہے۔ ہم اس حکمت عملی کو پیرامیٹرز کی اصلاح ، اشارے کی فلٹرنگ ، پوزیشن مینجمنٹ اور دیگر متعدد پہلوؤں سے بہتر بنا سکتے ہیں ، تاکہ اس کی تاثیر کو مزید بہتر بنایا جاسکے۔
/*backtest
start: 2023-11-25 00:00:00
end: 2023-11-26 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("High/Low Breaker Backtest 1.0", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, max_bars_back=700)
// Strategy Settings
takeProfitPercentageLong = input(.1, title='Take Profit Percentage Long', type=float)/100
stopLossPercentageLong = input(0.15, title='Stop Loss Percentage Long', type=float)/100
takeProfitPercentageShort = input(.1, title='Take Profit Percentage Short', type=float)/100
stopLossPercentageShort = input(0.15, title='Stop Loss Percentage Short', type=float)/100
candlesBack = input(title="Number of candles back", defval=50)
useHighAndLows = input(true, title="Use high and lows (uncheck to use close)", defval=true)
lastBarsBackMinimum = input(title="Number of candles back to ignore for last high/low", defval=30)
showHighsAndLows = input(true, title="Show high/low lines", defval=true)
getIndexOfLowestInSeries(series, period) =>
index = 0
current = series
for i = 1 to period
if series[i] <= current
index := i
current := series[i]
index
getIndexOfHighestInSeries(series, period) =>
index = 0
current = series
for i = 1 to period
if series[i] >= current
index := i
current := series[i]
index
indexOfHighestInRange = getIndexOfHighestInSeries(useHighAndLows ? high : close, candlesBack)
indexOfLowestInRange = getIndexOfLowestInSeries(useHighAndLows ? low : close, candlesBack)
max = useHighAndLows ? high[indexOfHighestInRange] : close[indexOfHighestInRange]
min = useHighAndLows ? low[indexOfLowestInRange] : close[indexOfLowestInRange]
barsSinceLastHigh = indexOfHighestInRange
barsSinceLastLow = indexOfLowestInRange
isNewHigh = (useHighAndLows ? high > max[1] : close > max[1]) and (barsSinceLastHigh[1] + 1 > lastBarsBackMinimum)
isNewLow = (useHighAndLows ? low < min[1] : close < min[1]) and (barsSinceLastLow[1] + 1 > lastBarsBackMinimum)
alertcondition(condition=isNewHigh, title="New High", message="Last High Broken")
alertcondition(condition=isNewLow, title="New Low", message="Last Low Broken")
if high > max
max := high
barsSinceLastHigh := 0
if low < min
min := low
barsSinceLastLow := 0
plot( showHighsAndLows ? max : na, color=red, style=line, title="High", linewidth=3)
plot( showHighsAndLows ? min : na, color=green, style=line, title="Low", linewidth=3)
// Strategy Entry/Exit Logic
goLong =isNewHigh
longStopLevel = strategy.position_avg_price * (1 - stopLossPercentageLong)
longTakeProfitLevel = strategy.position_avg_price * (1 + takeProfitPercentageLong)
goShort = isNewLow
shortStopLevel = strategy.position_avg_price * (1 + stopLossPercentageShort)
shortTakeProfitLevel = strategy.position_avg_price * (1 - takeProfitPercentageShort)
strategy.entry("Long", strategy.long, when=goLong)
strategy.exit("Long Exit", "Long", stop=longStopLevel, limit=longTakeProfitLevel)
strategy.entry("Short", strategy.short, when=goShort)
strategy.exit("Short Exit", "Short", stop=shortStopLevel, limit=shortTakeProfitLevel)
plot(goShort ? shortStopLevel : na, color=yellow, style=linebr, linewidth=2)
plot(goShort ? shortTakeProfitLevel : na, color=blue, style=linebr, linewidth=2)
plot(goLong ? longStopLevel : na, color=yellow, style=linebr, linewidth=2)
plot(goLong ? longTakeProfitLevel : na, color=blue, style=linebr, linewidth=2)