#region Using declarations
using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Xml.Serialization;
using NinjaTrader.Cbi;
using NinjaTrader.Data;
using NinjaTrader.Indicator;
using NinjaTrader.Gui.Chart;
using NinjaTrader.Strategy;
#endregion
// This namespace holds all strategies and is required. Do not change it.
namespace NinjaTrader.Strategy
{
/// <summary>
/// Enter the description of your strategy here
/// </summary>
[Description("Enter the description of your strategy here")]
public class Amelie3 : Strategy
{
#region Variables
private IOrder entryOrder = null; // This variable holds an object representing our entry order
private IOrder stopOrder = null; // This variable holds an object representing our stop loss order
private IOrder targetOrder = null; // This variable holds an object representing our profit target order
private double diff = 1; // Default setting for Diff
private int perioda = 1; // Default setting for Perioda
private int hranice = 1; // Default setting for Hranice
private int profitTarget = 1; // Default setting for ProfitTarget
private IOrder entryOrder1 = null; // This variable holds an object representing our stop loss order
// User defined variables (add any user defined variables below)
#endregion
/// <summary>
/// This method is used to configure the strategy and is called once before any strategy method is called.
/// </summary>
protected override void Initialize()
{
CalculateOnBarClose = true;
}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{
// Submit an entry limit order if we currently don't have an entry order open
if (CrossAbove(CCI(Perioda), Hranice, 1)&& entryOrder == null && Close[0] > Open[0])
{
/* The entryOrder object will take on a unique ID from our EnterLong()
that we can use later for order identification purposes in the OnOrderUpdate() method. */
entryOrder = EnterLong(1, "MyEntry");
}
if (CrossAbove(CCI(Perioda), Hranice, 1)&& (entryOrder != null||entryOrder1 != null) && Close[0] > Open[0] && High[0] < Variable0 - Diff * TickSize)
{
/* The entryOrder object will take on a unique ID from our EnterLong()
that we can use later for order identification purposes in the OnOrderUpdate() method. */
entryOrder1 = EnterLong(1, "MyEntry1");
}
}
/// <summary>
/// Called on each incoming order event
/// </summary>
protected override void OnOrderUpdate(IOrder order)
{
if (entryOrder != null && entryOrder.OrderState == OrderState.Filled)
{
// ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize);
ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize, "MyFlat", "MyEntry ");
}
if ((entryOrder != null && entryOrder.OrderState == OrderState.Filled) && (entryOrder1 != null && entryOrder1.OrderState == OrderState.Filled))
{
// ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize);
ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize, "MyFlat", "MyEntry ");
ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize, "MyFlat1", "MyEntry" );
}
if ((entryOrder != null && entryOrder == order) || (entryOrder1 != null && entryOrder1 == order))
{
if (order.OrderState == OrderState.Cancelled && order.Filled == 0)
{
entryOrder1 = null;
entryOrder = null;
}
}
}
/// <summary>
/// Called on each incoming execution
/// </summary>
protected override void OnExecution(IExecution execution)
{
if ((entryOrder != null && entryOrder == execution.Order ) || (entryOrder1 != null && entryOrder1 == execution.Order))
Variable0 = execution.Price;
Print(Variable0);
}
/// <summary>
///
/// </summary>
protected override void OnPositionUpdate(IPosition position)
{
if (Position.MarketPosition == MarketPosition.Flat)
{
entryOrder1 = null;
entryOrder = null;
}
DrawTextFixed("MyTag", position.ToString(), TextPosition.BottomRight);
}
#region Properties
[Description("")]
[GridCategory("Parameters")]
public double Diff
{
get { return diff; }
set { diff = Math.Max(0, value); }
}
[Description("")]
[GridCategory("Parameters")]
public int Perioda
{
get { return perioda; }
set { perioda = Math.Max(0, value); }
}
[Description("")]
[GridCategory("Parameters")]
public int Hranice
{
get { return hranice; }
set { hranice = Math.Max(-1000, value); }
}
[Description("")]
[GridCategory("Parameters")]
public int ProfitTarget
{
get { return profitTarget; }
set { profitTarget = Math.Max(1, value); }
}
#endregion
}
}
Announcement
Collapse
No announcement yet.
Partner 728x90
Collapse
NinjaTrader
Strategy doesnt take orders
Collapse
X
-
Strategy doesnt take orders
Hello, my strategy doesnt take orders. Could anybody help me whit it?
PHP Code:Tags: None
-
Last question. Is way to unite this exits to one? My strategy enter into position and if price doesnt rech porfit target a price is under last entry x ticks, strategy enters to seconds entry etc. and Exit price = average position price + profit target.
ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize, "MyFlat", "MyEntry");
ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize, "MyFlat1", "MyEntry1");
Comment
-
Now output window prints
:code:**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
**NT** Error on calling 'OnOrderUpdate' method for strategy 'Aranka/c992e0e99155453e9f3c772975e47737': More than 10000 subsequent user events
PHP Code:#region Using declarations using System; using System.ComponentModel; using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.Xml.Serialization; using NinjaTrader.Cbi; using NinjaTrader.Data; using NinjaTrader.Indicator; using NinjaTrader.Gui.Chart; using NinjaTrader.Strategy; #endregion // This namespace holds all strategies and is required. Do not change it. namespace NinjaTrader.Strategy { /// <summary> /// Enter the description of your strategy here /// </summary> [Description("Enter the description of your strategy here")] public class Aranka : Strategy { #region Variables private IOrder entryOrder = null; // This variable holds an object representing our entry order private IOrder stopOrder = null; // This variable holds an object representing our stop loss order private IOrder targetOrder = null; // This variable holds an object representing our profit target order private double diff = 1; // Default setting for Diff private int profitTarget = 1; // Default setting for ProfitTarget private IOrder entryOrder1 = null; // This variable holds an object representing our stop loss order // User defined variables (add any user defined variables below) #endregion /// <summary> /// This method is used to configure the strategy and is called once before any strategy method is called. /// </summary> protected override void Initialize() { CalculateOnBarClose = true; MaxProcessedEvents = 10000; } /// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { // Submit an entry limit order if we currently don't have an entry order open if (Low[0] == CurrentDayOHL().CurrentLow[0] && entryOrder == null && Close[0] > Open[0]) { /* The entryOrder object will take on a unique ID from our EnterLong() that we can use later for order identification purposes in the OnOrderUpdate() method. */ entryOrder = EnterLong(1, "MyEntry"); } if (Low[0] == CurrentDayOHL().CurrentLow[0]&& (entryOrder != null||entryOrder1 != null) && Close[0] > Open[0] && High[0] < Variable0 - Diff * TickSize) { /* The entryOrder object will take on a unique ID from our EnterLong() that we can use later for order identification purposes in the OnOrderUpdate() method. */ entryOrder1 = EnterLong(1, "MyEntry1"); } } /// <summary> /// Called on each incoming order event /// </summary> protected override void OnOrderUpdate(IOrder order) { if (entryOrder != null && entryOrder.OrderState == OrderState.Filled) { // ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize); // ExitLongLimit(Mn, Position.AvgPrice + ProfitTarget* TickSize, "Flat", "MyEntry" ); ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize, "MyFlat", "MyEntry"); // if (Close[0] > Position.AvgPrice + ProfitTarget* TickSize) // { // ExitLong(); // // } // } if ((entryOrder != null && entryOrder.OrderState == OrderState.Filled) && (entryOrder1 != null && entryOrder1.OrderState == OrderState.Filled)) { ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize); // ExitLongLimit(Mn, Position.AvgPrice + ProfitTarget* TickSize, "Flat", "MyEntry" ); // ExitLongLimit(Mn, Position.AvgPrice + ProfitTarget* TickSize, "Flat1", "MyEntry1" ); ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize, "MyFlat", "MyEntry1" ); ExitLongLimit(Position.AvgPrice + ProfitTarget* TickSize, "MyFlat", "MyEntry"); } if ((entryOrder != null && entryOrder == order) || (entryOrder1 != null && entryOrder1 == order)) { if (order.OrderState == OrderState.Cancelled && order.Filled == 0) { entryOrder1 = null; entryOrder = null; } } } /// <summary> /// Called on each incoming execution /// </summary> protected override void OnExecution(IExecution execution) { if ((entryOrder != null && entryOrder == execution.Order ) || (entryOrder1 != null && entryOrder1 == execution.Order)) Variable0 = execution.Price; Print(Variable0); } /// <summary> /// /// </summary> protected override void OnPositionUpdate(IPosition position) { if (Position.MarketPosition == MarketPosition.Flat) { entryOrder1 = null; entryOrder = null; } DrawTextFixed("MyTag", position.ToString(), TextPosition.BottomRight); } #region Properties [Description("")] [GridCategory("Parameters")] public double Diff { get { return diff; } set { diff = Math.Max(0, value); } } [Description("")] [GridCategory("Parameters")] public int ProfitTarget { get { return profitTarget; } set { profitTarget = Math.Max(1, value); } } #endregion } }
Comment
Latest Posts
Collapse
| Topics | Statistics | Last Post | ||
|---|---|---|---|---|
|
Started by Geovanny Suaza, 02-11-2026, 06:32 PM
|
0 responses
647 views
0 likes
|
Last Post
|
||
|
Started by Geovanny Suaza, 02-11-2026, 05:51 PM
|
0 responses
368 views
1 like
|
Last Post
|
||
|
Started by Mindset, 02-09-2026, 11:44 AM
|
0 responses
108 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
571 views
1 like
|
Last Post
|
||
|
Started by RFrosty, 01-28-2026, 06:49 PM
|
0 responses
573 views
1 like
|
Last Post
by RFrosty
01-28-2026, 06:49 PM
|

Comment