یہ ایک رجحان کی پیروی کرنے والی حکمت عملی ہے جو ٹریڈنگ سگنل پیدا کرنے کے لئے ٹرپل ایکسپونینشیل موونگ ایوریج (ای ایم اے) اور اسٹوکاسٹک رشتہ دار طاقت انڈیکس (اسٹوک آر ایس آئی) کو جوڑتی ہے۔ جب تیز ای ایم اے درمیانے ای ایم اے سے تجاوز کرتا ہے اور درمیانے ای ایم اے سست ای ایم اے سے تجاوز کرتا ہے تو یہ طویل ہوجاتا ہے۔ جب اس کے برعکس ہوتا ہے تو یہ مختصر ہوجاتا ہے۔ حکمت عملی اسٹوک آر ایس آئی کو ایک معاون اشارے کے طور پر بھی استعمال کرتی ہے۔
8، 14، 50 دن کے ای ایم اے استعمال کریں۔ جب 8 دن کا ای ایم اے > 14 دن کا ای ایم اے > 50 دن کا ای ایم اے ہو۔ جب اس کے برعکس ہو تو مختصر جانا۔
اسٹوکاسٹک آر ایس آئی کو معاون اشارے کے طور پر استعمال کریں۔ پہلے 14 دن کے آر ایس آئی کا حساب لگائیں ، پھر آر ایس آئی پر اسٹوکاسٹک کا حساب لگائیں ، آخر میں 3 دن کے ایس ایم اے کو K لائن کے طور پر اور 3 دن کے ایس ایم اے کو K لائن پر D لائن کے طور پر حساب لگائیں۔ D پر K کراسنگ طویل سگنل دیتا ہے۔
طویل سگنل پر > 8 دن کی EMA بند ہونے پر طویل تجارت درج کریں۔ مختصر سگنل پر < 8 دن کی EMA بند ہونے پر مختصر تجارت درج کریں۔
سٹاپ نقصان 1 ATR دوری پر داخلہ قیمت سے نیچے/اوپر مقرر کیا جاتا ہے۔ منافع حاصل کرنے کے لئے 4 ATR دوری پر داخلہ قیمت سے اوپر/اوپر مقرر کیا جاتا ہے۔
ای ایم اے بطور بنیادی اشارے رجحانات کو مؤثر طریقے سے ٹریک کرسکتا ہے۔ ٹرپل ای ایم اے متعدد ادوار کو چھانٹ کر قلیل مدتی اور طویل مدتی رجحانات دونوں کو پکڑتا ہے۔
اسٹاک آر ایس آئی شامل کرنے سے غلط سگنل فلٹر ہوسکتے ہیں اور اندراج کی درستگی میں اضافہ ہوسکتا ہے۔
اے ٹی آر کی بنیاد پر سٹاپ نقصان اور منافع لے سکتے ہیں متحرک طور پر مارکیٹ کی اتار چڑھاؤ کو ٹریک کریں، غلط جگہ سے بچنے.
اس حکمت عملی میں پیرامیٹرز کو اچھی طرح سے ایڈجسٹ کیا گیا ہے اور رجحانات کے ادوار کے دوران بہت اچھا کارکردگی کا مظاہرہ کرتا ہے۔ طویل مدتی تجارت کے لئے کم اور منافع مستقل ہے۔
متعدد اشارے کا امتزاج وپسا کے خطرے کو بڑھاتا ہے۔ ای ایم اے اور اسٹاک آر ایس آئی کے مابین متضاد سگنل خراب سطحوں پر داخل ہونے کا سبب بن سکتے ہیں۔ قیمتوں کے رجحان کو خود ہی اس طرح کے معاملات میں نگرانی کی ضرورت ہے۔
محتاط اسٹاپ نقصان اور منافع حاصل کرنے کی ترتیبات کو مارکیٹ کے بڑے اتار چڑھاؤ سے خلاف ورزی کی جاسکتی ہے ، جس کی وجہ سے مزید رجحانات کو نظرانداز کرتے ہوئے قبل از وقت باہر نکلنے کا سبب بنتا ہے۔ اے ٹی آر پیرامیٹرز کو ایڈجسٹ کرنا یا ایس ایل / ٹی پی ضربوں کو بڑھانا مددگار ثابت ہوسکتا ہے۔
ٹرپل ای ایم اے سیٹ اپ میں تیز اور درمیانی لائنوں کے الٹ جانے پر ایک خاص تاخیر ہوتی ہے۔ اندراجات کا فیصلہ کرنے کے لئے قیمتوں کے رجحان کی خود نگرانی کی ضرورت ہے۔
یہ حکمت عملی رجحان سازی کی مارکیٹ کو فائدہ پہنچاتی ہے۔ ضمنی بازار اچھی کارکردگی کا مظاہرہ نہیں کریں گے۔ ایم اے کی مدت کو ایڈجسٹ کرنا یا دیگر معاون اشارے شامل کرنا مددگار ثابت ہوسکتا ہے۔
بہتر اندراجات کے لئے MACD جیسے اشارے شامل کریں. MAs کے مختلف ادوار کے مجموعے کی جانچ.
اے ٹی آر پر طویل / مختصر ٹیسٹنگ پیرامیٹرز کو بہتر بنانا۔ جیسے کہ اسٹاپ نقصان کو 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")