سپر مومنٹم حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-06 09:24:02
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

یہ حکمت عملی ایورجیٹ کے 4 آر ایم آئی اشارے اور 1 چینڈے مومنٹم آسکیلیٹر کا استعمال کرتی ہے۔ آر ایم آئی تیزی اور bearish طاقت کا اندازہ کرنے کے لئے قیمت کی رفتار کی پیمائش کرتا ہے۔ چینڈے ایم او overbought اور oversold حالات کی نشاندہی کرنے کے لئے قیمت کی تبدیلی کا حساب لگاتا ہے۔

یہ طویل ہو جاتا ہے جب آر ایم آئی 5 اپنی خرید لائن سے اوپر کراس کرتا ہے، آر ایم آئی 4 اپنی خرید لائن سے نیچے کراس کرتا ہے، آر ایم آئی 3 اپنی خرید لائن سے نیچے کراس کرتا ہے، آر ایم آئی 2 اپنی خرید لائن سے نیچے کراس کرتا ہے، آر ایم آئی 1 اپنی خرید لائن سے نیچے کراس کرتا ہے، اور چینڈ ایم او اپنی خرید لائن سے اوپر کراس کرتا ہے۔

یہ مختصر ہو جاتا ہے جب RMI5 اپنی فروخت لائن سے نیچے کراس کرتا ہے، RMI4 اپنی فروخت لائن سے اوپر کراس کرتا ہے، RMI3 اپنی فروخت لائن سے اوپر کراس کرتا ہے، RMI2 اپنی فروخت لائن سے اوپر کراس کرتا ہے، RMI1 اپنی فروخت لائن سے اوپر کراس کرتا ہے، اور Chande MO اپنی فروخت لائن سے نیچے کراس کرتا ہے۔

آر ایم آئی 5 کو دیگر آر ایم آئی کے برعکس ترتیب دیا گیا ہے تاکہ پرامڈ ٹریڈنگ کے رجحانات کو بہتر طور پر پہچانا جاسکے۔

فوائد کا تجزیہ

  • متعدد اشارے کا امتزاج رجحان کی درستگی کو بہتر بناتا ہے اور جھوٹے اشاروں سے بچتا ہے

  • ٹائم فریموں میں اشارے بڑے رجحانات کو پکڑتے ہیں

  • رجحان کی نشاندہی اور پرامڈائزنگ میں ریورس آر ایم آئی امداد

  • چانڈے ایم او نے زیادہ خریدنے/زیادہ فروخت کرنے کے حالات میں خراب تجارت کو روک دیا

خطرے کا تجزیہ

  • متعدد اشارے کے ساتھ پیچیدہ پیرامیٹرز کو مکمل اصلاح کی ضرورت ہے

  • اشارے کے ساتھ ساتھ حرکتیں غلط سگنل پیدا کر سکتی ہیں

  • ایک سے زیادہ فلٹرز کے ساتھ کم تجارتی تعدد

  • پیرامیٹرز مختلف مصنوعات اور مارکیٹ کے نظام کے مطابق نہیں ہوسکتے ہیں

اصلاح کی ہدایات

  • حکمت عملی کی مضبوطی کے لئے پیرامیٹرز کی جانچ اور اصلاح

  • سگنل کی کوالٹی پر اثرات کا اندازہ کرنے کے لئے اشارے شامل کریں / ہٹا دیں

  • بعض بازاروں میں جھوٹے سگنل سے بچنے کے لئے فلٹرز متعارف کروائیں

  • بہترین مجموعہ تلاش کرنے کے لئے اشارے خرید / فروخت لائنوں کو ایڈجسٹ کریں

  • خطرہ کنٹرول کے لئے سٹاپ نقصان شامل کرنے پر غور کریں

نتیجہ

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


