NexusFi: Find Your Edge


Home Menu

 





Anybody can convert this indicator from NT7 to SierraChart (MACDVOL)


Discussion in Sierra Chart

Updated
    1. trending_up 4,770 views
    2. thumb_up 0 thanks given
    3. group 2 followers
    1. forum 3 posts
    2. attach_file 1 attachments




 
Search this Thread

Anybody can convert this indicator from NT7 to SierraChart (MACDVOL)

  #1 (permalink)
 
redpilot's Avatar
 redpilot 
S/Europe
 
Experience: Advanced
Platform: NT, MT4
Broker: Admiral Markets
Trading: Forex, CFD´s
Posts: 41 since Apr 2010
Thanks Given: 89
Thanks Received: 4

//
// Copyright (C) 2006, NinjaTrader LLC <www.ninjatrader.com>.
// NinjaTrader reserves the right to modify or overwrite this NinjaScript component with each release.
//

#region Using declarations
using System;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.ComponentModel;
using System.Xml.Serialization;
using NinjaTrader.Data;
using NinjaTrader.Gui.Chart;
#endregion

// This namespace holds all indicators and is required. Do not change it.
namespace NinjaTrader.Indicator
{
/// <summary>
/// The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator that shows the relationship between two moving averages of prices.
/// </summary>
[Description("The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator that shows the relationship between two moving averages of prices.")]
public class Zi7MacdVolColor02 : Indicator
{
#region Variables
private int fast = 12;
private int slow = 26;
private int smooth = 9;
private DataSeries fastEma;
private DataSeries slowEma;
#endregion

/// <summary>
/// This method is used to configure the indicator and is called once before any bar data is loaded.
/// </summary>
protected override void Initialize()
{
Add(new Plot(new Pen (Color.Black, 3), "Macd"));
Add(new Plot(Color.DarkViolet, "Avg"));
Add(new Plot(new Pen(Color.Navy, 3), PlotStyle.Bar, "Diff"));

Add(new Line(Color.DarkGray, 0, "Zero line"));

fastEma = new DataSeries(this);
slowEma = new DataSeries(this);
}

/// <summary>
/// Calculates the indicator value(s) at the current index.
/// </summary>
protected override void OnBarUpdate()
{
if (CurrentBar == 0)
{
fastEma.Set(Input[0]);
slowEma.Set(Input[0]);
Value.Set(0);
Avg.Set(0);
Diff.Set(0);
}
else
{
fastEma.Set((2.0 / (1 + Fast)) * Volume[0] + (1 - (2.0 / (1 + Fast))) * fastEma[1]);
slowEma.Set((2.0 / (1 + Slow)) * Volume[0] + (1 - (2.0 / (1 + Slow))) * slowEma[1]);

double macd = fastEma[0] - slowEma[0];
double macdAvg = (2.0 / (1 + Smooth)) * macd + (1 - (2.0 / (1 + Smooth))) * Avg[1];

Value.Set(macd);
Avg.Set(macdAvg);
Diff.Set(macd);
{
if ( Diff[0] > 0 )
PlotColors[2][0] = Color.Green;
else
PlotColors[2][0] = Color.Red;
}
{
if ( Macd[0] > 0 )
PlotColors[2][0] = Color.Green;
else
PlotColors[2][0] = Color.Red;
}
}
}

#region Properties
/// <summary>
/// </summary>
[Browsable(false)]
[XmlIgnore()]
public DataSeries Avg
{
get { return Values[1]; }
}

/// <summary>
/// </summary>
[Browsable(false)]
[XmlIgnore()]
public DataSeries Default
{
get { return Values[0]; }
}

/// <summary>
/// </summary>
[Browsable(false)]
[XmlIgnore()]
public DataSeries Diff
{
get { return Values[2]; }
}
/// <summary>
/// </summary>
[Browsable(false)]
[XmlIgnore()]
public DataSeries Macd
{
get { return Values[2]; }
}

/// <summary>
/// </summary>
[Description("Number of bars for fast EMA")]
[GridCategory("Parameters")]
public int Fast
{
get { return fast; }
set { fast = Math.Max(1, value); }
}

/// <summary>
/// </summary>
[Description("Number of bars for slow EMA")]
[GridCategory("Parameters")]
public int Slow
{
get { return slow; }
set { slow = Math.Max(1, value); }
}

/// <summary>
/// </summary>
[Description("Number of bars for smoothing")]
[GridCategory("Parameters")]
public int Smooth
{
get { return smooth; }
set { smooth = Math.Max(1, value); }
}
#endregion
}
}

