تین اشاریاتی چلتی اوسط اور اسٹوکاسٹک رشتہ دار طاقت انڈیکس ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-01-30 16:52:48
ٹیگز:

img

جائزہ

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

اصول

  1. 8، 14، 50 دن کے ای ایم اے استعمال کریں۔ جب 8 دن کا ای ایم اے > 14 دن کا ای ایم اے > 50 دن کا ای ایم اے ہو۔ جب اس کے برعکس ہو تو مختصر جانا۔

  2. اسٹوکاسٹک آر ایس آئی کو معاون اشارے کے طور پر استعمال کریں۔ پہلے 14 دن کے آر ایس آئی کا حساب لگائیں ، پھر آر ایس آئی پر اسٹوکاسٹک کا حساب لگائیں ، آخر میں 3 دن کے ایس ایم اے کو K لائن کے طور پر اور 3 دن کے ایس ایم اے کو K لائن پر D لائن کے طور پر حساب لگائیں۔ D پر K کراسنگ طویل سگنل دیتا ہے۔

  3. طویل سگنل پر > 8 دن کی EMA بند ہونے پر طویل تجارت درج کریں۔ مختصر سگنل پر < 8 دن کی EMA بند ہونے پر مختصر تجارت درج کریں۔

  4. سٹاپ نقصان 1 ATR دوری پر داخلہ قیمت سے نیچے/اوپر مقرر کیا جاتا ہے۔ منافع حاصل کرنے کے لئے 4 ATR دوری پر داخلہ قیمت سے اوپر/اوپر مقرر کیا جاتا ہے۔

طاقتیں

  1. ای ایم اے بطور بنیادی اشارے رجحانات کو مؤثر طریقے سے ٹریک کرسکتا ہے۔ ٹرپل ای ایم اے متعدد ادوار کو چھانٹ کر قلیل مدتی اور طویل مدتی رجحانات دونوں کو پکڑتا ہے۔

  2. اسٹاک آر ایس آئی شامل کرنے سے غلط سگنل فلٹر ہوسکتے ہیں اور اندراج کی درستگی میں اضافہ ہوسکتا ہے۔

  3. اے ٹی آر کی بنیاد پر سٹاپ نقصان اور منافع لے سکتے ہیں متحرک طور پر مارکیٹ کی اتار چڑھاؤ کو ٹریک کریں، غلط جگہ سے بچنے.

  4. اس حکمت عملی میں پیرامیٹرز کو اچھی طرح سے ایڈجسٹ کیا گیا ہے اور رجحانات کے ادوار کے دوران بہت اچھا کارکردگی کا مظاہرہ کرتا ہے۔ طویل مدتی تجارت کے لئے کم اور منافع مستقل ہے۔

خطرات

  1. متعدد اشارے کا امتزاج وپسا کے خطرے کو بڑھاتا ہے۔ ای ایم اے اور اسٹاک آر ایس آئی کے مابین متضاد سگنل خراب سطحوں پر داخل ہونے کا سبب بن سکتے ہیں۔ قیمتوں کے رجحان کو خود ہی اس طرح کے معاملات میں نگرانی کی ضرورت ہے۔

  2. محتاط اسٹاپ نقصان اور منافع حاصل کرنے کی ترتیبات کو مارکیٹ کے بڑے اتار چڑھاؤ سے خلاف ورزی کی جاسکتی ہے ، جس کی وجہ سے مزید رجحانات کو نظرانداز کرتے ہوئے قبل از وقت باہر نکلنے کا سبب بنتا ہے۔ اے ٹی آر پیرامیٹرز کو ایڈجسٹ کرنا یا ایس ایل / ٹی پی ضربوں کو بڑھانا مددگار ثابت ہوسکتا ہے۔

  3. ٹرپل ای ایم اے سیٹ اپ میں تیز اور درمیانی لائنوں کے الٹ جانے پر ایک خاص تاخیر ہوتی ہے۔ اندراجات کا فیصلہ کرنے کے لئے قیمتوں کے رجحان کی خود نگرانی کی ضرورت ہے۔

  4. یہ حکمت عملی رجحان سازی کی مارکیٹ کو فائدہ پہنچاتی ہے۔ ضمنی بازار اچھی کارکردگی کا مظاہرہ نہیں کریں گے۔ ایم اے کی مدت کو ایڈجسٹ کرنا یا دیگر معاون اشارے شامل کرنا مددگار ثابت ہوسکتا ہے۔

بہتری

  1. بہتر اندراجات کے لئے MACD جیسے اشارے شامل کریں. MAs کے مختلف ادوار کے مجموعے کی جانچ.

  2. اے ٹی آر پر طویل / مختصر ٹیسٹنگ پیرامیٹرز کو بہتر بنانا۔ جیسے کہ اسٹاپ نقصان کو 1 اے ٹی آر سے 1.5 اے ٹی آر میں ایڈجسٹ کرنا ، بہتر نتائج کے لئے 4 اے ٹی آر سے 3 اے ٹی آر تک منافع حاصل کریں۔

  3. اسٹاک آر ایس آئی کو ہٹانا اور شور کو فلٹر کرنے اور زیادہ مستحکم منافع کے لئے صرف ایم اے رکھنا۔

  4. رجحان کا اندازہ کرنے والے مزید معیار شامل کرنا، جیسے تجارتی حجم، اہم سطحوں کے نیچے کام کرنے کے لئے.

نتیجہ

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


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



مزید