/*backtest
start: 2023-10-29 00:00:00
end: 2023-11-05 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="Super Momentum Strat", shorttitle="SMS", format=format.price, precision=2)

//* Backtesting Period Selector | Component *//
//* https://www.tradingview.com/script/eCC1cvxQ-Backtesting-Period-Selector-Component *//
//* https://www.tradingview.com/u/pbergden/ *//
//* Modifications made *//
testStartYear = input(2021, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(999999, "Backtest Stop Year")
testStopMonth = input(9, "Backtest Stop Month")
testStopDay = input(26, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

testPeriod() => true
/////////////// END - Backtesting Period Selector | Component ///////////////


src = input(close, "Price", type = input.source)
highlightBreakouts = input(title="Highlight Overbought/Oversold Breakouts ?", type=input.bool, defval=true)

CMOlength = input(9, minval=1, title="Alpha Chande Momentum Length")


//CMO
momm = change(src)
f1(m) => m >= 0.0 ? m : 0.0
f2(m) => m >= 0.0 ? 0.0 : -m
m1 = f1(momm)
m2 = f2(momm)
sm1 = sum(m1, CMOlength)
sm2 = sum(m2, CMOlength)
percent(nom, div) => 100 * nom / div
chandeMO = percent(sm1-sm2, sm1+sm2)+50
plot(chandeMO, "Chande MO", color=color.blue)

obLevel = input(75, title="Chande Sellline")
osLevel = input(25, title="Chande Buyline")
hline(obLevel, color=#0bc4d9)
hline(osLevel, color=#0bc4d9)




///
///RMIS 
//
// Copyright (c) 2018-present, Alex Orekhov (everget)
// Relative Momentum Index script may be freely distributed under the MIT license.
//
///
///


//RMI1
length1 = input(title="RMI1 Length", type=input.integer, minval=1, defval=8)
momentumLength1 = input(title="RMI1 Momentum ", type=input.integer, minval=1, defval=3)
up1 = rma(max(change(src, momentumLength1), 0), length1)
down1 = rma(-min(change(src, momentumLength1), 0), length1)

rmi1 = down1 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up1 / down1))

obLevel1 = input(57, title="RMI1 Sellline")
osLevel1 = input(37, title="RMI1 Buyline")

rmiColor1 = rmi1 > obLevel1 ? #0ebb23 : rmi1 < osLevel1 ? #ff0000 : #ffe173
plot(rmi1, title="RMI 1", linewidth=2, color=rmiColor1, transp=0)
hline(obLevel1, color=#0b57d9)
hline(osLevel1, color=#0b57d9)


//RMI2
length2 = input(title="RMI2 Length", type=input.integer, minval=1, defval=12)
momentumLength2 = input(title="RMI2 Momentum ", type=input.integer, minval=1, defval=3)
up2 = rma(max(change(src, momentumLength1), 0), length2)
down2 = rma(-min(change(src, momentumLength1), 0), length2)

rmi2 = down2 == 0 ? 100 : up1 == 0 ? 0 : 100 - (100 / (1 + up2 / down2))

obLevel2 = input(72, title="RMI2 Sellline")
osLevel2 = input(37, title="RMI2 Buyline")

rmiColor2 = rmi1 > obLevel1 ? #0ebb23 : rmi2 < osLevel2 ? #ff0000 : #c9ad47
plot(rmi2, title="RMI 2", linewidth=2, color=rmiColor2, transp=0)
hline(obLevel2, color=#5a0bd9)
hline(osLevel2, color=#5a0bd9)

//RMI3
length3 = input(title="RMI3 Length", type=input.integer, minval=1, defval=30)
momentumLength3 = input(title="RMI3 Momentum ", type=input.integer, minval=1, defval=53)
up3 = rma(max(change(src, momentumLength3), 0), length3)
down3 = rma(-min(change(src, momentumLength3), 0), length3)

rmi3 = down3 == 0 ? 100 : up3 == 0 ? 0 : 100 - (100 / (1 + up3 / down3))

obLevel3 = input(46, title="RMI3 Sellline")
osLevel3 = input(24, title="RMI3 Buyline")

rmiColor3 = rmi3 > obLevel3 ? #0ebb23 : rmi3 < osLevel3 ? #ff0000 : #967d20
plot(rmi3, title="RMI 3", linewidth=2, color=rmiColor3, transp=0)
hline(obLevel3, color=#cf0bd9)
hline(osLevel3, color=#cf0bd9)
//RMI4
length4 = input(title="RMI4 Length", type=input.integer, minval=1, defval=520)
momentumLength4 = input(title="RMI4 Momentum ", type=input.integer, minval=1, defval=137)
up4 = rma(max(change(src, momentumLength4), 0), length4)
down4 = rma(-min(change(src, momentumLength4), 0), length4)

rmi4 = down4 == 0 ? 100 : up4 == 0 ? 0 : 100 - (100 / (1 + up4 / down4))

obLevel4 = input(0, title="RMI4 Sellline")
osLevel4 = input(100, title="RMI4 Buyline")

rmiColor4 = rmi4 > obLevel4 ? #0ebb23 : rmi4 < osLevel4 ? #ff0000 : #7a630b
plot(rmi4, title="RMI 4", linewidth=2, color=rmiColor4, transp=0)
hline(obLevel4, color=#bd1150)
hline(osLevel4, color=#bd1150)


//RMI5
length5 = input(title="RMI5 Length", type=input.integer, minval=1, defval=520)
momentumLength5 = input(title="RMI5 Momentum ", type=input.integer, minval=1, defval=137)
up5 = rma(max(change(src, momentumLength5), 0), length5)
down5 = rma(-min(change(src, momentumLength5), 0), length5)

rmi5 = down5 == 0 ? 100 : up4 == 0 ? 0 : 100 - (100 / (1 + up5 / down5))

buy5 = input(0, title="RMI5 Buy Above")
sell5 = input(47, title="RMI5 Sell Below")

rmiColor5 = rmi5 > buy5 ? #0ebb23 : rmi5 < sell5 ? #ff0000 : #7a630b
plot(rmi5, title="RMI 5", linewidth=2, color=rmiColor5, transp=0)
hline(buy5, color=#bd1150)
hline(sell5, color=#bd1150)
///
///END RMIS 
//
// 
// Relative Momentum Index script may be freely distributed under the MIT license.
//
///
///

hline(50, color=#C0C0C0, linestyle=hline.style_dashed, title="Zero Line")

//alerts


longcondition1 = crossover(chandeMO, osLevel)
shortcondition1 = crossunder(chandeMO, obLevel)
longcondition2 = rmi5>buy5 and rmi4<osLevel4 and rmi3<osLevel3 and rmi2<osLevel2 and rmi1<osLevel1 and longcondition1
shortcondition2 =  rmi5<sell5 and rmi4>obLevel4 and rmi3>obLevel3 and rmi2>obLevel2 and rmi1>obLevel1 and shortcondition1

if testPeriod()
    if longcondition2
        strategy.entry("Buy", strategy.long)
    if shortcondition2
        strategy.entry("Sell", strategy.short)

مزید