#region NinjaScript generated code. Neither change nor remove.
// This namespace holds all indicators and is required. Do not change it.
namespace NinjaTrader.Indicator
{
public partial class Indicator : IndicatorBase
{
private Zi7MacdVolColor02[] cacheZi7MacdVolColor02 = null;

private static Zi7MacdVolColor02 checkZi7MacdVolColor02 = new Zi7MacdVolColor02();

/// <summary>
/// The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator that shows the relationship between two moving averages of prices.
/// </summary>
/// <returns></returns>
public Zi7MacdVolColor02 Zi7MacdVolColor02(int fast, int slow, int smooth)
{
return Zi7MacdVolColor02(Input, fast, slow, smooth);
}

/// <summary>
/// The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator that shows the relationship between two moving averages of prices.
/// </summary>
/// <returns></returns>
public Zi7MacdVolColor02 Zi7MacdVolColor02(Data.IDataSeries input, int fast, int slow, int smooth)
{
if (cacheZi7MacdVolColor02 != null)
for (int idx = 0; idx < cacheZi7MacdVolColor02.Length; idx++)
if (cacheZi7MacdVolColor02[idx].Fast == fast && cacheZi7MacdVolColor02[idx].Slow == slow && cacheZi7MacdVolColor02[idx].Smooth == smooth && cacheZi7MacdVolColor02[idx].EqualsInput(input))
return cacheZi7MacdVolColor02[idx];

lock (checkZi7MacdVolColor02)
{
checkZi7MacdVolColor02.Fast = fast;
fast = checkZi7MacdVolColor02.Fast;
checkZi7MacdVolColor02.Slow = slow;
slow = checkZi7MacdVolColor02.Slow;
checkZi7MacdVolColor02.Smooth = smooth;
smooth = checkZi7MacdVolColor02.Smooth;

if (cacheZi7MacdVolColor02 != null)
for (int idx = 0; idx < cacheZi7MacdVolColor02.Length; idx++)
if (cacheZi7MacdVolColor02[idx].Fast == fast && cacheZi7MacdVolColor02[idx].Slow == slow && cacheZi7MacdVolColor02[idx].Smooth == smooth && cacheZi7MacdVolColor02[idx].EqualsInput(input))
return cacheZi7MacdVolColor02[idx];

Zi7MacdVolColor02 indicator = new Zi7MacdVolColor02();
indicator.BarsRequired = BarsRequired;
indicator.CalculateOnBarClose = CalculateOnBarClose;
#if NT7
indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
indicator.MaximumBarsLookBack = MaximumBarsLookBack;
#endif
indicator.Input = input;
indicator.Fast = fast;
indicator.Slow = slow;
indicator.Smooth = smooth;
Indicators.Add(indicator);
indicator.SetUp();

Zi7MacdVolColor02[] tmp = new Zi7MacdVolColor02[cacheZi7MacdVolColor02 == null ? 1 : cacheZi7MacdVolColor02.Length + 1];
if (cacheZi7MacdVolColor02 != null)
cacheZi7MacdVolColor02.CopyTo(tmp, 0);
tmp[tmp.Length - 1] = indicator;
cacheZi7MacdVolColor02 = tmp;
return indicator;
}
}
}
}

