Announcement
Collapse
Looking for a User App or Add-On built by the NinjaTrader community?
Visit NinjaTrader EcoSystem and our free User App Share!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
Have a question for the NinjaScript developer community? Open a new thread in our NinjaScript File Sharing Discussion Forum!
See more
See less
Partner 728x90
Collapse
NinjaTrader
NT hangs when I run a strategy
Collapse
X
-
Hello,
I just wanted to update you.
Because of the size of this script I am having difficulty locating what is exactly causing the issue with the BarsSinceSession specifically.
I know that one thing that may come up is that the AccountValue is only displayed as a value above 0 in realtime data otherwise it is reported as a 0.
As for the BarsSinceSession I am still looking into this. It is possible that it would be better to take just the BarsSinceSession logic into a separate file for testing. I will continue looking at this file, if you can easily duplicate the logic in a separate file to test I would recommend that otherwise we will need to continue to see what is happening with the barsSinceSession here
I look forward to being of further assistance .
-
Problem with the way the ninjatrader code is executing
Hi. I am having some problems with the way some ninjatrader code is executing. I have attached my strategy, which won't enable because of the forementioned problem, for reference. As you can see from lines 96 & 97, the BarsSinceSession is printed to the output window and if you look at a screenshot of the chart I have attached, you will notice that there are numerous bars since the session started but from the screenshot of the output window which I have attached, you can see that the value printed is 1. Line 106 calls a method NumberOfContracts() whose code is from line 328 and despite the cash value of the sim account being $1000, the value written to the text file is zero. I have narrowed down the cause of the error caused when the program attempts to enable the strategy to the for loop in the CheckBars() method which is called in line 105 and its code is from 408. If the number of BarsSinceSession is not correct as in this case, the for loop doesn't work well. Could you please tell me why the value of the BarsSinceSession and AccountValue are not as they should be when I try to enable the strategy? Thanks.
Leave a comment:
-
mbesha, correct the Performance collection would only hold completed / booked trades.
For the current strategy position, you could look into the Position object -
If you're working MultiSeries - https://www.ninjatrader.com/support/.../positions.htm
Leave a comment:
-
Hi Jesse. I got a quick question for you. How do you get the current number of open trades? I tried using Performance.RealtimeTrades.Count but it only seems to get the number of past trades but not the live ones. Thanks.
Leave a comment:
-
Hello,
For the single print statement it would be listed in your Tools -> Output window. I am just referring to commenting out any prints that are not relevant and just using one Print() statement and moving it line by line as needed.
I generally only use the NinjaScript editor for most everything, in the cases that I can not use the NinjaScript editor for some reason (I.E. customer indicator causes NinjaTrader to crash while running it), in that situation I may run a debug using visual studio if it is necessary.
The NinjaScript editor in general can be used for just about all items NinjaScript related so I would not really recommend looking into any alternative editors until you feel very comfortable with not only NinjaScript but C# in general. Besides, not having more advanced code completion features causes you to use the resources available to you and helps you learn it better.
Please let me know if I may be of additional assistance.
Leave a comment:
-
Hi Jesse
I really owe you one, actually more than one by now, because my strategy is up and running now thanks to the changes you recommended. I will keep the tip you gave in mind the next time I have to debug my code but how exactly do you see the single printed statement? Do you do your debugging on NT or on a different software because if the strategy isn't enabled in NT, nothing prints on the output window but an error message is displayed instead. Anyway, a million thanks and your support and assistance are a prime reason why NT is my preferred trading software!Last edited by mbesha; 09-11-2014, 09:48 PM.
Leave a comment:
-
Hello,
It looks like you are not closing the stream writer in your ToWrite() method.
The streamwriter would need to be closed between each write, Here is a example:
Code:private void ToWrite(string txt) //Input of the StreamWriter { sw = new StreamWriter(path, true, System.Text.Encoding.UTF8); sw.WriteLine(txt); sw.Close(); }
I place a print in the top of OnBarUpdate because the error indicated that's where it was coming from.
I compile and run it, it of course terminates but my print printed, now i move below the next line and work my way through the code until I hit the point where it no longer prints.
While this is a slow way to debug it sometimes is the only fast option so that's how i determined it was the ToWrite method.
Please let me know if I may be of additional assistance.
Leave a comment:
-
Hi Jesse
Thanks for your prompt response. I have only included this code in the Initialize() section for my secondary data.
Add("M6E 09-14",PeriodType.Second,5);
Other than that and the primary data, I don't have any custom DataSeries. Could you please take a look at the code for me because I have tried everything to no avail. Thanks
Leave a comment:
-
Hello,
I wanted to ask have you defined any custom DataSeries in your script?
Generally the error you are getting is related to a variable that was defined but given a value so it is not set to anything essentially.
Being that this is happening on startup it is most likely that there is a data series that needs to be corrected or that there is a null value variable.
The most common is when you create a data series like this
Code:DataSeries test;
but forget to add in your Initialize()
Code:test = new DataSeries(this);
That is just a example as other types of objects could do this.
If you would like I can take a look at the code if you can not locate it.
I look forward to being of further assistance.
Leave a comment:
-
Error message when trying to enable strategy
Hi Jesse
Thanks as always for your help. I have encountered a problem when trying to enable my strategy. I keep getting an error message saying "Object reference not set to an instance of an object" despite the fact that the strategy code compiled without any problems. I have tried checking my code over again and again but I still can't pinpoint where the problem is. Can you please help me figure this out? I have attached my strategy file and a screenshot of the data settings for the primary data. Thanks.
Leave a comment:
-
Hello mbesha,
For this could you please write me at platformsupport @ ninjatrader.com so that I can look into what you are seeing a little more.
Please reference the link to this forum thread in the email so that It can get to me.
I look forward to being of further assistance.
Leave a comment:
-
Question about the way the chart is plotting
Hi Jesse. I have a question for you regarding the way the bars are being plotted on the chart. As you can see from the screenshot I have attached, the chart is for the M6E 09-14 series and this is today's data. I have also attached a screenshot of the chart properties for your reference. Since it is a line break chart, I do not expect to see bars with zero range being plotted but that is what I find on the chart. Could you please tell me why this is happening? Thanks as always for your help and assistance.
Leave a comment:
-
Hello,
If you are trying to use DateTime.Now instead of Time[0] you would just need to replace Time[0] with DateTime.Now
Time[barsAgo] does exactly the same thing as DateTime.Now except that Time[barsAgo] you tell it how many bars ago to get the date from. Either way Time[0] and DateTime.Now return a DateTime object.
You can then use ToTime to convert the DateTime into a integer value for easy comparison.
Here is a example where I switched the two:
Code:if((ToTime(DateTime.Now) >= 070000 && ToTime(DateTime.Now) <= 235959) || (ToTime(DateTime.Now) >= 000000 && ToTime(DateTime.Now) <= 061500))
Please let me know if I may be of additional assistance.
Leave a comment:
-
Thanks for your input. Could you please tell me how exactly to code for DateTime.Now instead of Time[0]? For example, would this code "Condition 2 <= ToTime(DateTime.Now) >= Condition 1" for the time and "DateTime.Now.DayOfWeek == DayOfWeek.Saturday" for the day work? Please let me know.
Leave a comment:
-
Hello mbesha,
You are correct the Time[0] will return the timestamp from the bar.
Time[0] is returning a DateTime object so it can be replaced with DateTime.Now to return the current PC time instead.
DateTime is an object of time which has methods that are built into it for different time manipulations. Getting the current time, or subtracting or adding time from a date and so on.
Here is a link for more information on DateTIme in C# http://msdn.microsoft.com/en-us/libr...v=vs.110).aspx
Please try and use the DateTime.Now and see if that corrects the results for your time condition.
I look forward to being of further assistance.
Leave a comment:
Latest Posts
Collapse
Topics | Statistics | Last Post | ||
---|---|---|---|---|
Started by PaulMohn, Today, 03:49 AM
|
0 responses
6 views
0 likes
|
Last Post
by PaulMohn
Today, 03:49 AM
|
||
Started by inanazsocial, Today, 01:15 AM
|
1 response
8 views
0 likes
|
Last Post Today, 02:18 AM | ||
Started by rocketman7, Today, 02:12 AM
|
0 responses
10 views
0 likes
|
Last Post
by rocketman7
Today, 02:12 AM
|
||
Started by dustydbayer, Today, 01:59 AM
|
0 responses
4 views
0 likes
|
Last Post
by dustydbayer
Today, 01:59 AM
|
||
Started by trilliantrader, 04-18-2024, 08:16 AM
|
5 responses
23 views
0 likes
|
Last Post Today, 12:32 AM |
Leave a comment: