Announcement

Collapse

Looking for a User App or Add-On built by the NinjaTrader community?

Visit NinjaTrader EcoSystem and our free User App Share!

Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less

Partner 728x90

Collapse

Two moving averages indicator.

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Two moving averages indicator.

    Hi… and Happy New Year to all.

    I have a question.

    I want to build an indicator composed of two equals moving averages, namely: SMA1 (28) [0] and SMA2 (28) [0]. But the second moving average has moved forward by 7 periods.
    My code move forward both moving averages, not just one.
    Someone can tell me where is the error?

    Thank you for your help.
    Germano

    The code:

    publicclass TwoEqualsSMA : Indicator
    {
    #region Variables
    privateint period = 28; // Default setting for Period
    privateint displace = 7; // Default setting for Displace
    #endregion

    protectedoverridevoid Initialize()
    {
    // 1° Moving average
    Add(new Plot(Color.FromKnownColor(KnownColor.Red), PlotStyle.Line, "Value_SMA1"));

    // 2° Moving average
    Add(new Plot(Color.FromKnownColor(KnownColor.Blue), PlotStyle.Line, "Value_SMA2"));
    Displacement = displace;

    CalculateOnBarClose =
    true;
    Overlay =
    true;
    }

    protectedoverridevoid OnBarUpdate()
    {
    Value_SMA1.Set(SMA(period )[
    0]);
    Value_SMA2.Set(SMA(period )[
    0]);
    }

    #2
    Germano, the displacement would be used for both plots in your indicator.

    Try for example this for more control on it -

    Code:
     
    protected override void Initialize()
    {
    // 1° Moving average 
    Add(new Plot(Color.FromKnownColor(KnownColor.Red), PlotStyle.Line, "Value_SMA1"));
    // 2° Moving average 
    Add(new Plot(Color.FromKnownColor(KnownColor.Blue), PlotStyle.Line, "Value_SMA2"));
    //Displacement = displace; 
    CalculateOnBarClose = true;
    Overlay = true;
    }
    protected override void OnBarUpdate()
    {
    if (CurrentBar < displace) return;
     
    Value_SMA1.Set(SMA(period )[0]);
    Value_SMA2.Set(SMA(period )[displace]);
    }
    BertrandNinjaTrader Customer Service

    Comment


      #3
      Bertrand, thank you for your help.
      Now, the indicator works perfectly.

      Thank you again.
      Germano

      Comment

      Latest Posts

      Collapse

      Topics Statistics Last Post
      Started by helpwanted, Today, 03:06 AM
      0 responses
      3 views
      0 likes
      Last Post helpwanted  
      Started by Brevo, Today, 01:45 AM
      0 responses
      7 views
      0 likes
      Last Post Brevo
      by Brevo
       
      Started by aussugardefender, Today, 01:07 AM
      0 responses
      5 views
      0 likes
      Last Post aussugardefender  
      Started by pvincent, 06-23-2022, 12:53 PM
      14 responses
      242 views
      0 likes
      Last Post Nyman
      by Nyman
       
      Started by TraderG23, 12-08-2023, 07:56 AM
      9 responses
      384 views
      1 like
      Last Post Gavini
      by Gavini
       
      Working...
      X