// This namespace holds all market analyzer column definitions and is required. Do not change it.
namespace NinjaTrader.MarketAnalyzer
{
public partial class Column : ColumnBase
{
/// <summary>
/// The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator that shows the relationship between two moving averages of prices.
/// </summary>
/// <returns></returns>
[Gui.Design.WizardCondition("Indicator")]
public Indicator.Zi7MacdVolColor02 Zi7MacdVolColor02(int fast, int slow, int smooth)
{
return _indicator.Zi7MacdVolColor02(Input, fast, slow, smooth);
}

/// <summary>
/// The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator that shows the relationship between two moving averages of prices.
/// </summary>
/// <returns></returns>
public Indicator.Zi7MacdVolColor02 Zi7MacdVolColor02(Data.IDataSeries input, int fast, int slow, int smooth)
{
return _indicator.Zi7MacdVolColor02(input, fast, slow, smooth);
}
}
}

// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
public partial class Strategy : StrategyBase
{
/// <summary>
/// The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator that shows the relationship between two moving averages of prices.
/// </summary>
/// <returns></returns>
[Gui.Design.WizardCondition("Indicator")]
public Indicator.Zi7MacdVolColor02 Zi7MacdVolColor02(int fast, int slow, int smooth)
{
return _indicator.Zi7MacdVolColor02(Input, fast, slow, smooth);
}

/// <summary>
/// The MACD (Moving Average Convergence/Divergence) is a trend following momentum indicator that shows the relationship between two moving averages of prices.
/// </summary>
/// <returns></returns>
public Indicator.Zi7MacdVolColor02 Zi7MacdVolColor02(Data.IDataSeries input, int fast, int slow, int smooth)
{
if (InInitialize && input == null)
throw new ArgumentException("You only can access an indicator with the default input/bar series from within the 'Initialize()' method");

return _indicator.Zi7MacdVolColor02(input, fast, slow, smooth);
}
}
}
#endregion

Attached Thumbnails
Click image for larger version

Name:	macdvol.JPG
Views:	410
Size:	70.9 KB
ID:	31805  
Started this thread Reply With Quote

Can you help answer these questions
from other members on NexusFi?
Better Renko Gaps
The Elite Circle
Trade idea based off three indicators.
Traders Hideout
Discipline isnt about fortitude. Its about conviction!
Psychology and Money Management
NT7 Indicator Script Troubleshooting - Camarilla Pivots
NinjaTrader
Strategy stop orders partially filled
EasyLanguage Programming
 
Best Threads (Most Thanked)
in the last 7 days on NexusFi
Funded Trader platforms
66 thanks
Self sabotage reframed
15 thanks
GFIs1 1 DAX trade per day journal
15 thanks
Trading with Intuition
15 thanks
The Trading Pit "Futures VIP" Account Journal
12 thanks
  #3 (permalink)
 
cory's Avatar
 cory 
virginia
 
Experience: Intermediate
Platform: ninja
Trading: NQ
Posts: 6,098 since Jun 2009
Thanks Given: 877
Thanks Received: 8,090


SC let you specify a study bases on other study np. add a vol study then add a macd go to setting change it to base on vol study.

Reply With Quote
  #4 (permalink)
 
redpilot's Avatar
 redpilot 
S/Europe
 
Experience: Advanced
Platform: NT, MT4
Broker: Admiral Markets
Trading: Forex, CFD´s
Posts: 41 since Apr 2010
Thanks Given: 89
Thanks Received: 4

Ok. I did it!!!!
Thank you cory!!!

Started this thread Reply With Quote




Last Updated on February 25, 2011


© 2024 NexusFi™, s.a., All Rights Reserved.
Av Ricardo J. Alfaro, Century Tower, Panama City, Panama, Ph: +507 833-9432 (Panama and Intl), +1 888-312-3001 (USA and Canada)
All information is for educational use only and is not investment advice. There is a substantial risk of loss in trading commodity futures, stocks, options and foreign exchange products. Past performance is not indicative of future results.
About Us - Contact Us - Site Rules, Acceptable Use, and Terms and Conditions - Privacy Policy - Downloads - Top
no new posts