ریڈ کے مومنٹم بارز

مصنف:چاؤ ژانگ، تاریخ: 2022-05-18 11:28:24
ٹیگز:ایس ایم اےای ایم اےڈبلیو ایم اےایچ ایم اے

مومنٹم بارز (Mo_Bars) (نسبتی) مومنٹم کو دیکھنے کا ایک مختلف طریقہ پیش کرتا ہے - اور کچھ آسان ٹی اے تصورات کا استعمال کرتا ہے تاکہ ہم مومنٹم تبدیلیوں کو کس طرح پڑھیں اور اسے اپنی تجارت میں شامل کریں اس میں مختلف نقطہ نظر فراہم کریں۔

یہاں کا خیال (اور اسکرپٹ خود) واقعی بہت آسان ہے ، اور یہ (بہت ہی آزادانہ طور پر) ایلڈر کے امپلس سسٹم (ای آئی ایس) سے متاثر ہے - پھر کچھ دوسرے تصورات کو فائدہ اٹھانے کے لئے تیار ہوا ، اور کم گندا اور پڑھنے میں آسان بن گیا۔

مو_بارز کی تعمیر

بیس تصور میں 3 حرکت پذیر اوسط لائنوں کا استعمال کیا جاتا ہے: پہلی لائن ایک نسبتا تیز رفتار ایم اے ہے جس کی لمبائی مختصر ہے - اہم قیمت ٹریکنگ لائن کے طور پر کام کرتا ہے

دوسری لائن مین لائن سے قدرے سست ہے - 2 سے 3 بار لمبی لمبائی - اور بطور ڈیفالٹ اوپن ویلیو کو بطور ماخذ استعمال کرے گی - یہ اس وقت کی نشاندہی کرنے کے لئے بہتر کام کرتی ہے جب اختتامی قیمت اوپن سے زیادہ تیزی سے حرکت کرنا شروع کردیتی ہے (جیسے ، بار زیادہ کثرت سے کھلنے سے زیادہ بند ہوجاتے ہیں) - یہ لائن سگنل لائن کی حیثیت سے کام کرتی ہے - اضافی تاخیر کے لئے ایک اضافی ترتیب ہے جو باقاعدگی سے WMA ہموار کا استعمال کرتی ہے - تاخیر 2 ایم اے کے مابین نسبتا displacement نقل مکانی کو بڑھانے کے لئے کام کرتی ہے۔

ان دونوں MAs کے لئے، میں RSS MA (سست لائن) استعمال کرنے کا انتخاب کرتا ہوں - دیگر MA اقسام استعمال کی جا سکتی ہیں، لیکن میں نے اس MA قسم خاص طور پر استعمال کیا وجہ یہ ہے کہ یہ gracefully منتقل ہوتا ہے - اور 2 سست لائنوں کو ایک ساتھ منتقل کرنے سے چھوٹی قیمتوں میں اتار چڑھاؤ سے whipssaws کو کم سے کم کرتا ہے - میں نے دیگر MA اقسام کے ساتھ تجربہ کیا اور پایا کہ RSS وہاں ایک فائدہ ہے.

تیسری لائن بہت سست ایم اے ہے (لمبائی 5 سے 6 گنا تیز لائن) - اور فلٹر یا بیس لائن کی حیثیت سے کام کرتی ہے۔ جب ہم اس لائن سے اوپر ہیں تو ہمیں لمبی پوزیشنوں کا حق ہونا چاہئے - ہم بیل علاقے میں ہیں۔ جب ہم اس لائن سے نیچے ہیں تو ہم مختصر پوزیشنوں کا حق رکھتے ہیں ، اور ہم ریچھ علاقے میں ہیں۔ اس لائن کو ایڈجسٹ کریں کیونکہ یہ آپ کے تجارتی انداز اور وقت کے فریم کے مطابق ہے۔ (میں نے فلٹر لائن کے لئے ایم اے کی قسم کے طور پر ڈبلیو ایم اے کا استعمال کرنے کا انتخاب کیا ہے... اور اس کی ایک اچھی وجہ ہے - جو میں اب کے لئے چھوڑ دوں گا - لیکن مستقبل کے ورژن میں ، ہم دیگر منتخب شدہ ایم اے کی اقسام کو شامل کرسکتے ہیں۔)

Mo_Bars استعمال کرنا

ایک بہت وسیع سطح پر، ہم ایک MACD استعمال کرتے ہیں کہ کس طرح کی طرح Mo_Bars استعمال کر سکتے ہیں - دونوں مرکز اور غیر محدود oscillators ہیں - فرق یہ ہے کہ Mo_Bars 2 کے بجائے 3 MAs پر مبنی ہے کہ نوٹ کریں.

Mo_Bar بار کی لمبائی اہم MA اور سگنل MA کے درمیان فاصلے کی عکاسی کرتا ہے - بیس لائن (فلٹر لائن) کے سلسلے میں پلاٹ کیا - اس کا مطلب یہ ہے کہ بار کی لمبائی 2 MAs کے درمیان رشتہ دار رفتار کی نمائندگی کرتا ہے - Mo_Bars پھر اس طرح رنگا رنگ ہیں کہ اس رفتار کی قدر میں اضافہ یا کمی کی عکاسی کرتا ہے (یہاں بصری ہمارے معزز جادوگر میں سے ایک کی طرف سے حال ہی میں شائع ایک اور اشارے سے متاثر کیا گیا ہو سکتا ہے - یہ بالکل کام کیا - تو یہاں کریڈٹ کی وجہ سے:)

سادہ الفاظ میں ، اگر مرکزی ایم اے سگنل ایم اے سے نیچے ہے تو ، بار سرخ ہے - اور جب مرکزی ایم اے سگنل ایم اے سے اوپر ہے تو ، بار سبز ہے - عام طور پر ایک سفید بار ظاہر ہوتی ہے جب نسبتا momentum سمت کی تبدیلی کا پتہ چلتا ہے (نوٹ کریں کہ یہ رجحان کی سمت کے ساتھ ایک ہی نہیں ہے - اور یہ وہی ہے جو ہم آہنگی اور انحراف کو ظاہر کرنے اور استحصال کرنے میں مدد کرتا ہے - ایک MACD کی طرح)

  • مندرجہ بالا چارٹ میں، میں نے چند مثالوں کو نوٹ کیا کہ کس طرح رشتہ دار رفتار کو اس طرح سے ظاہر کرنے کے علاقے کو ظاہر کرتا ہے (مو_بارز صفر سے اوپر ہیں لیکن سرخ میں ہیں یا نیچے کی طرف بڑھ رہے ہیں، یا جب مو_بارز صفر سے نیچے اور سبز ہیں یا اوپر کی طرف بڑھ رہے ہیں) - قیمت کے ساتھ تبادلہ / اختلاف - اور یہ کس طرح قیمت کی کارروائی یا رجحان میں ممکنہ تبدیلیوں کے امکان کو ظاہر کرنے کے لئے کام کرسکتا ہے.

  • اس سیٹ اپ کے ساتھ کھیلنے کے لئے بہت کچھ ہے - اور شاید اگر کافی دلچسپی ہو تو مستقبل میں اس کا استعمال کرنے یا یہاں تک کہ اسے مزید تیار کرنے کے بارے میں مخصوص پوسٹس ہوسکتی ہیں - یہاں بہت ساری صلاحیتیں ہیں ، مزید فلٹرز (شاید حجم پر مبنی) شامل کرنے کے لئے ، انتباہات ، سگنل... وغیرہ - تو آئیے دلچسپی دیکھیں 🙂

یہاں تفصیلی (اوپر چارٹ) سیٹ اپ ہے کہ Mo_Bars پر مبنی ہے قیمت چارٹ پر MA s کے لئے ترتیبات ہم ذیل میں دیکھتے ہیں کے لئے اسکرپٹ کام کرتا ہے اور کس طرح کا ترجمہ کرنے کے لئے نیچے پینل پر Mo_Bars کی ترتیبات کے ساتھ مماثل / مطابقت پذیر کیا گیا ہے.

بیک ٹسٹ

img


