রিসোর্স লোড হচ্ছে... লোডিং...

রেড কে মোমেন্টাম বার

লেখক:চাওঝাং, তারিখ: ২০২২-০৫-১৮ ১১ঃ২৮ঃ২৪
ট্যাগঃএসএমএইএমএডব্লিউএমএএইচএমএ

মম্পটম বার (Mo_Bars) (সম্পর্কিত) মম্পটম ভিজ্যুয়ালাইজ করার জন্য একটি ভিন্ন উপায় প্রদান করে - এবং কিছু সহজ TA ধারণাগুলি ব্যবহার করে আমরা কীভাবে মম্পটম পরিবর্তনগুলি পড়ি এবং আমাদের ট্রেডিংয়ে এটি অন্তর্ভুক্ত করি তার একটি ভিন্ন দৃষ্টিভঙ্গি প্রদান করে।

এখানে ধারণা (এবং স্ক্রিপ্ট নিজেই) সত্যিই সুপার সহজ, এবং (খুব অবাধে) এল্ডারের ইমপুলস সিস্টেম (ইআইএস) দ্বারা অনুপ্রাণিত - তারপর কিছু অন্যান্য ধারণার leverage করার জন্য বিকশিত, এবং কম বিশৃঙ্খল এবং সহজ পড়তে হয়ে।

মো_বার নির্মাণ

বেস ধারণায় তিনটি চলমান গড় রেখা ব্যবহার করা হয়: প্রথম লাইনটি একটি সংক্ষিপ্ত দৈর্ঘ্যের তুলনামূলকভাবে দ্রুত এমএ - মূল মূল্য ট্র্যাকিং লাইন হিসাবে কাজ করে

দ্বিতীয় লাইনটি মূল লাইনের তুলনায় কিছুটা ধীর - 2 থেকে 3 বার দীর্ঘ - এবং ডিফল্টরূপে ওপেন মানটি উত্স হিসাবে ব্যবহার করবে - এটি যখন বন্ধের দামটি ওপেনের চেয়ে দ্রুত গতিতে চলতে শুরু করে (যেমন, বারগুলি তাদের খোলার চেয়ে বেশি ঘন ঘন বন্ধ হয়) তা সনাক্ত করতে আরও ভাল কাজ করে - এই লাইনটি সংকেত লাইনের মতো কাজ করে - একটি অতিরিক্ত বিলম্বের জন্য একটি অতিরিক্ত সেটিং রয়েছে যা নিয়মিত ডাব্লুএমএ মসৃণকরণ ব্যবহার করে - বিলম্বটি 2 এমএ এর মধ্যে আপেক্ষিক স্থানচ্যুতি বাড়ানোর জন্য কাজ করে

এই দুটি MA এর জন্য, আমি RSS MA (Lazy Line) ব্যবহার করতে বেছে নিয়েছি - অন্যান্য MA টাইপ ব্যবহার করা যেতে পারে, কিন্তু আমি যে MA টাইপ ব্যবহার করেছি তার বিশেষ কারণ এটি gracefully - এবং 2 Lazy Lines একসাথে চলতে ছোট দামের ওঠানামা থেকে whipsaws হ্রাস করে - আমি অন্যান্য MA টাইপের সাথে পরীক্ষা করেছি এবং খুঁজে পেয়েছি যে RSS এর সেখানে একটি সুবিধা রয়েছে।

তৃতীয় লাইনটি অনেক ধীর গতির MA (দৈর্ঘ্য 5 থেকে 6x দ্রুত লাইন) - এবং এটি একটি ফিল্টার বা বেসলাইন হিসাবে কাজ করে। যখন আমরা এই লাইনের উপরে থাকি, তখন আমাদের লং পজিশনের পক্ষে থাকা উচিত - আমরা ষাঁড়ের অঞ্চলে থাকি। যখন আমরা এই লাইনের নীচে থাকি তখন আমরা শর্ট পজিশনের পক্ষে থাকি, এবং আমরা ভাল অঞ্চলে থাকি। আপনার ট্রেডিং স্টাইল এবং সময়সীমার সাথে সামঞ্জস্য রেখে এই লাইনটি সামঞ্জস্য করুন। (আমি ফিল্টার লাইনের জন্য এমএ টাইপ হিসাবে ডাব্লুএমএ ব্যবহার করতে পছন্দ করি... এবং এর জন্য একটি ভাল কারণ রয়েছে - যা আমি এখনই এড়িয়ে যাব - তবে ভবিষ্যতের সংস্করণগুলিতে, আমরা অন্যান্য নির্বাচনযোগ্য এমএ টাইপ যুক্ত করতে পারি।)

