JMA اشارے کراس اوور RSI اشارے تجارتی حکمت عملی


تخلیق کی تاریخ: 2023-09-18 21:42:50 آخر میں ترمیم کریں: 2023-09-18 21:42:50
کاپی: 0 کلکس کی تعداد: 1340
1
پر توجہ دیں
1617
پیروکار

جائزہ

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

اصول

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

  1. جے ایم اے اشارے: قیمتوں میں تبدیلیوں کو زیادہ تیزی سے پکڑنے کے لئے کم تاخیر کے ساتھ ایک سلنڈر کے ساتھ ایک ہموار حرکت پذیر اوسط۔

  2. RSI اشارے: زیادہ عام طاقت اور کمزوری کے اشارے ، جو مارکیٹ کی خرید و فروخت کی طاقت کی عکاسی کرتے ہیں۔

جب جے ایم اے پر آر ایس آئی ٹوٹ جاتا ہے تو ، اس کا مطلب یہ ہے کہ قلیل مدتی قیمتوں میں اضافے کی رفتار طویل مدتی رجحان سے زیادہ ہے ، جس سے خریدنے کا اشارہ ملتا ہے۔ جب جے ایم اے پر آر ایس آئی ٹوٹ جاتا ہے تو ، اس سے خالی ہونے کا اشارہ ملتا ہے۔

کراس سگنل جاری ہونے کے بعد ، تجارت کا مقابلہ کرنے والی سمت میں پوزیشن کھولی جاتی ہے۔ قیمتوں میں طے شدہ ہدف تناسب سے زیادہ ہونے یا اشارے کو دوبارہ کراس ریورس کرنے کے لئے بیعانہ کی شرائط۔

فوائد

  1. JMA اشارے پیرامیٹرز سایڈست ہیں اور مختلف ادوار کے لئے بہتر بنانے کے قابل ہیں۔

  2. RSI اشارے جعلی توڑ فلٹر کر سکتے ہیں.

  3. ڈبل اشارے کا مجموعہ غلط سگنل کو کم کرنے کے لئے استعمال کیا جاتا ہے۔

  4. بلٹ میں سٹاپ نقصان کا طریقہ کار ، جو نقصان کو محدود کرتا ہے۔

  5. اپنی مرضی کے مطابق منافع کا تناسب ، منافع کے اہداف کو پورا کریں۔

خطرات اور حل

  1. ڈبل اشارے مجموعہ inating، سگنل کی پیداوار کی تعدد بہت کم ہو سکتا ہے. اس کے پیرامیٹرز کو ایڈجسٹ کر سکتے ہیں، اشارے زیادہ حساس بنانے کے لئے.

  2. جی ایم اے اشارے میں بھی تاخیر کا مسئلہ ہے ، قیمتوں میں تبدیلی کا نقطہ نظر نظر سے محروم ہوسکتا ہے۔ اس کو دیگر رہنمائی اشارے کے ساتھ مل کر بہتر بنایا جاسکتا ہے۔

  3. اسٹاپ نقصان کی غلط ترتیب کو توڑ دیا جاسکتا ہے جس کی وجہ سے نقصانات میں اضافہ ہوتا ہے۔ مناسب اسٹاپ نقصان کی سطح کا تعین تاریخی اعداد و شمار کی جانچ کے مطابق کیا جانا چاہئے۔

  4. صرف اشارے پر انحصار کرنے سے جعلی سگنل پیدا ہونے کا خدشہ ہوتا ہے۔ آپ ٹریڈ حجم یا اتار چڑھاؤ کی شرح کے اشارے کو فلٹر کرسکتے ہیں۔

