کھلے اعلی کم سٹاپ نقصان ٹریکنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-18 14:30:08
ٹیگز:

img

جائزہ

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

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

اس حکمت عملی کے اندراج کے سگنل کھلی ، اعلی اور کم قیمتوں سے آتے ہیں۔ جب کھلنے والی قیمت شمعدان کی کم قیمت کے برابر ہوتی ہے تو خرید کا سگنل تیار کیا جاتا ہے ، اور جب کھلنے والی قیمت اعلی کے برابر ہوتی ہے تو فروخت کا سگنل تیار کیا جاتا ہے ، جس سے ممکنہ رجحان کی تبدیلی کے مواقع کی نشاندہی ہوتی ہے۔

اندراج کے بعد ، متحرک ٹریلنگ اسٹاپ نقصان کا حساب اے ٹی آر اشارے کی بنیاد پر کیا جاتا ہے۔ لانگ اسٹاپ نقصان حالیہ این بارز مائنس 1 اے ٹی آر کی سب سے کم کم سطح پر مقرر کیا جاتا ہے۔ مختصر اسٹاپ نقصان حالیہ این بارز کے علاوہ 1 اے ٹی آر کی سب سے زیادہ سطح پر مقرر کیا جاتا ہے۔ اسٹاپ نقصان کی لائن متحرک طور پر ٹریل قیمت کی نقل و حرکت کو اپ ڈیٹ کرے گی۔

منافع کے اہداف کا حساب خطرے اور منافع کے تناسب کی بنیاد پر کیا جاتا ہے۔ طویل ہدف داخلہ قیمت کے علاوہ مقرر کیا جاتا ہے (اندراج کی قیمت اور اسٹاپ نقصان کے درمیان خطرہ کا فرق خطرے اور منافع کے تناسب سے ضرب کیا جاتا ہے) ۔ مختصر ہدف داخلہ قیمت مائنس میں مقرر کیا جاتا ہے (اسٹاپ نقصان اور داخلہ قیمت کے درمیان خطرہ کا فرق خطرہ اور منافع کے تناسب سے ضرب کیا جاتا ہے) ۔

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

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

اس حکمت عملی کے فوائد میں شامل ہیں:

  1. سادہ اور واضح داخلہ سگنل، متعدد whipsaws سے بچنے.

  2. متحرک اے ٹی آر ٹریلنگ سٹاپ منافع میں تالا لگاتا ہے اور اونچائیوں اور نچلی سطحوں کا پیچھا کرنے سے روکتا ہے۔

  3. خطرے اور منافع کے تناسب پر قابو پانے سے منافع کو میز پر چھوڑنے اور زیادہ تجارت سے بچنے سے بچتا ہے۔

  4. مختلف مصنوعات پر لاگو، بہتر بنانے کے لئے آسان.

خطرے کا تجزیہ

اس حکمت عملی کے کچھ خطرات بھی ہیں:

  1. انٹری سگنل کسی حد تک پیچھے رہ سکتے ہیں ، بہترین مارکیٹ انٹری کو یاد کرتے ہیں۔

  2. سٹاپ نقصان بہت تنگ یا بہت لچکدار، غیر ضروری سٹاپ نقصان یا کھو منافع کا سبب بنتا ہے.

  3. کوئی رجحان کا تعین نہیں، مختلف مارکیٹوں میں پھنس جانے کا امکان ہے.

  4. رات بھر کی پوزیشنوں کو سنبھالنے کے قابل نہیں.

اصلاح کی سمتیں یہ ہیں:

  1. وِپساؤ سے بچنے کے لیے رجحان کے تعصب کے لیے دیگر اشارے شامل کریں۔

  2. بہتر سٹاپ نقصان کے لئے ATR پیرامیٹرز کو ٹھیک کریں یا اتار چڑھاؤ کنٹرول شامل کریں.

  3. سگنل شور کو کم کرنے کے لئے رجحان فلٹرنگ شامل کریں.

  4. کچھ مصنوعات کے لئے راتوں رات پوزیشن ہینڈلنگ شامل کریں.

نتیجہ

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


/*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.")



مزید