I originally had my enter long as GetCurrentAsk() and enter short as (GetCurrentBid(). From what NinjaTrader_Cal said I then tried GetCurrentAsk for both enter long/short. It does basically the same thing just a tick difference. If I could get the reversal working using GetCurrentAsk then I can play with the offset until I get the value that I need.
Announcement
Collapse
No announcement yet.
Partner 728x90
Collapse
NinjaTrader
Help with simple strategy
Collapse
X
-
I am only testing in market replay - I know that this strategy cannot be tested in a straight backtest and I am fine with that.
I originally had my enter long as GetCurrentAsk() and enter short as (GetCurrentBid(). From what NinjaTrader_Cal said I then tried GetCurrentAsk for both enter long/short. It does basically the same thing just a tick difference. If I could get the reversal working using GetCurrentAsk then I can play with the offset until I get the value that I need.
-
Originally posted by [email protected] View PostI am only testing in market replay - I know that this strategy cannot be tested in a straight backtest and I am fine with that.
I originally had my enter long as GetCurrentAsk() and enter short as (GetCurrentBid(). From what NinjaTrader_Cal said I then tried GetCurrentAsk for both enter long/short. It does basically the same thing just a tick difference. If I could get the reversal working using GetCurrentAsk then I can play with the offset until I get the value that I need.
I cannot see why this is such a long thread. Maybe it is time to show a picture with executions, showing where you expect an execution that is not there?
Comment
-
Heh yeah I am certainly not trying to reinvent the wheel here!
So I posted 3 pics. First one before the price crosses over the SMA, Second one where it enters short in the correct place. Third picture where the bar continues to form in an upward direction but no long position was entered. I drew a white line at 92.18 to represent the SMA+ 5 ticks where it should reverse and go long.
If the price starts above the sma the opposite would happen. Enter long first when it gets to sma + 5. reverse to enter short at sma - 5. But as of right now coming from either direction only the initial entry occurs, no reversal
Comment
-
The pictures tell me that there is something fundamentally wrong with your code. There was no cross of the SMA before the short, then there was a cross of the SMA and I see another short. Is what I am seeing correct?Originally posted by [email protected] View PostHeh yeah I am certainly not trying to reinvent the wheel here!
So I posted 3 pics. First one before the price crosses over the SMA, Second one where it enters short in the correct place. Third picture where the bar continues to form in an upward direction but no long position was entered. I drew a white line at 92.18 to represent the SMA+ 5 ticks where it should reverse and go long.
If the price starts above the sma the opposite would happen. Enter long first when it gets to sma + 5. reverse to enter short at sma - 5. But as of right now coming from either direction only the initial entry occurs, no reversal
If so, we need to solve the essential problem of your logic. I seem to remember that you did write something of a technical spec, but that was before I really took an interest. Do you mind writing down your conditions for entry/reversal once again?
Let us examine those first for consistency in description.
Comment
-
Thanks for taking the time to help me!
Technical aspects are as follows: When the price reaches a point + or - 5 ticks away from the SMA a long or short position will be entered (long if 5 ticks above, short if 5 ticks below) if the price then proceeds through the SMA it would then reverse position 5 ticks away from the SMA.
So just to clarify: the crossovers that result in my entering a position are not the price crossing the SMA but rather the crossover of price offset from the SMA by +/- 5 ticks
Hypothetical Examples:
1.) if SMA is at 90.05 and the price is at 89.90 and proceeding upwards. At 90.00 it would enter short, at 90.10 it would reverse position and enter long.
2.) if SMA is at 90.05 and the price is at 90.20 falling at 90.10 it would enter long and at 90.00 it would reverse and enter short.
The pictures show the initial entry as the price goes from the open at 92.02 it proceeds upwards, the SMA is at 92.13. At 92.08 a short position is entered. The pictures show only one position being entered. The downward arrow on the top of the bar just represents the one short position being entered. The white bar shows where the reverse to a long position should happen but did not.
hope that makes sense! and thanks again so much for helping out!
edit: clarification
Comment
-
That is kind of what I was thinking. The scenario that you have described is a bit more complex than you have coded. You are using a line (the SMA) as a target for both an anticipated retracement and an extension if the anticipated retracement fails, so, just as you have described, you, in fact, have to account for the direction of price movement, not just the offset of price from the SMA.Originally posted by [email protected] View PostThanks for taking the time to help me!
Technical aspects are as follows: When the price reaches a point + or - 5 ticks away from the SMA a long or short position will be entered (long if 5 ticks above, short if 5 ticks below) if the price then proceeds through the SMA it would then reverse position 5 ticks away from the SMA.
So just to clarify: the crossovers that result in my entering a position are not the price crossing the SMA but rather the crossover of price offset from the SMA by +/- 5 ticks
Hypothetical Examples:
1.) if SMA is at 90.05 and the price is at 89.90 and proceeding upwards. At 90.00 it would enter short, at 90.10 it would reverse position and enter long.
2.) if SMA is at 90.05 and the price is at 90.20 falling at 90.10 it would enter long and at 90.00 it would reverse and enter short.
The pictures show the initial entry as the price goes from the open at 92.02 it proceeds upwards, the SMA is at 92.13. At 92.08 a short position is entered. The pictures show only one position being entered. The downward arrow on the top of the bar just represents the one short position being entered. The white bar shows where the reverse to a long position should happen but did not.
hope that makes sense! and thanks again so much for helping out!
edit: clarification
Here is how you would correctly state the long side, for example.- If price is rising and crosses above the price level 5 ticks below the SMA, go short.
- If short, (which you should be, if you used market orders on the first condition), and price crosses above 5 ticks higher than the SMA, go long.
Last edited by koganam; 06-10-2013, 05:31 PM.
Comment
-
Hey Koganam,
Sorry for the longer post but I figured I would basically write out my thought process. I went through the help file some more after finding the Position.MarketPosition I went ahead and coded it like this:
Code:{ if (CrossAbove(GetCurrentAsk() + (Offset * TickSize), SMA(SMAlookback), 1)) { EnterShort(DefaultQuantity, ""); } if (CrossBelow(GetCurrentBid() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } if (Position.MarketPosition == MarketPosition.Long) if (CrossBelow(GetCurrentBid() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } if (Position.MarketPosition == MarketPosition.Short) if (CrossAbove(GetCurrentAsk() + (Offset * TickSize), SMA(SMAlookback), 1)) { EnterShort(DefaultQuantity, ""); } }
Still this does not take into account the direction of the price. At first I thought I could use the Greater than ( > ) along with the GetCurrentAsk command, but I couldnt find a way to find last tick ask, you can only grab the current bars open or last bar close and then see if current ask is greater or smaller. And if(GetCurrentAsk > GetCurrentAsk) obviously does not make any sense. But because my code needs to know if the price is falling or rising in comparison to the last tick this would not work. I then found the Rising / Falling commands.
Rising(IDataSeries series)
so then I put the code in like this:
Code:{ if (Rising(GetCurrentAsk)) if (CrossAbove(GetCurrentAsk() + (Offset * TickSize), SMA(SMAlookback), 1)) { EnterShort(DefaultQuantity, ""); } if (Position.MarketPosition == MarketPosition.Short) if (CrossAbove(GetCurrentAsk() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } if (Falling(GetCurrentAsk)) if (CrossBelow(GetCurrentBid() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } if (Position.MarketPosition == MarketPosition.Long) if (CrossBelow(GetCurrentBid() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } }
But still issues are arising. the Falling/Rising commands need IDataseries input whereas the GetCurrentAsk is not an IDataseries input (thanks to nailz420 I found this out yesterday). So then I am getting a couple errors that I believe relate to me using the falling/rising commands incorrectly.
error 1: Argument '1'; cannot convert from 'method group' to 'NinjaTrader.Data.IDataseries'
error 1: The best overloaded method match for 'NinjaTrader.Strategy.StrategyBase.Falling(Ninjatr ader.Data.IDataseries)' has some invalid arguments.
Anyways sorry again for what is probably alot of beginner questions but thanks alot for the help!
Comment
-
yeah that is what I realized that GetCurrentAsk is not designed for the Rising/Falling (see my last post)
Unfortunately my strategy has to have COBC = false.
Comment
-
Your technical spec., as I translated it is very straightforward, and just needs to be translated properly into code, using the correct syntax. GetCurrentAsk() returns a double, and is, therefore, not the correct type of variable to pass to a CrossAbove command. The first argument must be a DataSeries. We are talking about price, so the one that makes the most sense is Close.Originally posted by [email protected] View PostHey Koganam,
Sorry for the longer post but I figured I would basically write out my thought process. I went through the help file some more after finding the Position.MarketPosition I went ahead and coded it like this:
Code:{ if (CrossAbove(GetCurrentAsk() + (Offset * TickSize), SMA(SMAlookback), 1)) { EnterShort(DefaultQuantity, ""); } if (CrossBelow(GetCurrentBid() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } if (Position.MarketPosition == MarketPosition.Long) if (CrossBelow(GetCurrentBid() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } if (Position.MarketPosition == MarketPosition.Short) if (CrossAbove(GetCurrentAsk() + (Offset * TickSize), SMA(SMAlookback), 1)) { EnterShort(DefaultQuantity, ""); } }
Still this does not take into account the direction of the price. At first I thought I could use the Greater than ( > ) along with the GetCurrentAsk command, but I couldnt find a way to find last tick ask, you can only grab the current bars open or last bar close and then see if current ask is greater or smaller. And if(GetCurrentAsk > GetCurrentAsk) obviously does not make any sense. But because my code needs to know if the price is falling or rising in comparison to the last tick this would not work. I then found the Rising / Falling commands.
Rising(IDataSeries series)
so then I put the code in like this:
Code:{ if (Rising(GetCurrentAsk)) if (CrossAbove(GetCurrentAsk() + (Offset * TickSize), SMA(SMAlookback), 1)) { EnterShort(DefaultQuantity, ""); } if (Position.MarketPosition == MarketPosition.Short) if (CrossAbove(GetCurrentAsk() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } if (Falling(GetCurrentAsk)) if (CrossBelow(GetCurrentBid() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } if (Position.MarketPosition == MarketPosition.Long) if (CrossBelow(GetCurrentBid() + (Offsetneg * TickSize), SMA(SMAlookback), 1)) { EnterLong(DefaultQuantity, ""); } }
But still issues are arising. the Falling/Rising commands need IDataseries input whereas the GetCurrentAsk is not an IDataseries input (thanks to nailz420 I found this out yesterday). So then I am getting a couple errors that I believe relate to me using the falling/rising commands incorrectly.
error 1: Argument '1'; cannot convert from 'method group' to 'NinjaTrader.Data.IDataseries'
error 1: The best overloaded method match for 'NinjaTrader.Strategy.StrategyBase.Falling(Ninjatr ader.Data.IDataseries)' has some invalid arguments.
Anyways sorry again for what is probably alot of beginner questions but thanks alot for the help!
Moreover, what you have written does not even match the spec. You clearly say, as I have translated, to enter long if you are short, and the SMA is violated. You have coded to enter Long if violated, which is an addon, not a reversal. You simply have to examine the logic of what you write.
The point of writing a technical spec. is to specify what you intend to code. Once the spec, is written you simply translate the statements into exactly matching code; the only thinking involved at that stage is to get the syntax correct. You must code to the logic wiitten in the spec. That is where the heavy thinking was done.
Here is how you write the long side. I have not tested the code, so let us know if it does not compile. Complete one side first, then just write the other side: it makes it much simpler to keep track of what you are doing.
Code:[FONT=Courier New][COLOR=#0000ff][FONT=Courier New][COLOR=#0000ff]if[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000] (Rising(Close))[/COLOR][/FONT] [FONT=Courier New]{[/FONT] [FONT=Courier New][COLOR=#0000ff][FONT=Courier New][COLOR=#0000ff]if[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000] (CrossAbove(Close, SMA(SMAlookback)[[/COLOR][/FONT][FONT=Courier New][COLOR=#800080][FONT=Courier New][COLOR=#800080]1[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000]] - Offset * TickSize, [/COLOR][/FONT][FONT=Courier New][COLOR=#800080][FONT=Courier New][COLOR=#800080]1[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000])) EnterShort(DefaultQuantity, [/COLOR][/FONT][FONT=Courier New][COLOR=#800000][FONT=Courier New][COLOR=#800000]""[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000]);[/COLOR][/FONT] [FONT=Courier New][COLOR=#0000ff][FONT=Courier New][COLOR=#0000ff]if[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000] (Position.MarketPosition == MarketPosition.Short && CrossAbove(Close, SMA(SMAlookback)[[/COLOR][/FONT][FONT=Courier New][COLOR=#800080][FONT=Courier New][COLOR=#800080]1[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000]] + Offset * TickSize, [/COLOR][/FONT][FONT=Courier New][COLOR=#800080][FONT=Courier New][COLOR=#800080]1[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000])) EnterLong(DefaultQuantity, [/COLOR][/FONT][FONT=Courier New][COLOR=#800000][FONT=Courier New][COLOR=#800000]""[/COLOR][/FONT][/COLOR][/FONT][FONT=Courier New][COLOR=#000000]);[/COLOR][/FONT] [FONT=Courier New]}[/FONT] [FONT=Courier New]}[/FONT]Last edited by koganam; 06-11-2013, 10:21 AM.
Comment
-
Thanks again for all the help.
Your code does make alot of sense the way it is written, much simpler then how I was still going about it!...
When testing it I ran into a couple of challenges. At first it started buying multiple contracts.
I added in:
EntriesPerDirection = 1;
EntryHandling = EntryHandling.AllEntries;
Which solved that.
The first part of the logic works fine as far as I can tell [ if (CrossAbove(Close, SMA(SMAlookback)[1] - Offset * TickSize, 1)) EnterShort(DefaultQuantity, ""); ] It gave me a short position as the price came up to the SMA - 5.
The second part of the code:
if (Position.MarketPosition == MarketPosition.Short && CrossAbove(Close, SMA(SMAlookback)[1] + Offset * TickSize, 1)) EnterLong(DefaultQuantity, "");
however something is not right with the entry system. When it reaches the SMA + 5 it goes long, then short, long then short multiple times (if I dont pause my market replay it will sit their and reverse 100 times probably).
I have tried to read through the user manual but once again am stuck
so I once again must ask for some more wisdom!
Comment
-
Your oscillating position tells me that you ignored both of my recommendations about how to write your code.Originally posted by [email protected] View PostThanks again for all the help.
Your code does make alot of sense the way it is written, much simpler then how I was still going about it!...
When testing it I ran into a couple of challenges. At first it started buying multiple contracts.
I added in:
EntriesPerDirection = 1;
EntryHandling = EntryHandling.AllEntries;
Which solved that.
The first part of the logic works fine as far as I can tell [ if (CrossAbove(Close, SMA(SMAlookback)[1] - Offset * TickSize, 1)) EnterShort(DefaultQuantity, ""); ] It gave me a short position as the price came up to the SMA - 5.
The second part of the code:
if (Position.MarketPosition == MarketPosition.Short && CrossAbove(Close, SMA(SMAlookback)[1] + Offset * TickSize, 1)) EnterLong(DefaultQuantity, "");
however something is not right with the entry system. When it reaches the SMA + 5 it goes long, then short, long then short multiple times (if I dont pause my market replay it will sit their and reverse 100 times probably).
I have tried to read through the user manual but once again am stuck
so I once again must ask for some more wisdom! 
- You did not write down in words, the short side processing before you tried to code it.
- You did not get each side working independently before concatenating them.
I find it difficult to help when what I recommend is ignored. Show me the short side working independently, and you will not need me to help answer any questions.
(IOW, I can see that this sounds like a rebuke: it is not meant in that manner. I got the impression that you wanted to understand how to code, and I am simply saying that we all learned to walk first, before we could run. Actually, I still cannot run:
every day brings something new to learn).
Comment
-
No worries, I had to go out and deal with some other stuff or I would have responded straight away. I am quite happy to go through this learning process! I have learned a fair amount so far and I know I am really just crawling right now!
Believe it or not I did/am try and follow your recommendations
! last night I typed out what I was trying to accomplish, printed it out so I could read it on paper, not just on the screen.
What I typed out was the following.
If the price is rising:
1. If the price crosses above the 5 ticks below the SMA, go short
2. If short, and price crosses above 5 ticks higher than the SMA, go long
If the price is falling:
1. If the price crosses below the 5 ticks below the SMA, go long
2. If long and price crosses above 5 ticks below the SMA, go short
When I compared that ^^ to the code you wrote:
the code that you wrote logically matches the goals that I wrote that I wanted to accomplish (I see how what I was writing was unnecessarily convoluted).Code:if (Rising(Close)) { if (CrossAbove(Close, SMA(SMAlookback)[1] - Offset * TickSize, 1)) EnterShort(DefaultQuantity, ""); if (Position.MarketPosition == MarketPosition.Short && CrossAbove(Close, SMA(SMAlookback)[1] + Offset * TickSize, 1)) EnterLong(DefaultQuantity, ""); } }
It also made sense to try and get just the rising price side working first, before adding in the falling price. My code currently is as follows:
From this code it started to oscillate the positions - I took a few snippets of the screen as it progressed - #3 there were 2 many dots so it doesnt show cleanly where it began so I attached #4 which shows the executions beginning at 92.18 - which is +5 of the SMA.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> /// bam /// </summary> [Description("bam")] public class MA2 : Strategy { #region Variables // Wizard generated variables private int sMAlookback = 50; // Default setting for SMAlookback private int offset = 5; // Default setting for Offset private int offsetneg = -5; // Default setting for Offsetneg // 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() { Add(SMA(SMAlookback)); Add(SMA(SMAlookback)); CalculateOnBarClose = false; TraceOrders = true; EntriesPerDirection = 1; EntryHandling = EntryHandling.AllEntries; } /// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { if (Rising(Close)) { if (CrossAbove(Close, SMA(SMAlookback)[1] - Offset * TickSize, 1)) EnterShort(DefaultQuantity, ""); if (Position.MarketPosition == MarketPosition.Short && CrossAbove(Close, SMA(SMAlookback)[1] + Offset * TickSize, 1)) EnterLong(DefaultQuantity, ""); } } #region Properties [Description("")] [GridCategory("Parameters")] public int SMAlookback { get { return sMAlookback; } set { sMAlookback = Math.Max(50, value); } } [Description("")] [GridCategory("Parameters")] public int Offset { get { return offset; } set { offset = Math.Max(5, value); } } [Description("")] [GridCategory("Parameters")] public int Offsetneg { get { return offsetneg; } set { offsetneg = Math.Max(-5, value); } } #endregion } }
I am confused as to why it is oscillating positions as there is no part of the logic of the code that says go short while price is above the SMA.
I sincerely appreciate your help in taking the time to help me!
Comment
-
You have a disconnect.The code that you have posted here cannot possibly be the code that you are running.Originally posted by [email protected] View PostNo worries, I had to go out and deal with some other stuff or I would have responded straight away. I am quite happy to go through this learning process! I have learned a fair amount so far and I know I am really just crawling right now!
Believe it or not I did/am try and follow your recommendations
! last night I typed out what I was trying to accomplish, printed it out so I could read it on paper, not just on the screen.
What I typed out was the following.
If the price is rising:
1. If the price crosses above the 5 ticks below the SMA, go short
2. If short, and price crosses above 5 ticks higher than the SMA, go long
If the price is falling:
1. If the price crosses below the 5 ticks below the SMA, go long
2. If long and price crosses above 5 ticks below the SMA, go short
When I compared that ^^ to the code you wrote:
the code that you wrote logically matches the goals that I wrote that I wanted to accomplish (I see how what I was writing was unnecessarily convoluted).Code:if (Rising(Close)) { if (CrossAbove(Close, SMA(SMAlookback)[1] - Offset * TickSize, 1)) EnterShort(DefaultQuantity, ""); if (Position.MarketPosition == MarketPosition.Short && CrossAbove(Close, SMA(SMAlookback)[1] + Offset * TickSize, 1)) EnterLong(DefaultQuantity, ""); } }
It also made sense to try and get just the rising price side working first, before adding in the falling price. My code currently is as follows:
From this code it started to oscillate the positions - I took a few snippets of the screen as it progressed - #3 there were 2 many dots so it doesnt show cleanly where it began so I attached #4 which shows the executions beginning at 92.18 - which is +5 of the SMA.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> /// bam /// </summary> [Description("bam")] public class MA2 : Strategy { #region Variables // Wizard generated variables private int sMAlookback = 50; // Default setting for SMAlookback private int offset = 5; // Default setting for Offset private int offsetneg = -5; // Default setting for Offsetneg // 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() { Add(SMA(SMAlookback)); Add(SMA(SMAlookback)); CalculateOnBarClose = false; TraceOrders = true; EntriesPerDirection = 1; EntryHandling = EntryHandling.AllEntries; } /// <summary> /// Called on each bar update event (incoming tick) /// </summary> protected override void OnBarUpdate() { if (Rising(Close)) { if (CrossAbove(Close, SMA(SMAlookback)[1] - Offset * TickSize, 1)) EnterShort(DefaultQuantity, ""); if (Position.MarketPosition == MarketPosition.Short && CrossAbove(Close, SMA(SMAlookback)[1] + Offset * TickSize, 1)) EnterLong(DefaultQuantity, ""); } } #region Properties [Description("")] [GridCategory("Parameters")] public int SMAlookback { get { return sMAlookback; } set { sMAlookback = Math.Max(50, value); } } [Description("")] [GridCategory("Parameters")] public int Offset { get { return offset; } set { offset = Math.Max(5, value); } } [Description("")] [GridCategory("Parameters")] public int Offsetneg { get { return offsetneg; } set { offsetneg = Math.Max(-5, value); } } #endregion } }
I am confused as to why it is oscillating positions as there is no part of the logic of the code that says go short while price is above the SMA.
I sincerely appreciate your help in taking the time to help me!- Did you modify your own existing code to what you have posted here?
- If so, did you recompile the strategy after you edited it?
- If so, did you reload the strategy on the chart?
Comment
-
I am sorry if it seems like I am asking repetitive dumb questions - I am legitimately trying.
Yes I am 100% certain that I am not running any old code.
In the past I was editing a previous version just updating the changes. I just created a new file that never had any of the old code in their making sure to only put in exactly what was relevant.
edit:
Yes I am hitting the compile button, then I hit the save button, then I reload the strategy onto the chart after any changes - I learned that last week
It did the exact same as before, entering at 92.09, and then oscillating positions at 92.18 :/
Sorry to seem such a bother
Last edited by [email protected]; 06-13-2013, 07:51 AM.
Comment
Latest Posts
Collapse
| Topics | Statistics | Last Post | ||
|---|---|---|---|---|
|
Started by Geovanny Suaza, 02-11-2026, 06:32 PM
|
0 responses
649 views
0 likes
|
Last Post
|
||
|
Started by Geovanny Suaza, 02-11-2026, 05:51 PM
|
0 responses
370 views
1 like
|
Last Post
|
||
|
Started by Mindset, 02-09-2026, 11:44 AM
|
0 responses
109 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
574 views
1 like
|
Last Post
|
||
|
Started by RFrosty, 01-28-2026, 06:49 PM
|
0 responses
576 views
1 like
|
Last Post
by RFrosty
01-28-2026, 06:49 PM
|

Comment