Announcement

Collapse
No announcement yet.

EFS Questions from z11

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Z11,


    I suppose this line of finding supports the benefit of having a dual processor.
    If by this you mean, "will dual processors help if I run multiple instances of eSignal at the same time?", then the answer is yes it will, though it may not come close to doubling your thoughput/speed.

    I'm also pretty sure that running multiple instances of eSignal isn't supported, or recommended by eSignal. Someone from eSignal feel free to confirm or correct this...

    Garth
    Garth

    Comment


    • #17
      Garth, you are correct for the most part. It is possible to run multiple instances of eSignal on the same PC, but not recommended. Z11, please review the following KB article for more information, Running Multiple Instances of eSignal.
      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


      • #18
        Jason, I actually read that KB article before started this thread...and as far as I can read, the article does not "dis"-recommend the use of multiple instances.

        But on a more important note, gentlemen, have you experienced with GlobalVariables not being updated by the pulling EFS ... my indication is they are being "produced" and values being updated but the receiving end (the EFS that does the "get") are not getting the new values regularly? this has been happening intermittently today both during high trading volume period and slow period (both SP and FX witnessed that today.)

        Anythoughts on that would be most appreciated...Thanks.
        BTW, this is happening when only instance of eSig is running.

        Comment


        • #19
          Z11,

          Yes, I have noticed it before, I believe it is a function of the speed of the particular efs / advanced chart that is transmitting the globals, where the transmitting efs is suddenly slower than the receiving efs due to the processor loading up from the rapid market action.

          The method I have used to deal with this issue is to have the receiving efs wait for the globals from the transmitting efs. What I do is check for a global variable changing it's value (I populate the global with the most recent time) from the efs every tick, then if it is updated, grab the remaining variables. Since I have implemented this fix, this issue has not been a problem.

          Comment


          • #20
            Hi Steve,
            the solution I am looking for to my problem is to somehow make sure globals are "pulled" by the consumer EFS ...as I noticed the producer EFSs are doing their bit to update but somehow the consumer is not getting it so the overall system's signal stays stale even as the component values change.

            To wait for the globals changed value and then get them by the consumer EFS would produce the same result - stale signals.

            I hope I articulated my problem better this time. Thanks.

            Comment


            • #21
              Z11,

              I hate the terminology of retriever or receiver EFS as it represents a flawed view of how Universal Globals actually work, and are more a function of the logic the user has wrapped around the use of globals...but continuing to use that terminology:


              Like all EFS's the fastest the receiver EFS can run is when a new tick comes in. Therefore of you have a receiver EFS running on an index that is updated from the exchange every 5 seconds, the fastest that EFS will run is every 5 seconds and it will miss all the globals that were set between runs.

              Another possibility way to see things like this is to have the receiver running with setComputeOnClose() on.

              Not sure if this could be your problems, but they are potential causes to the problem.

              There is no way to force an EFS to run, so there is no real way to have the "sender" force the "receiver" to get each update.

              Garth
              Garth

              Comment


              • #22
                Just my 2 cents on getting an efs to update....

                If you had a chart plotting es z4 + nq z4 + intc, would that give you a very quick 'refresh' rate?

                My thinking is that one of those symbols would always be trigering the efs. Perhaps a few more symbols could be added, but the concept seems to be correct, no?

                Comment


                • #23
                  David,

                  That's a very good idea, if it is true that an update on any one of the symbols will update the chart then that will certainly help for those cases of a slow EFS update due to symbol.

                  It would be easy to test: just do the same thing with a slowly updating symbol in one chart and then on the other do the same symbol + es z4 + the same symbol.

                  If it updates on each es tick then you have yourself a winner (this checks against the case where eSignal only updates the chart using the only the first, or only the last symbol in a chain).

                  G
                  Garth

                  Comment


                  • #24
                    Garth+David - good thoughts but my problems is the EFSs that set Globals and the EFS which gets them are of the same symbol just in different time frames (on the chart)...and none of the "set" EFS has ComputeonClose so they are updated every tick ...neither does the "get" EFS - it also processes its logic at each tick - of the same symbol....

                    is there anyway to "paint" certain globals'values in the "receiving" EFS's Chart (in the price pane or its own chart... using debugPrintLN really bogs down eSignal..
                    Thanks.

                    Comment


                    • #25
                      If I wanted to paint the values quickly - and debugprint is slow - I would probalby look at using drawtextabsolute or drawtextbuttons.

                      Regarding the first part of your post, you can use the symbol you want in the efs by using close(sym1), high(sym1) etc in the efs. This way the efs only uses the symbol of interest for global calulation, but the efs fires much more often.

                      close([nRelativeOffset] [, nNumBars [, Symbol ] ]) is the proper syntax

                      Comment


                      • #26
                        hi Jason,

                        does eSignal provide some sort of guideline for tuning performance by adjusting Heap and Stack sizes based on:

                        1)number of Adv. Charts per session
                        2)EFSs running per chart, and total EFS per session
                        3)total number of global variables active per session
                        4)number of studies per chart and total studies per session

                        and any combination of the above?

                        Thanks.

                        Comment


                        • #27
                          Hello z11,

                          We don't have any specific guidelines for you to follow. If you have expert understanding of Heap and Stack memory allocation, then any necessary adjustments should be determined by you. There isn't a specific answer to your four questions because the amount of memory usage can vary depending on what processes the EFS studies are computing and how many objects and variables are being created. The number of charts and amount of data loaded in each chart based on time templates and intervals would also generate variable amounts of memory usage. There aren't any specific numbers we can give you. You'll know when you've reached the limits if you get any stack overflow or out of memory errors. Are you receiving either of these memory errors? If not, then you don't need to change the settings. If so, then I would first recommend trying to pinpoint what is causing the error and try to reduce the memory usage within your EFS studies. The Heap and Stack size setting under EFS Settings are for the EFS engine specifically. If you create and endless loop for example, you'll get a stack overflow error. If you have routines that continuously add elements to an array or multiple arrays without managing their size with pop/unshift routines, you could eventually get a stack overflow. My understanding is that the heap is going to be more related to routines such as triggering audible alerts and the using the drawing functions. EFS studies that use a lot of drawing functions can use up a lot of memory. Many power users limit this collection by recycling tag names to limit this collection to a fixed number of objects. I'm not sure if these drawn objects affect stack or heap, but I think it may be the heap. Anyway, I hope this helps.
                          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


                          • #28
                            Thanks Jason...you provided some very insightful information.

                            Comment


                            • #29
                              hi Jason,

                              I am wondering if there is a way in EFS such that one can iterate through a list of symbols (say 50) to run some set of logic on these symbols and have the chart which loaded the EFS to display a particular symbol when some condition is met...

                              so actually there are 2 questions:
                              1) can one EFS iterate through a list of symbols on a given time frame;
                              2) can EFS communicate with eSignal to change the symbol in the chart?

                              Thanks

                              Comment


                              • #30
                                Hello z11,

                                1) Yes, but there is a symbol limit of 7 per EFS. You can pass the symbol as a parameter to the getValue(), close(), etc functions to get the data, but you'll have to code your indicators to process the external symbol data. The built-in studies do not accept symbol as a parameter.

                                2) Not at this time.
                                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

                                Working...
                                X