This code continues to have the same error upon conversion (using ChatGPT-it finally threw its hands up lol)-here is the code conversion:
// If there are extern alias declarations, they must come before using directives
extern alias SomeAlias;
// Using directives should come after extern alias declarations and before the namespace
using NinjaTrader.Cbi.Tools;
// Define the namespace
namespace NinjaTrader.Gui.Tools
{
// Define the indicator class
public class CustomIndicator : Indicator
{
// Declare inputs
private double price;
private int xAvgLen = 15;
private int hiLoLen = 50;
private double retrace = 0.382;
// Declare variables
private double xAvg = 0.0;
private double hiHi = 0.0;
private double loLo = 0.0;
private double retracement = 0.0;
// Initialize the indicator
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"Custom Indicator";
AddClose();
}
}
// Calculate values on each bar update
protected override void OnBarUpdate()
{
// Calculate XAverage
xAvg = SMA(Closes[0], xAvgLen)[0];
// Calculate HiHi and LoLo
hiHi = MAX(Highs[0], hiLoLen)[0];
loLo = MIN(Lows[0], hiLoLen)[0];
// Calculate Retracement
retracement = (hiHi - loLo) * retrace;
// Plot values
Values[0][0] = xAvg;
Values[1][0] = hiHi - retracement;
Values[2][0] = loLo + retracement;
}
}
}
// Using directives for any additional namespaces
using NinjaTrader.Cbi.Tools;
region Using declarations
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Gui;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Gui.SuperDom;
using NinjaTrader.Gui.Tools;
using NinjaTrader.Data;
using NinjaTrader.NinjaScript;
using NinjaTrader.Core.FloatingPoint;
using NinjaTrader.NinjaScript.DrawingTools;
#endregion
//This namespace holds Indicators in this folder and is required. Do not change it.
namespace NinjaTrader.NinjaScript.Indicators
{
public class FibonacciRetrace : Indicator
{
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"Enter the description for your new custom Indicator here.";
Name = "FibonacciRetrace";
Calculate = Calculate.OnBarClose;
IsOverlay = false;
DisplayInDataBox = true;
DrawOnPricePanel = true;
DrawHorizontalGridLines = true;
DrawVerticalGridLines = true;
PaintPriceMarkers = true;
ScaleJustification = NinjaTrader.Gui.Chart.ScaleJustification.Right;
//Disable this property if your indicator requires custom values that cumulate with each new market data event.
//See Help Guide for additional information.
IsSuspendedWhileInactive = true;
AddPlot(Brushes.Aqua, "Cyan");
AddPlot(Brushes.NavajoWhite, "Beige");
}
else if (State == State.Configure)
{
}
}
protected override void OnBarUpdate()
{
//Add your custom indicator logic here.
}
region Properties
[Browsable(false)]
[XmlIgnore]
public Series<double> Cyan
{
get { return Values[0]; }
}
[Browsable(false)]
[XmlIgnore]
public Series<double> Beige
{
get { return Values[1]; }
}
#endregion
}
}
region NinjaScript generated code. Neither change nor remove.
namespace NinjaTrader.NinjaScript.Indicators
{
public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
{
private CustomIndicator[] cacheCustomIndicator;
public CustomIndicator CustomIndicator()
{
return CustomIndicator(Input);
}
public CustomIndicator CustomIndicator(ISeries<double> input)
{
if (cacheCustomIndicator != null)
for (int idx = 0; idx < cacheCustomIndicator.Length; idx++)
if (cacheCustomIndicator[idx] != null && cacheCustomIndicator[idx].EqualsInput(input))
return cacheCustomIndicator[idx];
return CacheIndicator<CustomIndicator>(new CustomIndicator(), input, ref cacheCustomIndicator);
}
}
}
namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
{
public Indicators.CustomIndicator CustomIndicator()
{
return indicator.CustomIndicator(Input);
}
public Indicators.CustomIndicator CustomIndicator(ISeries<double> input )
{
return indicator.CustomIndicator(input);
}
}
}
namespace NinjaTrader.NinjaScript.Strategies
{
public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
{
public Indicators.CustomIndicator CustomIndicator()
{
return indicator.CustomIndicator(Input);
}
public Indicators.CustomIndicator CustomIndicator(ISeries<double> input )
{
return indicator.CustomIndicator(input);
}
}
}
#endregion
and here is the error message on line 56:
FibonacciRetrace.cs | A using clause must precede all other elements defined in the namespace except extern alias declarations. | 56 | 0 |
Please, any help would be greatly appreciated-thanks
Joe
Comment