
یہ حکمت عملی ایک ٹرینڈ ٹریکنگ حکمت عملی ہے جس میں ٹریڈ سگنل پیدا کرنے کے لئے ٹرپل انڈیکس منتقل اوسط اشارے اور بے ترتیب انڈیکس ہموار منتقل اوسط اشارے کا امتزاج کیا گیا ہے۔ جب تیز رفتار حرکت پذیر اوسط پر تیز رفتار حرکت پذیر اوسط سے گزرتا ہے تو ، تیز رفتار حرکت پذیر اوسط پر تیز رفتار حرکت پذیر اوسط سے گزرتا ہے اور جب تیز رفتار حرکت پذیر اوسط کے نیچے تیز رفتار حرکت پذیر اوسط سے گزرتا ہے تو ، اس حکمت عملی میں بے ترتیب انڈیکس ہموار حرکت پذیر اوسط اشارے بھی شامل ہیں۔
8 ، 14 اور 50 دن کی ٹرپل اشاریہ حرکت پذیر اوسط کا استعمال کریں۔ جب 14 دن کی اشاریہ حرکت پذیر اوسط پر 8 دن کی اشاریہ حرکت پذیر اوسط کا استعمال کیا جاتا ہے تو ، 14 دن کی اشاریہ حرکت پذیر اوسط پر 50 دن کی اشاریہ حرکت پذیر اوسط کا استعمال کرتے ہوئے ایک زیادہ نظر آنے والا سگنل پیدا ہوتا ہے۔ اس کے برعکس ، ایک نظر انداز سگنل۔
اسٹوچاسٹک آر ایس آئی کو بطور معاون فیصلہ کرنے والا اشارے استعمال کریں۔ خاص طور پر: پہلے 14 دن کے آر ایس آئی کا حساب لگائیں ، پھر آر ایس آئی اشارے کی بنیاد پر اسٹوچاسٹک اشارے کا حساب لگائیں ، اور آخر میں اسٹوچاسٹک اشارے کے حساب سے 3 دن کی سادہ حرکت پذیر اوسط حاصل کریں K لائن اور 3 دن کی سادہ حرکت پذیر اوسط حاصل کریں D لائن۔ جب K لائن پر D لائن سے گزرے تو ، بطور معاون سگنل زیادہ دیکھیں۔
جب ٹریڈنگ سگنل پیدا ہوتا ہے تو ، اگر قیمت 8 ویں دن کی انڈیکس کی حرکت پذیری اوسط سے زیادہ ہے تو ، اس میں داخلہ لیا جاتا ہے۔ اگر قیمت 8 ویں دن کی انڈیکس کی حرکت پذیری اوسط سے کم ہے تو ، اس میں داخلہ لیا جاتا ہے۔
اسٹاپ نقصان داخلہ قیمت کے نیچے / اوپر 1x اے ٹی آر فاصلے پر ہے۔ اسٹاپ بندش داخلہ قیمت کے اوپر / نیچے 4x اے ٹی آر فاصلے پر ہے۔
متحرک اوسط ایک بنیادی اشارے کے طور پر ، مارکیٹ کے رجحانات کو مؤثر طریقے سے ٹریک کرسکتا ہے۔ ٹرپل انڈیکس متحرک اوسط متعدد ادوار کے مجموعے کے ذریعہ استعمال کیا جاتا ہے ، جو ایک ہی وقت میں قلیل اور درمیانی اور طویل مدتی رجحانات کی حساسیت کو یقینی بناتا ہے۔
اسٹوکاسٹک آر ایس آئی کو ایک معاون فیصلہ کن اشارے کے طور پر شامل کرنا ، جعلی سگنل کو فلٹر کرنے اور داخلے کی درستگی کو بہتر بنانے کے لئے۔
اے ٹی آر کے مطابق اسٹاپ نقصان کی روک تھام کی پوزیشن کو ترتیب دیں ، جس سے مارکیٹ میں اتار چڑھاؤ کی سطح کو متحرک طور پر ٹریک کیا جاسکے ، اور اس سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے سے بچنے
اس حکمت عملی کے پیرامیٹرز کی ترتیب معقول ہے اور بڑے رجحان کے تحت بہترین کارکردگی کا مظاہرہ کرتی ہے۔ چھوٹی واپسی ، مستحکم منافع ، لمبی لائن آپریشن کے لئے موزوں ہے۔
ایک سے زیادہ اشارے کے جوڑے کی حکمت عملی میں الٹ جانے کا خطرہ بڑھ جاتا ہے۔ جب ایک متحرک اوسط اور اسٹوکاسٹک آر ایس آئی مخالف سگنل دیتے ہیں تو ، تجارتی سگنل کی غلطی ہوسکتی ہے۔ اس وقت قیمت کی رجحانات پر توجہ دینے کی ضرورت ہے۔
اسٹاپ نقصان اور اسٹاپ کی ترتیبات زیادہ محتاط ہیں ، اور مارکیٹ میں شدید اتار چڑھاؤ کے دوران اس کو توڑ دیا جاسکتا ہے اور اس طرح اس کو روک دیا جاسکتا ہے ، جس سے رجحان کے مواقع ضائع ہوجاتے ہیں۔ اس وقت اے ٹی آر پیرامیٹرز کو مناسب طریقے سے ایڈجسٹ کیا جاسکتا ہے یا اسٹاپ نقصان اسٹاپ کے ضرب کو بڑھا دیا جاسکتا ہے۔
ٹرپل منتقل اوسط کے استعمال کی وجہ سے ، جب تیز رفتار لائن اور درمیانی رفتار لائن الٹ جاتی ہے تو ، کچھ تاخیر ہوتی ہے۔ اس وقت یہ دیکھنا ضروری ہے کہ آیا قیمت خود ہی الٹ گئی ہے یا نہیں اس کا فیصلہ کرنے کے لئے۔
یہ حکمت عملی بنیادی طور پر رجحان سازی کے حالات کے لئے موزوں ہے ، جس میں اس کی کارکردگی بہتر نہیں ہوتی ہے۔ اس وقت آپ کو متحرک اوسط کی مدت کے پیرامیٹرز کو بہتر بنانے یا دوسرے فیصلہ کن اشارے استعمال کرنے پر غور کرنا چاہئے۔
MACD جیسے دیگر اشارے شامل کرنے پر غور کیا جاسکتا ہے تاکہ داخلے کے وقت کو مزید بہتر بنایا جاسکے۔ مختلف پیرامیٹرز کے ساتھ چلتی اوسط کے مجموعے کی جانچ بھی کی جاسکتی ہے۔
اے ٹی آر کی زیادہ جانچ پڑتال کے پیرامیٹرز کو بہتر بنایا جاسکتا ہے۔ مثال کے طور پر ، اسٹاپ نقصان کو 1 اے ٹی آر سے 1.5 اے ٹی آر میں ایڈجسٹ کریں ، اور اسٹاپ کو 4 اے ٹی آر سے 3 اے ٹی آر میں ایڈجسٹ کریں ، تاکہ بہتر منافع حاصل کیا جاسکے۔
صرف متحرک اوسط کے ساتھ ٹیسٹ کیا جاسکتا ہے ، اسٹوکاسٹک آر ایس آئی کے اشارے کو ہٹا دیں ، اور دیکھیں کہ کیا زیادہ شور کو فلٹر کیا جاسکتا ہے تاکہ زیادہ مستحکم منافع حاصل کیا جاسکے۔
رجحانات کا تعین کرنے کے لئے مزید شرائط شامل کرنے پر غور کیا جاسکتا ہے ، جیسے تجارت کے حجم کے اشارے میں اضافہ کرنا تاکہ بڑے پیمانے پر رجحانات میں کام کیا جاسکے۔
اس حکمت عملی میں ٹریپل انڈیکس منتقل اوسط اور اسٹوکاسٹک آر ایس آئی اشارے کا مجموعی استعمال کیا گیا ہے تاکہ اس رجحان کی سمت کا تعین کیا جاسکے۔ انٹری سگنل سخت ہیں ، اور اس سے بے معنی تجارت کو مؤثر طریقے سے کم کیا جاسکتا ہے۔ اسٹاپ اسٹاپ نقصان کی ترتیب متحرک طور پر اے ٹی آر کی پیروی کرتی ہے ، جس سے حکمت عملی کے پیرامیٹرز کو خود بخود قابل اطلاق بنایا جاسکتا ہے۔ اس حکمت عملی نے رجحان کے حالات میں عمدہ کارکردگی کا مظاہرہ کیا ، اس میں چھوٹی چھوٹی واپسی ہوئی ، اور اس کی واپسی مستحکم ہے۔ مزید اصلاح کے ساتھ ، اس سے بہتر نتائج کی امید ہے۔
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// 3ESRA
// v0.2a
// Coded by Vaida Bogdan
// 3ESRA consists of a 3 EMA cross + a close above (for longs) the quickest EMA
// or below (for shorts). Note that I've deactivated the RSI Cross Over/Under
// (you can modify the code and activate it). The strategy also uses a stop loss
// that's at 1 ATR distance from the entry price and a take profit that's at
// 4 times the ATR distance from the entry price.
// Feedback:
// Tested BTCUSDT Daily
// 1. Stoch-RSI makes you miss opportunities.
// 2. Changing RR to 4:1 times ATR works better.
//@version=4
strategy(title="3 EMA + Stochastic RSI + ATR", shorttitle="3ESRA", overlay=true, pyramiding=1,
process_orders_on_close=true, calc_on_every_tick=true,
initial_capital=1000, currency = currency.USD, default_qty_value=10,
default_qty_type=strategy.percent_of_equity,
commission_type=strategy.commission.percent, commission_value=0.1, slippage=2)
startDate = input(title="Start Date", type=input.integer,
defval=1, minval=1, maxval=31, group="Backtesting range")
startMonth = input(title="Start Month", type=input.integer,
defval=1, minval=1, maxval=12, group="Backtesting range")
startYear = input(title="Start Year", type=input.integer,
defval=1900, minval=1800, maxval=2100, group="Backtesting range")
endDate = input(title="End Date", type=input.integer,
defval=1, minval=1, maxval=31, group="Backtesting range")
endMonth = input(title="End Month", type=input.integer,
defval=1, minval=1, maxval=12, group="Backtesting range")
endYear = input(title="End Year", type=input.integer,
defval=2040, minval=1800, maxval=2100, group="Backtesting range")
// Date range filtering
inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and
(time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 23, 59))
fast = input(8, minval=8, title="Fast EMA", group="EMAs")
medium = input(14, minval=8, title="Medium EMA", group="EMAs")
slow = input(50, minval=8, title="Slow EMA", group="EMAs")
src = input(close, title="Source")
smoothK = input(3, "K", minval=1, group="Stoch-RSI", inline="K&D")
smoothD = input(3, "D", minval=1, group="Stoch-RSI", inline="K&D")
lengthRSI = input(14, "RSI Length", minval=1, group="Stoch-RSI", inline="length")
lengthStoch = input(14, "Stochastic Length", minval=1, group="Stoch-RSI", inline="length")
rsiSrc = input(close, title="RSI Source", group="Stoch-RSI")
length = input(title="Length", defval=14, minval=1, group="ATR")
smoothing = input(title="Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"], group="ATR")
// EMAs
fastema = ema(src, fast)
mediumema = ema(src, medium)
slowema = ema(src, slow)
// S-RSI
rsi1 = rsi(rsiSrc, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)
sRsiCrossOver = k[1] < d[1] and k > d
sRsiCrossUnder = k[1] > d[1] and k < d
// ATR
ma_function(source, length) =>
if smoothing == "RMA"
rma(source, length)
else
if smoothing == "SMA"
sma(source, length)
else
if smoothing == "EMA"
ema(source, length)
else
wma(source, length)
atr = ma_function(tr(true), length)
// Trading Logic
longCond1 = (fastema > mediumema) and (mediumema > slowema)
longCond2 = true
// longCond2 = sRsiCrossOver
longCond3 = close > fastema
longCond4 = strategy.position_size <= 0
longCond = longCond1 and longCond2 and longCond3 and longCond4 and inDateRange
shortCond1 = (fastema < mediumema) and (mediumema < slowema)
shortCond2 = true
// shortCond2 = sRsiCrossUnder
shortCond3 = close < fastema
shortCond4 = strategy.position_size >= 0
shortCond = shortCond1 and shortCond2 and shortCond3 and shortCond4 and inDateRange
var takeProfit = float(na), var stopLoss = float(na)
if longCond and strategy.position_size <= 0
takeProfit := close + 4*atr
stopLoss := close - 1*atr
// takeProfit := close + 2*atr
// stopLoss := close - 3*atr
else if shortCond and strategy.position_size >= 0
takeProfit := close - 4*atr
stopLoss := close + 1*atr
// takeProfit := close - 2*atr
// stopLoss := close + 3*atr
// Strategy calls
strategy.entry("3ESRA", strategy.long, comment="Long", when=longCond and strategy.position_size <= 0)
strategy.entry("3ESRA", strategy.short, comment="Short", when=shortCond and strategy.position_size >= 0)
strategy.exit(id="TP-SL", from_entry="3ESRA", limit=takeProfit, stop=stopLoss)
if (not inDateRange)
strategy.close_all()
// Plot EMAs
plot(fastema, color=color.purple, linewidth=2, title="Fast EMA")
plot(mediumema, color=color.teal, linewidth=2, title="Medium EMA")
plot(slowema, color=color.yellow, linewidth=2, title="Slow EMA")
// Plot S-RSI
// plotshape((strategy.position_size > 0) ? na : sRsiCrossOver, title="StochRSI Cross Over", style=shape.triangleup, location=location.belowbar, color=color.teal, text="SRSI", size=size.small)
// Plot trade
bgcolor(strategy.position_size > 0 ? color.new(color.green, 75) : strategy.position_size < 0 ? color.new(color.red,75) : color(na))
// Plot Strategy
plot((strategy.position_size != 0) ? takeProfit : na, style=plot.style_linebr, color=color.green, title="TP")
plot((strategy.position_size != 0) ? stopLoss : na, style=plot.style_linebr, color=color.red, title="SL")