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!
See more
See less

Partner 728x90

Collapse

The unpredictable behavior of a function LastPlayback

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • NinjaTrader_ChelseaB
    replied
    Hello vladko,

    I have received a tracking ID for this behavior.

    For future reference, this item where bars building from data received from API -> LastPlayback is building inconsistenly is being tracked with ID #NTEIGHT-11580.

    Please wait for a future version of NinjaTrader 8 to be released before checking the release notes for this item.

    Leave a comment:


  • NinjaTrader_ChelseaB
    replied
    Hello vladko,

    There has been no update from development at this time.

    We appreciate your patience.

    Leave a comment:


  • vladko
    replied
    NinjaTrader_ChelseaB
    Any news?

    Leave a comment:


  • vladko
    replied
    Ok, will wait.

    Originally posted by NinjaTrader_ChelseaB View Post
    Hello vladko,
    I'm wondering if this is related to the limitation with timestamps and second granularity that was improved to millisecond granularity in NinjaTrader 8.
    With NT8 same thing

    Leave a comment:


  • NinjaTrader_ChelseaB
    replied
    Hello vladko,

    Thanks for your note.

    I was able to reproduce the behavior.
    Free online storage and sharing with Screencast.com. 2 GB of storage and 2 GB of bandwidth per month for free. We won't compress, alter or take ownership of your content.


    The issue appears to be how NinjaTrader is generating the time based bars and not with the LastPlayback function directly.

    Using a 50 Tick chart, the bars are always exactly the same.

    I'm wondering if this is related to the limitation with timestamps and second granularity that was improved to millisecond granularity in NinjaTrader 8.


    I'm asking our development about this and I will post once I have more information.
    Last edited by NinjaTrader_ChelseaB; 04-13-2017, 11:07 AM.

    Leave a comment:


  • vladko
    replied
    NinjaTrader_ChelseaB
    What you think?

    Leave a comment:


  • vladko
    replied
    See the video

    Leave a comment:


  • vladko
    replied
    Of course it work's good with
    Code:
    DateTime.Now.ToString("yyyyMMddHHmmss")
    try my code:

    Code:
    DateTime dt = new DateTime(2017, 4, 11, 9, 0, 0);
                for (int i = 0; i < 300; i++)
                   ncl.LastPlayback("$EURUSD", 10 + i * 0.0001, 1,dt.AddSeconds(i).ToString("yyyyMMddHHmmss"));
    And you will see that each time you run this code the volume of each of the 5 bars will be different

    Leave a comment:


  • NinjaTrader_ChelseaB
    replied
    Hello vladko,

    I've taken some time to create an external test script and test the LastPlayback method from the API interface.

    I was not able to reproduce any issues and this does appear to be working as expected.

    Below is a link to a video of the test.
    Free online storage and sharing with Screencast.com. 2 GB of storage and 2 GB of bandwidth per month for free. We won't compress, alter or take ownership of your content.


    Please let me know if I have performed this test correctly.

    Leave a comment:


  • vladko
    replied
    Any help?
    Thank you.

    Leave a comment:


  • vladko
    replied
    Originally posted by NinjaTrader_ChelseaB View Post
    Hello vladko,

    Are you writing a NinjaScript or are you attempting to call data through the NinjaTrader API from your own external program?
    External program

    Leave a comment:


  • NinjaTrader_ChelseaB
    replied
    Hello vladko,

    Are you writing a NinjaScript or are you attempting to call data through the NinjaTrader API from your own external program?

    Leave a comment:


  • vladko
    replied
    Originally posted by NinjaTrader_ChelseaB View Post
    Hello vladko,

    ncl.LastPlayback is not a documented NinjaTrader method.

    Is this a method that was written by you?

    Are you attempting to read values from a text file?


    Are you trying to print the open, high, low, and close?
    Try:
    Code:
    Print(string.Format("{0} | Open: {1}, High: {2}, Low: {3}, Close: {4}", Time[0], Open[0], High[0], Low[0], Close[0]));
    It's yours method.

    Quote from Help:

    int LastPlayback(string instrument, double price, int size, string timestamp)

    Sets the last price and size for the specified instrument for use when synchronizing NinjaTrader playback with an external application playback. A return value of 0 indicates success and -1 indicates an error. The timestamp parameter format is "yyyyMMddhhmmss".

    Leave a comment:


  • NinjaTrader_ChelseaB
    replied
    Hello vladko,

    ncl.LastPlayback is not a documented NinjaTrader method.

    Is this a method that was written by you?

    Are you attempting to read values from a text file?


    Are you trying to print the open, high, low, and close?
    Try:
    Code:
    Print(string.Format("{0} | Open: {1}, High: {2}, Low: {3}, Close: {4}", Time[0], Open[0], High[0], Low[0], Close[0]));

    Leave a comment:


  • The unpredictable behavior of a function LastPlayback

    Code:
    foreach (string ss in tmp)
    {
    
                            string[] spl = ss.Split(';');
                            if (ss.Length > 20)
                            {
                                double o = Convert.ToDouble(spl[1].Replace('.', ','));
                                double h = Convert.ToDouble(spl[2].Replace('.', ','));
                                double l = Convert.ToDouble(spl[3].Replace('.', ','));
                                double c = Convert.ToDouble(spl[4].Replace('.', ','));
                                ncl.LastPlayback("$EURUSD", o, 1, Convert.ToDateTime(spl[spl.Length - 2]).ToString("yyyyMMddHHmmss"));
                                ncl.LastPlayback("$EURUSD", h, 1, Convert.ToDateTime(spl[spl.Length - 2]).ToString("yyyyMMddHHmmss"));
                                ncl.LastPlayback("$EURUSD", l, 1, Convert.ToDateTime(spl[spl.Length - 2]).ToString("yyyyMMddHHmmss"));
                                ncl.LastPlayback("$EURUSD", c, 1, Convert.ToDateTime(spl[spl.Length - 2]).ToString("yyyyMMddHHmmss"));
    }
    Each time this code is executed in different ways.
    All the candles should be with volume 4 but some of them (randomly) have a volume 3,5,8
    Data candles fit on top of each other
    Last edited by vladko; 04-09-2017, 03:51 PM.

Latest Posts

Collapse

Topics Statistics Last Post
Started by alifarahani, Today, 09:40 AM
6 responses
36 views
0 likes
Last Post alifarahani  
Started by Waxavi, Today, 02:10 AM
1 response
17 views
0 likes
Last Post NinjaTrader_LuisH  
Started by Kaledus, Today, 01:29 PM
5 responses
14 views
0 likes
Last Post NinjaTrader_Jesse  
Started by Waxavi, Today, 02:00 AM
1 response
12 views
0 likes
Last Post NinjaTrader_LuisH  
Started by gentlebenthebear, Today, 01:30 AM
3 responses
17 views
0 likes
Last Post NinjaTrader_Jesse  
Working...
X