
یہ حکمت عملی رجحان کے الٹ پوائنٹس تلاش کرنے کے لئے K لائن پر مبنی اعلی اور کم اعداد و شمار کے اندراجات کو ڈیزائن کرتی ہے۔ اندراجات کے بعد اے ٹی آر اشارے کے مطابق اسٹاپ لائن طے کی جاتی ہے ، اور اسٹاپ نقصانات کا سراغ لگایا جاتا ہے۔ حکمت عملی خطرے کی واپسی کے تناسب پر مبنی ہدف کی پوزیشن کا حساب بھی لگاتی ہے ، اور ہدف تک پہنچنے یا اس کے بعد بند ہونے کے بعد پوزیشن کو صاف کرتی ہے۔
اس حکمت عملی کے اندراجات کے سگنل اعلی اور کم کھلنے سے آتے ہیں۔ جب کسی K لائن کی کھلنے کی قیمت کم قیمت کے برابر ہوتی ہے تو خریدنے کا سگنل پیدا ہوتا ہے ، اور جب کھلنے کی قیمت زیادہ سے زیادہ قیمت کے برابر ہوتی ہے تو فروخت کا سگنل پیدا ہوتا ہے ، جس سے یہ ظاہر ہوتا ہے کہ رجحان کی واپسی کا موقع ہوسکتا ہے۔
اندراجات کے بعد اے ٹی آر اشارے کے مطابق متحرک ٹریکنگ اسٹاپ نقصان ہوگا۔ خریدنے کے بعد اسٹاپ نقصان کی لائن کو حالیہ N روٹ K لائن میں سب سے کم قیمت کے لئے 1x اے ٹی آر سے کم کیا جائے گا۔ فروخت کے بعد اسٹاپ نقصان کی لائن کو حالیہ N روٹ K لائن میں سب سے زیادہ قیمت کے لئے 1x اے ٹی آر شامل کیا جائے گا۔ اسٹاپ نقصان کی لائن متحرک طور پر اپ ڈیٹ ہوگی ، قیمتوں کی پیروی کی جائے گی۔
ہدف منافع کا حساب لگایا گیا ہے جیسا کہ خطرہ کی واپسی کا تناسب ہے۔ خریدنے کی ہدف قیمت میں داخلہ قیمت کے علاوہ ((درجہ خطرہ واپسی کے تناسب میں داخلہ قیمت اور اسٹاپ نقصان کی قیمت کا فرق) ؛ فروخت کی ہدف قیمت میں داخلہ قیمت کو کم کرنا ((درجہ خطرہ واپسی کے تناسب میں اسٹاپ نقصان کی قیمت اور داخلہ قیمت کا فرق) ۔
جب قیمت اسٹاپ نقصان کی قیمت یا ہدف کی قیمت کو چھوتی ہے تو ، ایک صاف پوزیشن کا حکم جاری کریں۔
یہ حکمت عملی مندرجہ ذیل فوائد رکھتی ہے:
انٹریز سگنل سادہ اور واضح ہیں، آسانی سے فیصلہ کیا جا سکتا ہے، ایک سے زیادہ جھٹکے سے بچنے کے لئے.
متحرک اے ٹی آر اسٹاپ نقصان ، زیادہ سے زیادہ منافع کو مقفل کریں ، اور اونچائی کو مارنے سے گریز کریں۔
خطرے کی واپسی کی شرح کو کنٹرول کریں ، منافع کو بچانے اور انتہائی مختصر لائن آپریشن سے گریز کریں۔
مختلف اقسام کے لئے مناسب، آسان اصلاح
اس حکمت عملی میں کچھ خطرات بھی ہیں:
انٹریز سگنل میں کچھ حد تک تاخیر ہوسکتی ہے ، جس کی وجہ سے وہ بہترین مقام سے محروم ہوجاتے ہیں۔
اسٹاپ نقصان کی قیمت قریب یا بہت زیادہ نرمی ہے ، جس کی وجہ سے منافع میں کمی یا کمی واقع ہوسکتی ہے۔
اس کے علاوہ ، یہ ایک رجحان کے بغیر فیصلہ کرنے والا ماڈیول ہے ، جو زلزلے کی صورت حال میں آسانی سے پھنس جاتا ہے۔
راتوں رات گوداموں کی تعمیر کا انتظام نہ کرنا۔
آپٹیمائزیشن کی سمت:
دوسرے اشارے کے ساتھ رجحانات کا اندازہ لگانا ، اتار چڑھاؤ کے حالات پر سودے بازی سے بچنے کے لئے۔
اے ٹی آر پیرامیٹرز کو ایڈجسٹ کریں یا اتار چڑھاؤ کی شرح کنٹرول میں شامل کریں ، اسٹاپ نقصان کی لائن کو بہتر بنائیں۔
رجحانات کا فیصلہ یا فلٹر ماڈیول شامل کریں ، اور اندراجات سگنل کی غلطی کو کم کریں۔
رات کے وقت ہینڈلنگ ماڈیول میں شامل ہونے کے لئے، مخصوص اقسام کے لئے رات کے وقت ہینڈلنگ ہولڈنگ.
یہ حکمت عملی عام طور پر آسان اور براہ راست ہے ، انٹریز سگنل واضح ہیں ، اسٹاپ نقصان کا نظریہ معقول ہے ، اور خطرہ کنٹرول میں ہے۔ لیکن اس میں کچھ حدود بھی ہیں ، جیسے رجحان کا فیصلہ کرنے میں ناکامی ، سگنل کی تاخیر وغیرہ۔ یہ مسائل مستقبل میں اصلاح کے لئے بھی رہنمائی فراہم کرتے ہیں۔ اس حکمت عملی کو مزید اشارے کے فیصلے اور رسک کنٹرول ماڈیول کے ساتھ جوڑ کر ، اس کی تاثیر کو مزید بڑھایا جاسکتا ہے ، اور یہ زیادہ عام ہوجاتا ہے۔
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
// Open-High-Low strategy
strategy('Strategy: OLH', shorttitle="OLH", overlay=true )
// Inputs
slAtrLen = input.int(defval=14, title="ATR Period for placing SL", group="StopLoss settings")
showSLLines = input.bool(defval=false, title="Show SL lines in chart", tooltip="Show SL lines also as dotted lines in chart. Note: chart may look untidy.", group="Stolploss settings")
// Trade related
rrRatio = input.float(title='Risk:Reward', step=0.1, defval=2.0, group="Trade settings")
endOfDay = input.int(defval=1500, title="Close all trades, default is 3:00 PM, 1500 hours (integer)", group="Trade settings")
mktAlwaysOn = input.bool(defval=true, title="Markets that never closed (Crypto, Forex, Commodity)", tooltip="Some markers never closes. For those cases, make this checked.", group="Trade settings")
lotSize = input.int(title='Lot Size', step=1, defval=1, group="Trade settings")
// Utils
green(open, close) => close > open ? true : false
red(open, close) => close < open ? true : false
body(open, close) => math.abs(open - close)
lowerwick = green(open, close) ? open - low : close - low
upperwick = green(open, close) ? high - close : high - open
crange = high - low
crangep = high[1] - low[1] // previous candle's candle-range
bullish = close > open ? true : false
bearish = close < open ? true : false
// Trade signals
longCond = barstate.isconfirmed and (open == low)
shortCond = barstate.isconfirmed and (open == high)
// For SL calculation
atr = ta.atr(slAtrLen)
highestHigh = ta.highest(high, 7)
lowestLow = ta.lowest(low, 7)
longStop = showSLLines ? lowestLow - (atr * 1) : na
shortStop = showSLLines ? highestHigh + (atr * 1) : na
plot(longStop, title="Buy SL", color=color.green, style=plot.style_cross)
plot(shortStop, title="Sell SL", color=color.red, style=plot.style_cross)
// Trade execute
h = hour(time('1'), syminfo.timezone)
m = minute(time('1'), syminfo.timezone)
hourVal = h * 100 + m
totalTrades = strategy.opentrades + strategy.closedtrades
if (mktAlwaysOn or (hourVal < endOfDay))
// Entry
var float sl = na
var float target = na
if (longCond)
strategy.entry("enter long", strategy.long, lotSize, limit=na, stop=na, comment="Enter Long")
sl := longStop
target := close + ((close - longStop) * rrRatio)
alert('Buy:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)
if (shortCond)
strategy.entry("enter short", strategy.short, lotSize, limit=na, stop=na, comment="Enter Short")
sl := shortStop
target := close - ((shortStop - close) * rrRatio)
alert('Sell:' + syminfo.ticker + ' ,SL:' + str.tostring(math.floor(sl)) + ', Target:' + str.tostring(target), alert.freq_once_per_bar)
// Exit: target or SL
if ((close >= target) or (close <= sl))
strategy.close("enter long", comment=close < sl ? "Long SL hit" : "Long target hit")
if ((close <= target) or (close >= sl))
strategy.close("enter short", comment=close > sl ? "Short SL hit" : "Short target hit")
else if (not mktAlwaysOn)
// Close all open position at the end if Day
strategy.close_all(comment = "Close all entries at end of day.")