/*backtest
start: 2022-05-10 00:00:00
end: 2022-05-16 23:59:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © RedKTrader

//@version=5
indicator('[dev]RedK Momentum Bars', shorttitle='RedK MoBars v3.0', explicit_plot_zorder = true, timeframe='', timeframe_gaps=false)

// A trading system composed of 2 short Lazy Lines (preferably one open and one close - 2-3 bars apart) and a WMA long filter 
// loosely inspired by Edler Impulse
// v2.0 cleaned up code and added MA options to be able to mix and match, and experiment with various setups 
// default values (my personal preference) remain the same as in v1.0 
// for example, some traders will consider "bear territory" only below SMA50, others will use EMA30 .. and so on.
// ---------------------------------------------------------------------------------------------------------------
// MoBars v3.0: 
// updated defaults to match the most common 3x MA cross-over set-up of SMA (10, 20, 50)
// updated visuals to push the 0 line to the background of the plot (using the explcit_plot_zorder param)
// and added alerts for crossing up, down and swing around the 0 line (the Bullish/Bearish Filter MA)

//==============================================================================
f_LazyLine(_data, _length) =>
    w1 = 0,     w2 = 0,     w3 = 0
    L1 = 0.0,   L2 = 0.0,   L3 = 0.0
    w = _length / 3

    if _length > 2
        w2 := math.round(w)
        w1 := math.round((_length - w2) / 2)
        w3 := int((_length - w2) / 2)

        L1 := ta.wma(_data, w1)
        L2 := ta.wma(L1, w2)
        L3 := ta.wma(L2, w3)
        
    else
        L3 := _data
        
    L3
//==============================================================================

// =============================================================================    
f_getMA(source, length, type) =>
    type == "SMA" ? ta.sma(source, length) : 
      type == "EMA" ? ta.ema(source, length) :
      type == "WMA" ? ta.wma(source, length) :
      type == "HMA" ? ta.hma(source, length) :
      f_LazyLine(source, length)
// =============================================================================    

// ------------------------------------------------------------------------------------------------
// Inputs
// Note, in v3.0, changed default lengths to 10, 20 and 50  -- and all MA types to SMA. 
// ------------------------------------------------------------------------------------------------

Fast_Src    = input.source(close,   title='Fast MA Source',          inline = 'Fast')
Fast_Length = input.int(10,          title = 'Length',   minval = 1, inline = 'Fast')
Fast_Type   = input.string('SMA', title = 'Type',                    inline = 'Fast',
  options = ['RSS_WMA', 'WMA', 'EMA', 'SMA', 'HMA'])

Slow_Src    = input.source(close,    title='Slow MA Source',         inline = 'Slow')
Slow_Length = input.int(20,          title='Length',     minval = 1, inline = 'Slow')
Slow_Type   = input.string('SMA', title = 'Type',                    inline = 'Slow',
  options = ['RSS_WMA', 'WMA', 'EMA', 'SMA', 'HMA'])

Slow_Delay  = input.int(3,          title='Delay (1 = None)',       minval = 1)

Fil_Length  = input.int(50,       title='Filter MA Length', minval = 1, inline = 'Filter')
Fil_Type    = input.string('SMA', title = 'Type',                   inline = 'Filter',
  options = ['RSS_WMA', 'WMA', 'EMA', 'SMA', 'HMA'])


// ------------------------------------------------------------------------------------------------
// Calculation
// ------------------------------------------------------------------------------------------------

Fast    = f_getMA(Fast_Src, Fast_Length, Fast_Type)
Slow    = f_getMA(Slow_Src, Slow_Length, Slow_Type)

Filter  = f_getMA(close, Fil_Length, Fil_Type)

Fast_M  = Fast - Filter
Slow_M  = Slow - Filter

Rel_M   = ta.wma(Slow_M, Slow_Delay)

// prep the Momentum bars
o = Rel_M
c = Fast_M
h = math.max(o, c)
l = math.min(o, c)

rising      = ta.change(c) > 0


// ------------------------------------------------------------------------------------------------
// Colors & Plots
// ------------------------------------------------------------------------------------------------

hline(0, title = 'Zero Line', color = color.blue, linestyle = hline.style_solid)

c_barup     = #11ff20ff
c_bardn     = #ff1111ff
c_bardj     = #ffffffff

c_barupb    = #1b5e20ff
c_bardnb    = #981919ff
c_bardjb    = #9598a1ff

barcolor    = c > o and rising ? c_barup : c < o and not rising ? c_bardn : c_bardj
borcolor    = c > o and rising ? c_barupb : c < o and not rising ? c_bardnb : c_bardjb
//plotcandle(o, h, l, c, 'MoBars', barcolor, barcolor, bordercolor = borcolor)


// ===========================================================================================================
//      v3.0 adding alerts 
// these alerts will trigger as soon as the Momentum Bar touches above the filter line 
// this approach can lead to "false signals" but also has an advantage (of alerting to a possible mood/mode change)
// another option - maybe in an updated version - could be to trigger alerts *only* when the full Momentum Bar completely clears the filter line (above or below)
// and it's easy to make that a user choice in the study inputs
// ===========================================================================================================

Alert_up    = ta.crossover(h,0)
Alert_dn    = ta.crossunder(l,0)
Alert_swing = Alert_up or Alert_dn

// "." in alert title for the alerts to show in the right order up/down/swing 
alertcondition(Alert_up,    ".   MoBars Crossing 0 Up",         "MoBars Up - Bullish Mode Detected!")
alertcondition(Alert_dn,    "..  MoBars Crossing 0 Down",       "MoBars Down - Bearish Mode Detected!")
alertcondition(Alert_swing, "... MoBars Crossing 0",            "Mobars Swing - Possible Reversal Detected!")



if Alert_up
    strategy.entry("Enter Long", strategy.long)
else if Alert_dn
    strategy.entry("Enter Short", strategy.short)

متعلقہ

مزید