Announcement

Collapse
No announcement yet.

EFS Reset--WHY??

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

  • EFS Reset--WHY??

    I have some EFS running on a chart that draw system images on the chart at entry points. And then when I load a new chart, a different symbol all together, sometimes all my system symbols that have been generates for hours on my other chart, disappear, as if I had just loaded the EFS.

    I was running my EFS on DAX and FTSE for 6 hours -- all fine. Than at US open I opened up SP E-Mini chart (ES-#F), with just a Stochastics and MACD on (no efs at all), and all my signals on DAX and FTSE disappeared, as if it reset itself.

    This is very frustrating. Since my signals are based on live data and not end of bar data, if I lose them I can not recreate them for review later on.

    Please help

  • #2
    Hello Alex,

    I've been doing some testing on this issue this morning and I am not seeing this problem occur as you have described it. There's a couple things you could check. Is your default Advanced Chart set to have either Symbol or Interval linking turned on by default? If it is, set up a new chart with a default symbol that you never use. Set the chart's time template to the 24-hour time template and then turn off the symbol and interval linking. Then save this chart as your default (Chart Options-->Style Templates-->Set As Default).

    There are only two events I can think of that can cause a chart to reset other than manually resetting that chart directly with a Ctrl-Click on the Server Status label in the Cursor Window.

    1 - A manual reset on another chart that is set to the same symbol and interval. This happens by default because both charts will be using the same cache. Any other chart that is set to the same interval and symbol gets reset by default. Therefore, any formulas running in that chart will also be reloaded.

    2 - Server Disconnection/Reconnection. If your connection to the data server is lost for whatever reason, the data manager automatically tries to reconnect you. Upon reconnection, your charts will get reset to fill in any data that was missed while you were not connected. It's possible this may be happening to you. If the other info I've provided above does not resolve this issue, then I would recommend you contact our Customer Service department directly and ask them to check your connection log. They will be able to see if you are have any connection issues. If this is the case, I'm not certain there is a solution.

    Code-wise, there is a possible solution, but would require some advanced coding on your end. The idea would be to write some time stamped information to a text file using the File object when your formula draws the images. Then you could add a routine that would parse this text file in the event of a reset by checking for BARSTATE_ALLBARS and use the info to redraw all your historical images that were drawn during the day.
    Jason K.
    Project Manager
    eSignal - an Interactive Data company

    EFS KnowledgeBase
    JavaScript for EFS Video Series
    EFS Beginner Tutorial Series
    EFS Glossary
    Custom EFS Development Policy

    New User Orientation

    Comment


    • #3
      Believe me it exists. It has plagued me for months. Usually at 1 am I set up DAX, FTSE, CAC and Euro-FX to 1 min, 1day 2am-3:15 pm time templates, and load my EFS into them, and the run fine. Then at 8 am I will load up either AB, ES, or YM #F, and sometimes it takes about 1 entire minute for one of these charts to load up -- then I know I am in trouble and all my charts get reset. I did not notice any server disconnection during this time -- my esignal green light was on all the time. If they load in 10 sec or so, I will be OK. Even if I load my "deafult" chart -- ES#F with Stochastics and MACD, 1 min, 24 hr, like I did today, it reset everything--every other chart, **all** different symbols. But this does not always happen either. I have no symbol or interval linking turned on.

      Even if there is a server connection issue, how can I prevent an efs from recalculating old signals. Once it starts to recalculate, it wipes out **all** my past signal and only generates signals from the new point onwards

      Your coding suggestion intrigues me. My EFS is rather complicated and in it I have a nifty routine where when a signal is generates, I write the name of the chart to a file on hard disk, and then my Macro Express macro is running, and if a new chart name is found by it, it pops up that chart and maximizes it. In this way the chart pops up whenever a signal is generated. So, I know how to write to file. I could write the bar times and price location of each signal generated to a file. And so I have some idea of how to reverse this process.

      I use the system symbols for my signals (since the use of user gifs/jpgs does not work in this build). Is there some sample code you can show me that would read data from a file to place, say SystemHappyFaces on a certain bars at a certain prices all throught a trading day. My difficulty is figuring how to identify the price bar correctly, say I want to recreate signals generated/saved a week ago. Do you have any sample code?

      Thanks

      Comment


      • #4
        Hello Alex,

        There currently isn't a way to prevent an EFS from reloading if the Advanced Chart it is running on gets reset. I don't think we could allow this behavior anyway because if a chart needs to be reset because of a disconnect preventing the EFS from reloading would result in an EFS display that would potentially be out of sync with the new chart bars. The only way to resync it would be to reprocess (reload) the EFS on the new chart data.

        As for the code suggestion, I have not written one. I'm just giving you some ideas as to how to resolve this through EFS code. Here's some more specifics on how I would go about creating this routine.

        Inside the condition where you make the drawImage... calls, write to a file the time stamp of the bar using rawtime(0), the image name and the price level where it was drawn. You would first check to see if this file already exists and create a new one if not. If your study hasn't created the file before create a new one and name it using the string returns of getSymbol() and getInterval(). You may want to parse out any special characters in the symbol if you use this routine on ES etc. This file will store all the information you need for redrawing this history for the symbol and interval in question. Upon a reset, which you can detect by checking for if (getBarState() == BARSTATE_ALLBARS) { ..., open your custom history file and parse all the data into some arrays, then close the file and prevent any new records from being added until your formula is processing bar 0. Now, as the formula processes each bar during the reload, search your array for the rawtime(0) of the bar that is currently being processed. If that value is found, then draw your system image with the corresponding image name and price level. Hope this helps get you going.
        Jason K.
        Project Manager
        eSignal - an Interactive Data company

        EFS KnowledgeBase
        JavaScript for EFS Video Series
        EFS Beginner Tutorial Series
        EFS Glossary
        Custom EFS Development Policy

        New User Orientation

        Comment


        • #5
          I am implementing your suhhestion but am stuck on one point

          When I run this code, where I am saving the name of the drawn image, it's location (vEntry), and its bar...(see PIC where the Happy Face was drawn on the chart)

          vTRADECounter = vTRADECounter + 1;
          vLastSF = vTRADECounter;
          drawImageRelative(0, vEntry, "SystemHappyFace", null, Image.RIGHT | Image.ONTOP, "SF" + vTRADECounter);
          if (bSAVEIT) {
          var a = new File("FFF.txt"); //the file will be created in: eSignal/FormulaOutput/
          a.open("at+"); // Opens and appends the file
          if(!a.isOpen()) {
          // debugPrintln("Could not open file!");
          }
          else {
          a.writeln("SystemHappyFace");
          a.writeln(vEntry);
          a.writeln(rawtime(0));
          }
          a.close();
          }
          I get this as a result:

          SystemHappyFace
          [object Series]
          1141734780

          What is wrong with vEntry that I get "object Series?"
          Attached Files

          Comment


          • #6
            Hello Alex,

            Use vEntry.getValue(0) to extract the current bar's value from the series.

            As an aside, I would also write the three pieces of info to a single line in your file with a separator.

            a.writeln(rawtime(0) + "|" + "SystemHappyFace" + "|" + vEntry.getValue(0));

            That way, when you are reading the data back into your EFS you can use the string.split() method, which will split the string into an array.
            Jason K.
            Project Manager
            eSignal - an Interactive Data company

            EFS KnowledgeBase
            JavaScript for EFS Video Series
            EFS Beginner Tutorial Series
            EFS Glossary
            Custom EFS Development Policy

            New User Orientation

            Comment


            • #7
              I am fed up with esignal

              I had DAX, FTSE, CAC, RUSSEL, and DOW charts running with my EFSes. Live signals been generated for hours. I even loaded up GBP and CAD later on without any signal interuption - they came up fast and EFS loaded without messing anything up on other charts

              JUST NOW, I then opened OIL, QMJ6 with the EFS, and it took 1 minute to load up, and ALL MY OTHER charts then lost their live signals. I saw no interupption of server connection.

              So, it does not matter what chart you are loading up -- it (efs reset) can happen at any time

              Comment


              • #8
                Hello Alex,

                There is most likely a connection problem between you and our servers. At this point you should call into Technical Support and ask them to take a look at your connection log. It is possible that you are experiencing connection issues that you can't see from your desktop. There are many users and formulas that collect and display information such as yours and don't have this reset problem. I think this issue is related to some other source and not the eSignal application. If it was we would have widespread reports of this resetting issue.
                Jason K.
                Project Manager
                eSignal - an Interactive Data company

                EFS KnowledgeBase
                JavaScript for EFS Video Series
                EFS Beginner Tutorial Series
                EFS Glossary
                Custom EFS Development Policy

                New User Orientation

                Comment


                • #9
                  I called and they said to delete the 2 eSignal ini files and reinstall esignal. They said 92%of bottleneck issues are related to "older" eSignal ini files.

                  We'll see.

                  Comment


                  • #10
                    EFS Reset 2

                    I am inplementing your suggestions, and I think I am close, but it is not working.

                    I have a TEST dat file of a few entries, and I loaded the last 5 bars of FTSE, and rigged the data file so that there will be two matches of bars and data based on RAWTIME(0).

                    here is my code, and please see the pic for the results of what happened when I ran this code -- no smily faces or exclamation marks were drawn. Two should have been drawn, and Formula Output windows shows two matches were found.

                    Any clues what is not working?

                    PHP Code:
                    var sCurrentSignalData null;
                    var 
                    sCurrentSignalDataArray null;
                    var 
                    sCurrentSignalDataBAR null;
                    var 
                    sCurrentSignalDataSYM null;
                    var 
                    sCurrentSignalDataPRI null;

                    function 
                    preMain() {
                       
                    setPriceStudy(true);
                       
                    setStudyTitle("Load Live Signals");
                       
                    setShowCursorLabel(false);
                    }

                    function 
                    main() {
                        var 
                    = new File("TEST.txt");
                        
                    f.open("rt");
                        while(!
                    f.eof()) {
                            
                    sCurrentSignalData f.readln();
                            if (
                    sCurrentSignalData != null) {
                                
                    sCurrentSignalDataArray sCurrentSignalData.split("|");
                                
                    sCurrentSignalDataBAR sCurrentSignalDataArray[0];
                                
                    sCurrentSignalDataSYM sCurrentSignalDataArray[1];
                                
                    sCurrentSignalDataPRI sCurrentSignalDataArray[2];
                                if ( 
                    rawtime(0) == sCurrentSignalDataBAR ) {
                                    
                    drawImageRelative(0sCurrentSignalDataPRIsCurrentSignalDataSYMnullImage.RIGHT Image.ONTOP"CM" rawtime(0));
                                    
                    debugPrintln("MATCH FOUND! -- DREW " sCurrentSignalDataSYM);
                                }


                    //            debugPrintln("Line: [" + sCurrentSignalData + "]");
                                
                    debugPrintln("LiveData: " sCurrentSignalDataBAR "   " sCurrentSignalDataSYM "   " sCurrentSignalDataPRI " " );
                            }

                        }                
                         
                    f.close(); 
                        var 
                    raw rawtime(0);
                        
                    debugPrintln("RAW = "raw );


                    Comment


                    • #11
                      PIC

                      too big as GIF --converted to PNG
                      Attached Files

                      Comment


                      • #12
                        Hello Alex,

                        Please attach a copy of your Test.txt file so I can test this on my end.
                        Jason K.
                        Project Manager
                        eSignal - an Interactive Data company

                        EFS KnowledgeBase
                        JavaScript for EFS Video Series
                        EFS Beginner Tutorial Series
                        EFS Glossary
                        Custom EFS Development Policy

                        New User Orientation

                        Comment


                        • #13
                          Originally posted by JasonK
                          Hello Alex,

                          Please attach a copy of your Test.txt file so I can test this on my end.
                          it is exactly the file you see in the PIC, but here is the entire contents

                          1141811400|"SystemCheckMarkBlue"|5819
                          1141811460|"SystemReallyHappyFace"|5817.5
                          1141811580|"SystemExclamationBlue"|5823
                          1141817220|"SystemExclamationBlue"|5810
                          1141817400|"SystemHappyFace"|5805

                          Also, I know the logic of my code works, but I do not know if it is the best logic. What my code does is open and read the data file for every bar processed. The first time I tried this I had a 24 hour template, and my "test" data file was yesterday's actual live date -- a file of about 60 entries. My whole PC locked up because of the the debugPrintln commands. Loading the EFS runs the debugPrintln commands once it seems, and then actually running the EFS runs them again. Each bar, maybe 2000 of them, was reading the data file twice, and who knows when I would get control back. I waited over 5 min before I rebooted. I know once the code works I do not need the debugPrintln commands, and that will speed things up a lot, but still I wonder about this all.

                          Implementing this logic automatically upon an EFS reset as you suggested could lock up my esignal for quite some time.

                          Maybe I should load the entire data file into a 2d array or something like that??? so that I do not do all this file I/O. But I am not sure how I would sort through that massive array properly to accomplish what I am trying to do.

                          If you have any enhancement ideas, I would welcome them.
                          Last edited by alexmihh; 03-08-2006, 05:28 PM.

                          Comment


                          • #14
                            Hello Alex,

                            I think the quotes that are saved to the file are the problem. Your string that gets saved to the file should look like this:

                            1141811400|SystemCheckMarkBlue|5819

                            Are you concatenating these extra quotes? If that isn't the solution to the problem, please post your current code that you're using that concatenates and saves this info to the file.
                            Jason K.
                            Project Manager
                            eSignal - an Interactive Data company

                            EFS KnowledgeBase
                            JavaScript for EFS Video Series
                            EFS Beginner Tutorial Series
                            EFS Glossary
                            Custom EFS Development Policy

                            New User Orientation

                            Comment


                            • #15
                              Originally posted by JasonK
                              Hello Alex,

                              I think the quotes that are saved to the file are the problem. Your string that gets saved to the file should look like this:

                              1141811400|SystemCheckMarkBlue|5819

                              Are you concatenating these extra quotes? If that isn't the solution to the problem, please post your current code that you're using that concatenates and saves this info to the file.
                              OK, I will try this. This seems to have worked fine

                              My next question is this -- this takes some time to run. During the time this is running (if I run this during live trading), nothing is happening on all my other charts.

                              So,am I disconnected from eSignal server while this is running, and thus running this will force resets on all my other charts!??Then the medicine is worse than the sickness, unless I do this during non-live trading.

                              Followup: if I remove the debugPrintln commands, the loading of this routine seems quite fast indeed.

                              Now, do you have any enhancement ideas (see below post). Is this the best way to read the data file for each bar instance, or is there a better way?
                              Last edited by alexmihh; 03-09-2006, 01:48 PM.

                              Comment

                              Working...
                              X