
تین اشاریہ اوسط لائن اسٹاپ نقصان کی حکمت عملی ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جس میں تین مختلف ادوار کی اشاریہ منتقل اوسط پر مبنی مارکیٹ میں داخلے اور باہر نکلنے کی حکمت عملی ہے۔ اس میں ایک ہی وقت میں اوسط حقیقی طول موج کے اشارے کا استعمال کرتے ہوئے اسٹاپ نقصان کی حد طے کی گئی ہے ، جس سے خطرے کا انتظام ہوتا ہے۔
یہ حکمت عملی تین اشاریہ منتقل اوسط کا استعمال کرتی ہے: تیز لائن ، درمیانی لائن ، اور سست لائن۔ جب درمیانی لائن پر سست لائن سے گزرتا ہے تو زیادہ کام کرتا ہے۔ جب تیز لائن کے نیچے درمیانی لائن سے گزرتا ہے تو ہموار۔ یہ ایک عام رجحان کی پیروی کی حکمت عملی ہے ، جس میں تین یکساں لائنوں کے متعدد خلائی تبادلوں سے رجحان کی سمت کا فیصلہ کیا جاتا ہے۔
اس کے علاوہ ، اس حکمت عملی نے اوسطا حقیقی طول و عرض کے اشارے کا استعمال کرتے ہوئے اسٹاپ اسٹاپ نقصان کا حساب لگایا ہے۔ خاص طور پر ، ایک سے زیادہ اسٹاپ اسٹاپ قیمت + اوسطا حقیقی طول و عرض کے لئے ہے۔*اسٹاپ اسٹیجنگ فیکٹر؛ خالی اسٹاپ اسٹیجنگ لاگ ان قیمت - اوسط حقیقی طول و عرض*روکنے کا عنصر۔ سٹاپ نقصان کا اصول روکنے کے مشابہ ہے۔ یہ ایک طرفہ خطرے کو مؤثر طریقے سے محدود کرسکتا ہے۔
خطرے سے نمٹنے کے اقدامات میں شامل ہیں: اوسط سائیکل کو مناسب طریقے سے کم کرنا ، اسٹاپ اسٹاپ نقصان کے فیکٹر کو بہتر بنانا ، اور فیصلے میں معاون ہونے کے لئے دوسرے اشارے شامل کرنا۔
یہ حکمت عملی مجموعی طور پر ایک مستحکم اثر والی رجحان کی پیروی کرنے والی حکمت عملی ہے ، جس میں پیرامیٹرز کی ترتیب آسان ہے ، اور اسے آسانی سے نافذ کیا جاسکتا ہے۔ متحرک اسٹاپ نقصان کو اوسط حقیقی طول موج کی طرف سے محدود کیا جاسکتا ہے۔ تاہم ، پیرامیٹرز کی اصلاح اور اشارے کے مجموعے پر توجہ دینے کی ضرورت ہے ، تاکہ زیادہ سے زیادہ اصلاح اور فیصلے میں تاخیر سے بچا جاسکے۔ مجموعی طور پر ، اس میں ایک اچھا خطرہ منافع توازن ہے ، جس پر غور کرنے کے قابل ہے۔
/*backtest
start: 2024-01-04 00:00:00
end: 2024-02-03 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//© Densz
strategy("3EMA with TP & SL (ATR)", overlay=true )
// INPUTS
startTime = input(title="Start Time", type = input.time, defval = timestamp("01 Jan 2017 00:00 +0000"))
endTime = input(title="End Time", type = input.time, defval = timestamp("01 Jan 2022 00:00 +0000"))
slowEMALength = input(title="Slow EMA Length", type = input.integer, defval = 55)
middleEMALength = input(title="Middle EMA Length", type = input.integer, defval = 21)
fastEMALength = input(title="Fast EMA Length", type = input.integer, defval = 9)
trendMALength = input(title="Trend indicator MA Length", type = input.integer, defval = 200)
atrLength = input(title="ATR Length", type = input.integer, defval = 14)
tpATRMult = input(title="Take profit ATR multiplier", type = input.integer, defval = 3)
slATRMult = input(title="Stop loss ATR multiplier", type = input.integer, defval = 2)
rsiLength = input(title="RSI Length", type = input.integer, defval = 14)
// Indicators
slowEMA = ema(close, slowEMALength)
middEMA = ema(close, middleEMALength)
fastEMA = ema(close, fastEMALength)
atr = atr(atrLength)
rsiValue = rsi(close, rsiLength)
isRsiOB = rsiValue >= 80
isRsiOS = rsiValue <= 20
sma200 = sma(close, trendMALength)
inDateRange = true
// Plotting
plot(slowEMA, title="Slow EMA", color=color.red, linewidth=2, transp=50)
plot(middEMA, title="Middle EMA", color=color.orange, linewidth=2, transp=50)
plot(fastEMA, title="Fast EMA", color=color.green, linewidth=2, transp=50)
plot(sma200, title="SMA Trend indicator", color=color.purple, linewidth=3, transp=10)
plotshape(isRsiOB, title="Overbought", location=location.abovebar, color=color.red, transp=0, style=shape.triangledown, text="OB")
plotshape(isRsiOS, title="Oversold", location=location.belowbar, color=color.green, transp=0, style=shape.triangledown, text="OS")
float takeprofit = na
float stoploss = na
var line tpline = na
var line slline = na
if strategy.position_size != 0
takeprofit := takeprofit[1]
stoploss := stoploss[1]
line.set_x2(tpline, bar_index)
line.set_x2(slline, bar_index)
line.set_extend(tpline, extend.none)
line.set_extend(slline, extend.none)
// STRATEGY
goLong = crossover(middEMA, slowEMA) and inDateRange
closeLong = crossunder(fastEMA, middEMA) and inDateRange
if goLong
takeprofit := close + atr * tpATRMult
stoploss := close - atr * slATRMult
// tpline := line.new(bar_index, takeprofit, bar_index, takeprofit, color=color.green, width=2, extend=extend.right, style=line.style_dotted)
// slline := line.new(bar_index, stoploss, bar_index, stoploss, color=color.red, width=2, extend=extend.right, style=line.style_dotted)
// label.new(bar_index, takeprofit, "TP", style=label.style_labeldown)
// label.new(bar_index, stoploss, "SL", style=label.style_labelup)
strategy.entry("Long", strategy.long, when = goLong)
strategy.exit("TP/SL", "Long", stop=stoploss, limit=takeprofit)
if closeLong
takeprofit := na
stoploss := na
strategy.close(id = "Long", when = closeLong)
if (not inDateRange)
strategy.close_all()