Mo_Bars ব্যবহার করে

খুব বিস্তৃত স্তরে, আমরা এমএসিডি ব্যবহারের মতোই মো_বার ব্যবহার করতে পারি - উভয়ই কেন্দ্রীভূত এবং সীমাহীন দোলক - পার্থক্যটি লক্ষ্য করুন যে মো_বার 2 এর পরিবর্তে 3 এমএ এর উপর ভিত্তি করে।

Mo_Bar বার দৈর্ঘ্য প্রধান MA এবং সংকেত MA এর মধ্যে দূরত্ব প্রতিফলিত - বেসলাইন (ফিল্টার লাইন) এর তুলনায় গ্রাফ করা - এর অর্থ হল যে বার দৈর্ঘ্য 2 MAs মধ্যে আপেক্ষিক গতির প্রতিনিধিত্ব করে - Mo_Bars তারপর যে গতির মান বৃদ্ধি বা হ্রাস প্রতিফলিত করে এমনভাবে রঙ করা হয় (এখানে ভিজ্যুয়াল আমাদের সম্মানিত জাদুকর এক দ্বারা সম্প্রতি প্রকাশিত অন্য সূচক দ্বারা অনুপ্রাণিত হতে পারে - এটি নিখুঁতভাবে কাজ - তাই এখানে প্রাপ্য ক্রেডিট:)

সহজভাবে বলতে গেলে, যদি প্রধান এমএ সিগন্যাল এমএ এর নিচে থাকে, তাহলে বারটি লাল - এবং যখন প্রধান এমএ সিগন্যাল এমএ এর উপরে থাকে, তখন বারটি সবুজ হয় - যখন আপেক্ষিক গতির দিকের পরিবর্তন সনাক্ত করা হয় তখন সাধারণত একটি সাদা বার প্রদর্শিত হয় (দ্রষ্টব্য যে এটি প্রবণতার দিকের সাথে একই নয় - এবং এটি ম্যাকডের মতো - ঘনিষ্ঠতা এবং বিচ্যুতি দেখাতে এবং ব্যবহার করতে সহায়তা করে) ।

  • উপরের চার্টে, আমি কয়েকটি উদাহরণ উল্লেখ করেছি যে কিভাবে এইভাবে আপেক্ষিক গতিশীলতাকে দৃশ্যমান করে তোলে (মো_বার শূন্যের উপরে কিন্তু লাল বা নীচে চলেছে, অথবা যখন মো_বার শূন্যের নীচে এবং সবুজ বা উপরে চলেছে) - মূল্যের সাথে সংযোজন / বিচ্ছিন্নতা - এবং কিভাবে এটি মূল্যের কর্ম বা প্রবণতার সম্ভাব্য পরিবর্তনের সম্ভাবনা প্রকাশ করতে কাজ করতে পারে।

  • এই সেটআপের সাথে আরও অনেক কিছু খেলতে হবে - এবং সম্ভবত যদি যথেষ্ট আগ্রহ থাকে তবে ভবিষ্যতে কীভাবে এটি ব্যবহার করা যায় বা এমনকি এটি আরও বিকশিত করার বিষয়ে উত্সর্গীকৃত পোস্ট থাকতে পারে - এখানে অনেক সম্ভাবনা রয়েছে, আরও ফিল্টার যুক্ত করতে (সম্ভবত ভলিউম ভিত্তিক), সতর্কতা, সংকেত... ইত্যাদি - সুতরাং আসুন আগ্রহটি দেখি :)

এখানে বিস্তারিত (উপরের চার্ট) সেটআপ রয়েছে যা Mo_Bars এর উপর ভিত্তি করে মূল্য চার্টের MA এর সেটিংস নিচের প্যানেলে Mo_Bars এর সেটিংসগুলির সাথে মেলে / সিঙ্ক্রোনাইজ করা হয়েছে যাতে স্ক্রিপ্টটি কীভাবে কাজ করে এবং কীভাবে এটি মূল্য চার্টে MA কর্মকে অনুবাদ করে তা আমরা নীচে যা দেখি তা প্রদর্শন করতে পারি।

ব্যাকটেস্ট

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)

সম্পর্কিত

আরো