Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #region Using declarations
- using System;
- using System.Diagnostics;
- using System.Drawing;
- using System.Drawing.Drawing2D;
- using System.ComponentModel;
- using System.Xml.Serialization;
- using NinjaTrader.Cbi;
- using NinjaTrader.Data;
- using NinjaTrader.Gui.Chart;
- using System.Reflection;
- using System.Windows.Forms;
- using NinjaTrader.Strategy;
- using NinjaTrader.Indicator;
- using System.Collections;
- #endregion
- namespace NinjaTrader.Indicator
- {
- [Description("")]
- public class ManageTradesV1 : Indicator
- {
- #region Variables
- private int period = 14;
- private DataSeries ma;
- private string account = "";
- private int accountindex = -1;
- private int positionindex = -1;
- private Font textFont = new Font("Arial",10,FontStyle.Bold);
- #endregion
- protected override void Initialize()
- {
- ma = new DataSeries(this);
- CalculateOnBarClose = true;
- Overlay = true;
- PaintPriceMarkers = false;
- DisplayInDataBox = false;
- }
- protected override void OnStartUp()
- {
- if ( NinjaTrader.Cbi.Globals.Accounts.Count > 0)
- {
- for (int j=0; j < NinjaTrader.Cbi.Globals.Accounts.Count; j++ )
- {
- if (NinjaTrader.Cbi.Globals.Accounts[j].Name == "Sim101") //Replay101")//
- {
- account = NinjaTrader.Cbi.Globals.Accounts[j].Name;
- accountindex = j;
- return;
- }
- }
- }
- }
- protected override void OnBarUpdate()
- {
- ma.Set(SMA(Median,period)[0]);//(EMA(SMA(Median,46),37)[0]);
- DrawTextFixed("acct",account + " " + accountindex,TextPosition.BottomLeft,Color.White,textFont,Color.Black,Color.Black,10);
- if ( CurrentBar < period || Historical ) return;
- if (NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions.Count > 0)
- {
- for (int j=0; j < NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions.Count; j++ )
- {
- if ( NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].Instrument.FullName == Instrument.FullName )
- {
- if (NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].MarketPosition == MarketPosition.Short &&
- ma[0] > ma[1])
- {
- Print(Time[0] + " " + NinjaTrader.Cbi.Globals.Accounts[accountindex].Name +" Position " +(j+1) +". "
- +NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].Instrument.FullName +" "
- +NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].MarketPosition +" "
- +NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].Quantity +" "
- +"@"+NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].AvgPrice+" ");
- NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].Close();
- Print("Close Short Position");
- positionindex = j;
- return;
- }
- else if (NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].MarketPosition == MarketPosition.Long &&
- ma[0] < ma[1])
- {
- Print(Time[0] + " " + NinjaTrader.Cbi.Globals.Accounts[accountindex].Name +" Position " +(j+1) +". "
- +NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].Instrument.FullName +" "
- +NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].MarketPosition +" "
- +NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].Quantity +" "
- +"@"+NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].AvgPrice+" ");
- NinjaTrader.Cbi.Globals.Accounts[accountindex].Positions[j].Close();
- Print("Close Long Position");
- positionindex = j;
- return;
- }
- }
- }
- }
- }
- #region Properties
- [Description("")]
- [Category("Parameters")]
- public int Period
- {
- get { return Math.Max(1,period); }
- set { period = 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 ManageTradesV1[] cacheManageTradesV1 = null;
- private static ManageTradesV1 checkManageTradesV1 = new ManageTradesV1();
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public ManageTradesV1 ManageTradesV1(int period)
- {
- return ManageTradesV1(Input, period);
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public ManageTradesV1 ManageTradesV1(Data.IDataSeries input, int period)
- {
- if (cacheManageTradesV1 != null)
- for (int idx = 0; idx < cacheManageTradesV1.Length; idx++)
- if (cacheManageTradesV1[idx].Period == period && cacheManageTradesV1[idx].EqualsInput(input))
- return cacheManageTradesV1[idx];
- lock (checkManageTradesV1)
- {
- checkManageTradesV1.Period = period;
- period = checkManageTradesV1.Period;
- if (cacheManageTradesV1 != null)
- for (int idx = 0; idx < cacheManageTradesV1.Length; idx++)
- if (cacheManageTradesV1[idx].Period == period && cacheManageTradesV1[idx].EqualsInput(input))
- return cacheManageTradesV1[idx];
- ManageTradesV1 indicator = new ManageTradesV1();
- indicator.BarsRequired = BarsRequired;
- indicator.CalculateOnBarClose = CalculateOnBarClose;
- #if NT7
- indicator.ForceMaximumBarsLookBack256 = ForceMaximumBarsLookBack256;
- indicator.MaximumBarsLookBack = MaximumBarsLookBack;
- #endif
- indicator.Input = input;
- indicator.Period = period;
- Indicators.Add(indicator);
- indicator.SetUp();
- ManageTradesV1[] tmp = new ManageTradesV1[cacheManageTradesV1 == null ? 1 : cacheManageTradesV1.Length + 1];
- if (cacheManageTradesV1 != null)
- cacheManageTradesV1.CopyTo(tmp, 0);
- tmp[tmp.Length - 1] = indicator;
- cacheManageTradesV1 = 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>
- ///
- /// </summary>
- /// <returns></returns>
- [Gui.Design.WizardCondition("Indicator")]
- public Indicator.ManageTradesV1 ManageTradesV1(int period)
- {
- return _indicator.ManageTradesV1(Input, period);
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public Indicator.ManageTradesV1 ManageTradesV1(Data.IDataSeries input, int period)
- {
- return _indicator.ManageTradesV1(input, period);
- }
- }
- }
- // This namespace holds all strategies and is required. Do not change it.
- namespace NinjaTrader.Strategy
- {
- public partial class Strategy : StrategyBase
- {
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- [Gui.Design.WizardCondition("Indicator")]
- public Indicator.ManageTradesV1 ManageTradesV1(int period)
- {
- return _indicator.ManageTradesV1(Input, period);
- }
- /// <summary>
- ///
- /// </summary>
- /// <returns></returns>
- public Indicator.ManageTradesV1 ManageTradesV1(Data.IDataSeries input, int period)
- {
- 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.ManageTradesV1(input, period);
- }
- }
- }
- #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement