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