آپٹمائزیشن

  1. جے ایم اے پیرامیٹرز کو جانچنے کے لئے بہترین پیرامیٹرز کا مجموعہ تلاش کریں۔

  2. مختلف آر ایس آئی پیرامیٹرز کی ترتیب کی کوشش کریں ، اشارے کے اثر کو بہتر بنائیں۔

  3. موبائل سٹاپ نقصان کے نظام کو شامل کرنے کے لئے، سٹاپ نقصان کو زیادہ لچکدار بنانے کے لئے.

  4. گودام کھولنے کے لئے گودام کے انتظام کے منطق کو بہتر بنائیں ، جیسے گودام میں اضافے اور بیچوں میں گودام کی تعمیر کی شرائط شامل کریں۔

  5. فلٹر سگنل کے دیگر اشارے جیسے KD، MACD وغیرہ کا مطالعہ کریں۔

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-01-01 00:00:00
end: 2023-03-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// Stratégie marche le mieux sur du 2 jours
strategy("JMA(7,50,RSI) crossing RSI(14,close)", overlay=false, currency=currency.EUR, default_qty_type=strategy.cash, default_qty_value=5000)

// Strategy Tester Start Time
sYear = input(2019, title = "Start Year")
sMonth = input(06, title = "Start Month", minval = 01, maxval = 12)
sDay = input(01, title = "Start Day", minval = 01, maxval = 31)
sHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
sMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = true

// Strategy Tester End Time
eYear = input(2019, title = "End Year")
eMonth = input(12, title = "End Month", minval = 01, maxval = 12)
eDay = input(01, title = "End Day", minval = 01, maxval = 31)
eHour = input(00, title = "End Hour", minval = 00, maxval = 23)
eMinute = input(00, title = "End Minute", minval = 00, maxval = 59)
endTime = true

// === RSI ===
src = close, len = input(14, minval=1, title="Length")
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
plot(rsi, color=color.purple)
band1 = hline(70)
band0 = hline(30)

// === JMA ===
_length = input(7, title="Length")
_phase = input(50, title="Phase")
_power = input(2, title="Power")
highlightMovements = input(true, title="Highlight Movements ?")

// srcJMA = input(rsi, title="Source")
srcJMA = rsi

phaseRatio = _phase < -100 ? 0.5 : _phase > 100 ? 2.5 : _phase / 100 + 1.5
beta = 0.45 * (_length - 1) / (0.45 * (_length - 1) + 2)
alpha = pow(beta, _power)
jma = 0.0
e0 = 0.0
e0 := (1 - alpha) * srcJMA + alpha * nz(e0[1])
e1 = 0.0
e1 := (srcJMA - e0) * (1 - beta) + beta * nz(e1[1])
e2 = 0.0
e2 := (e0 + phaseRatio * e1 - nz(jma[1])) * pow(1 - alpha, 2) + pow(alpha, 2) * nz(e2[1])
jma := e2 + nz(jma[1])
// === End of JMA def ===

jmaColor = highlightMovements ? (jma > jma[1] ? color.green : color.red) : #6d1e7f
plot(jma, title="JMA switch", linewidth=2, color=jmaColor, transp=0)

// === Inputs ===
// risk management
useStop = input(true, title = "Use Initial Stop Loss?")

goLong() => crossover(rsi, jma)
killLong() => crossunder(rsi, jma)

// ======= DEBUGGGGGGGG ============
long_price = 0.0
short_price = 0.0

if(startTime and endTime)
    if(goLong())
        long_price := close
    strategy.entry("Buy", strategy.long, when = goLong())
    strategy.close("Buy", when = killLong() and close > long_price)

// Shorting if using
goShort() => killLong()
killShort() => goLong()

if(startTime and endTime)
    if(goShort())
        short_price := close
    strategy.entry("Sell", strategy.short, when = goShort() and close < short_price)
    strategy.close("Sell", when = killShort())
// =========================

if (useStop)
    strategy.exit("XLS", from_entry ="Buy", stop = strategy.position_avg_price / 1.08)
    strategy.exit("XSS", from_entry ="Sell", stop = strategy.position_avg_price * 1.08)