- Used Claude AI for the first time to find and correct code. Mancini LInes was not working in NinjaTrader 8. I submitted to Claude ai and in seconds it rewrote the code. Unreal.......
- 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;
using NinjaTrader.NinjaScript.SuperDomColumns;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Security.Cryptography;
using System.IO;
using System.Net;
using System.Xml.Linq;
using System.Runtime.Remoting.Contexts;
using System.Windows.Media.TextFormatting;
using System.Windows.Markup;
using Infragistics.Windows.DataPresenter;
namespace NinjaTrader.NinjaScript.Indicators
{
public class ConfigurableHorizontalLine : Indicator
{
// private String Support;
// private String Resist;
// private Brush colSupport;
// private Brush colResist;
// private Brush colMajorSupport;
// private Brush colMajorResist;
//[Browsable(false)]
//public string LineColorSerializable
//{
// get { return Serialize.BrushToString(LineColor); }
// set { LineColor = Serialize.StringToBrush(value); }
//}
//[NinjaScriptProperty]
//[Display(Name = "Line Style", Description = "The style of the horizontal line.", Order = 3, GroupName = "Parameters")]
//public DashStyleHelper LineStyle { get; set; }
//[NinjaScriptProperty]
//[Range(1, int.MaxValue)]
//[Display(Name = "Line Width", Description = "The width of the horizontal line.", Order = 4, GroupName = "Parameters")]
//public int LineWidth { get; set; }
protected override void OnStateChange()
{
if (State == State.SetDefaults)
{
Description = @"Draws Adam Mancini lines";
Name = "Mancini Lines";
Calculate = Calculate.OnEachTick;
IsOverlay = true;
Support = "5523, 5512, 5212 (major)";
Resist = "5132 (major), 5326, 5522";
colSupport = Brushes.Green;
colMajorSupport = Brushes.Lime;
colResist = Brushes.Red;
colMajorResist = Brushes.Orange;
}
}
private void DrawResist()
{
//Print(Support);
int idx = 1;
String[] sr = Resist.Split(',');
foreach (string s in sr)
{
string sa = s.Trim();
//Print(sa);
if (s.Contains("-"))
{
Print("Dash");
if (s.Contains("major"))
{
sa = s.Replace("(major)", "").Trim();
sa = sa.Substring(0, 4);
Print("6666**" + sa + "!!!!");
double dPrice = Convert.ToDouble(sa);
Draw.HorizontalLine(this, "*****" + idx, dPrice, colMajorResist, DashStyleHelper.Solid, 1);
}
else
{
Print("7777**" + sa + "****");
sa = sa.Substring(0, 4);
double dPrice = Convert.ToDouble(sa);
Draw.HorizontalLine(this, "*****" + idx, dPrice, colResist, DashStyleHelper.Solid, 1);
}
}
else
{
if (sa.Contains("major"))
{
sa = sa.Replace("(major)", "").Trim();
sa = sa.Substring(0, 4);
Print("8888**" + sa + "****");
double dPrice = Convert.ToDouble(sa.Trim());
Draw.HorizontalLine(this, "*****" + idx, dPrice, colMajorResist, DashStyleHelper.Solid, 1);
}
else
{
sa = sa.Substring(0, 4);
Print("9999**" + sa + "****");
double dPrice = Convert.ToDouble(sa);
Draw.HorizontalLine(this, "*****" + idx, dPrice, colResist, DashStyleHelper.Solid, 1);
}
}
idx++;
}
}
private void DrawSupport()
{
//Print(Support);
int idx = 1;
String[] sr = Support.Split(',');
foreach (string s in sr)
{
string sa = s.Trim();
//Print(sa);
if (s.Contains("-"))
{
Print("Dash");
if (s.Contains("major"))
{
sa = s.Replace("(major)", "").Trim();
sa = sa.Substring(0, 4);
Print("2222**" + sa + "!!!!");
double dPrice = Convert.ToDouble(sa);
Draw.HorizontalLine(this, "ho" + idx, dPrice, colMajorSupport, DashStyleHelper.Solid, 1);
}
else
{
sa = sa.Substring(0, 4);
Print("3333**" + sa + "****");
double dPrice = Convert.ToDouble(sa);
Draw.HorizontalLine(this, "ho" + idx, dPrice, colSupport, DashStyleHelper.Solid, 1);
}
}
else
{
if (sa.Contains("major"))
{
sa = sa.Replace("(major)", "").Trim();
sa = sa.Substring(0, 4);
Print("4444**" + sa + "****");
double dPrice = Convert.ToDouble(sa.Trim());
Draw.HorizontalLine(this, "ho" + idx, dPrice, colMajorSupport, DashStyleHelper.Solid, 1);
}
else
{
sa = sa.Substring(0, 4);
Print("5555**" + sa + "****");
double dPrice = Convert.ToDouble(sa);
Draw.HorizontalLine(this, "ho" + idx, dPrice, colSupport, DashStyleHelper.Solid, 1);
}
}
idx++;
}
}
protected override void OnBarUpdate()
{
//Print(CurrentBar);
if (CurrentBar > 6890)
{
DrawSupport();
DrawResist();
}
}
region Properties
[NinjaScriptProperty]
[Display(Name = "Mancini Supports", Description = "5343,5233,6046, etc", Order = 1, GroupName = "Lines")]
public string Support { get; set; }
[NinjaScriptProperty]
[Display(Name = "Mancini Resistances", Description = "5343,5233,6046, etc", Order = 2, GroupName = "Lines")]
public string Resist { get; set; }
[XmlIgnore]
[Display(Name = "Support Color", Order = 3, GroupName = "Colors")]
public Brush colSupport { get; set; }
[XmlIgnore]
[Display(Name = "Resistance Color", Order = 4, GroupName = "Colors")]
public Brush colResist { get; set; }
[XmlIgnore]
[Display(Name = "Major Support Color", Order = 5, GroupName = "Colors")]
public Brush colMajorSupport { get; set; }
[XmlIgnore]
[Display(Name = "Major Resistance Color", Order = 6, GroupName = "Colors")]
public Brush colMajorResist { get; set; }
#endregion
}
}
region NinjaScript generated code. Neither change nor remove.
namespace NinjaTrader.NinjaScript.Indicators
{
public partial class Indicator : NinjaTrader.Gui.NinjaScript.IndicatorRenderBase
{
private ConfigurableHorizontalLine[] cacheConfigurableHorizontalLine;
public ConfigurableHorizontalLine ConfigurableHorizontalLine(string support, string resist)
{
return ConfigurableHorizontalLine(Input, support, resist);
}
public ConfigurableHorizontalLine ConfigurableHorizontalLine(ISeries<double> input, string support, string resist)
{
if (cacheConfigurableHorizontalLine != null)
for (int idx = 0; idx < cacheConfigurableHorizontalLine.Length; idx++)
if (cacheConfigurableHorizontalLine[idx] != null && cacheConfigurableHorizontalLine[idx].Support == support && cacheConfigurableHorizontalLine[idx].Resist == resist && cacheConfigurableHorizontalLine[idx].EqualsInput(input))
return cacheConfigurableHorizontalLine[idx];
return CacheIndicator<ConfigurableHorizontalLine>(new ConfigurableHorizontalLine(){ Support = support, Resist = resist }, input, ref cacheConfigurableHorizontalLine);
}
}
}
namespace NinjaTrader.NinjaScript.MarketAnalyzerColumns
{
public partial class MarketAnalyzerColumn : MarketAnalyzerColumnBase
{
public Indicators.ConfigurableHorizontalLine ConfigurableHorizontalLine(string support, string resist)
{
return indicator.ConfigurableHorizontalLine(Input, support, resist);
}
public Indicators.ConfigurableHorizontalLine ConfigurableHorizontalLine(ISeries<double> input , string support, string resist)
{
return indicator.ConfigurableHorizontalLine(input, support, resist);
}
}
}
namespace NinjaTrader.NinjaScript.Strategies
{
public partial class Strategy : NinjaTrader.Gui.NinjaScript.StrategyRenderBase
{
public Indicators.ConfigurableHorizontalLine ConfigurableHorizontalLine(string support, string resist)
{
return indicator.ConfigurableHorizontalLine(Input, support, resist);
}
public Indicators.ConfigurableHorizontalLine ConfigurableHorizontalLine(ISeries<double> input , string support, string resist)
{
return indicator.ConfigurableHorizontalLine(input, support, resist);
}
}
}
#endregion
Announcement
Collapse
No announcement yet.
Partner 728x90
Collapse
NinjaTrader
Fixed code in Mancini Lines using Claude.ai
Collapse
X
-
Fixed code in Mancini Lines using Claude.ai
Tags: None
Latest Posts
Collapse
| Topics | Statistics | Last Post | ||
|---|---|---|---|---|
|
Started by Geovanny Suaza, 02-11-2026, 06:32 PM
|
0 responses
557 views
0 likes
|
Last Post
|
||
|
Started by Geovanny Suaza, 02-11-2026, 05:51 PM
|
0 responses
324 views
1 like
|
Last Post
|
||
|
Started by Mindset, 02-09-2026, 11:44 AM
|
0 responses
101 views
0 likes
|
Last Post
by Mindset
02-09-2026, 11:44 AM
|
||
|
Started by Geovanny Suaza, 02-02-2026, 12:30 PM
|
0 responses
545 views
1 like
|
Last Post
|
||
|
Started by RFrosty, 01-28-2026, 06:49 PM
|
0 responses
547 views
1 like
|
Last Post
by RFrosty
01-28-2026, 06:49 PM
|
