I have been using efsExternal features successfully for a while now and quite like the result.
However, there seem to be quite a few restrictions. I have searched the Knowledgebase and Forums for a document on the subject, but was unable to find.
So, I have listed below my observations. Please let me know if I am incorrect or if there are any others I need to know about.
1. In Playback mode, the following message appears in the Formula Output window: "Symbol $P cannot be processed by this program". There is no evidence of the efsExternal code having been executed even though it works fine in real time (including during bar loading). I assume that efsExternal therefore does not work in Playback mode.
2. Plot is suppressed. Plot lines in the "called" program no longer appear on the chart. This I expected. However, I found that text does not appear either. Can I therefore assume that line functions and buttons are also supressed?
3. setComputeOnClose(); Overwritten. The main indicator I have developed calculates every Tick. I had another indicator I wanted to call and use the result. The "called" indicator was set to compute on bar close. This mode seems to have been overwritten and, since the code was not designed for tick-by-tick calculation, I was unable to use it without significant modification.
4. Plot Colors. If the color of a line normally plotted by the "called" program is of significance, there is no way for the "calling" program to know this (expected, but worth mentioning for others reading this). It is therefore necessary to modify the "called" code to include a parameter that distinguishes its execution mode ("native" or "called"), and to return an additional value representing the color as an indicator when in "called" mode.
Hope this is helpful.
Others please feel free to add observations as I am sure they will be a great help in the future.
Thank you.
However, there seem to be quite a few restrictions. I have searched the Knowledgebase and Forums for a document on the subject, but was unable to find.
So, I have listed below my observations. Please let me know if I am incorrect or if there are any others I need to know about.
1. In Playback mode, the following message appears in the Formula Output window: "Symbol $P cannot be processed by this program". There is no evidence of the efsExternal code having been executed even though it works fine in real time (including during bar loading). I assume that efsExternal therefore does not work in Playback mode.
2. Plot is suppressed. Plot lines in the "called" program no longer appear on the chart. This I expected. However, I found that text does not appear either. Can I therefore assume that line functions and buttons are also supressed?
3. setComputeOnClose(); Overwritten. The main indicator I have developed calculates every Tick. I had another indicator I wanted to call and use the result. The "called" indicator was set to compute on bar close. This mode seems to have been overwritten and, since the code was not designed for tick-by-tick calculation, I was unable to use it without significant modification.
4. Plot Colors. If the color of a line normally plotted by the "called" program is of significance, there is no way for the "calling" program to know this (expected, but worth mentioning for others reading this). It is therefore necessary to modify the "called" code to include a parameter that distinguishes its execution mode ("native" or "called"), and to return an additional value representing the color as an indicator when in "called" mode.
Hope this is helpful.
Others please feel free to add observations as I am sure they will be a great help in the future.
Thank you.
Comment