How would one write and EFS to include reloading that EFS at the beginning of each new bar ? I know there is a reload EFS() function
Announcement
Collapse
No announcement yet.
reload
Collapse
X
-
Hello morpheous,
Before we explore the methods for using the reloadEFS() function, may I ask why you need to reload at the instance of each new bar? There is most likely a better solution for you vs. the reloadEFS() function.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
-
well I'm currently using a signal system that computes on close, I use compute on close to avoid false signals however I also find that I miss big moves in the ES waiting for the 3 minute bar to close. I'm looking for a way to get the early signals during the formation of the bars while maintaining the close of each bar signal to comfirm the signal. Know what I mean? I thought the reload function might be a way to "clean up" the draw arrow alerts that will clutter up the chart. Also, is it possible to have the add to list alert compute on close exclusively, will other alerts compute on every tick?
morph
Comment
-
Hi,
well I'm currently using a signal system that computes on close, I use compute on close to avoid false signals however I also find that I miss big moves in the ES waiting for the 3 minute bar to close.
var nState = getCurrentBarState();
if (nState == BARSTATE_NEWBAR){
// Code to execute only on start of newbar goes here
}
Also, is it possible to have the add to list alert compute on close exclusively, will other alerts compute on every tick?
I thought the reload function might be a way to "clean up" the draw arrow alerts that will clutter up the chart.
var nIndex = getCurrentBarIndex();
var nlabel = 0;
var nState = getCurrentBarState();
if (nState == BARSTATE_NEWBAR){
nlabel++;
}
drawShapeRelative(nIndex,5,Shape.UPTRIANGLE, "", Color.lime, Shape.RELATIVETOTOP, "UpArrow" + nlabel);
So for each time the drawshape above is executed in a bar it will automatically draw an UPTRIANGLE at the current bar near the top of the chart. It will also erase any other UPTRIANGLE's previously drawn for that same bar (and hence using the same label).
You can also use removeShape("UpArrow" + nlabel) to explicitly remove an existing shape...
GarthGarth
Comment
-
Try getBarState().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
-
If I have the below Action and want to do everything on close of bar except play sound (want early warning) how would I do it. I've taken your addvice and used vState == BARSTATE_NEWBAR for the execute code but what now?
function onAction1() {
if (vLastAlert != 1) drawShapeRelative(0, low()-.35, Shape.UPARROW, "", Color.RGB(0,255,0), Shape.LEFT);
if (vLastAlert != 1) Strategy.doLong("", Strategy.MARKET, Strategy.NEXTBAR, Strategy.DEFAULT, 0);
if (vLastAlert != 1) Alert.playSound("C:\\Program Files\\eSignal\\Sounds\\Reminder.wav");
if (vLastAlert != 1) Alert.addToList(getSymbol(), "3Min Rocket UP - check 13Min", Color.RGB(0,0,0), Color.RGB(0,255,0));
nEntryPrice = open(1);
vLastAlert = 1;Last edited by morpheous; 07-30-2003, 01:06 PM.
Comment
-
Was the code produced by the FW?
I will give you a general idea, but if you are using the FW I don't really know the steps to accomplish it...
You would need to take the statement:
if (vLastAlert != 1) Alert.playSound("C:\\Program Files\\eSignal\\Sounds\\Reminder.wav");
and out of that second of code, and create a new section that isn't in the check for NEWBAR, but is in the section of code after you have verifed your signal.
This code would look something like:
if (vLastAudioAlert != 1) Alert.playSound("C:\\Program Files\\eSignal\\Sounds\\Reminder.wav");
vLastAudioAlert = 1;
You would also have to declare a new local global called vLastAudioAlert.
GGarth
Comment
-
I think I'm close but maybe I misunderstood what "BARSTATE_NEWBAR" means. Does it mean "computeonclose" or is newbar a bar that has no signals on it yet?
here's my problem.. I want to draw and arrow and popup alert on the close of the bar only, while playing a sound on every break of the rule
I've define my long entry as "vLong"
action 1 draws the arrow and popup while action 7 only plays a sound. What happens is the arrow and popup occur during the formation of the bar, I want it to compute on the close only.
Can this be done?
var vLong == "my entry signal"
var vState == getBarState();
if (
vState == BARSTATE_NEWBAR &&
vLong == true
) onAction1()
else if (
vLong == true
) onAction7()Last edited by morpheous; 07-31-2003, 09:26 AM.
Comment
-
Hello morpheous,
getBarState() returns BARSTATE_NEWBAR at the instance a new bar begins. For every trade during the formation of the bar, getBarState() returns BARSTATE_CURRENTBAR.
What you need to do is check for BARSTATE_NEWBAR and then look at close(-1), which is the close of the previous bar that just closed. Then, if your condition is true use -1 for the x position in your drawShapeRelative(-1, low()-.35, .... ) function.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
-
Ok I think I understand but if as you say
"getBarState() returns BARSTATE_NEWBAR at the instance a new bar begins. then why would the statement"
then why would
if (
vState == BARSTATE_NEWBAR &&
vLong == true
) onAction1()
not work, because as you said
"For every trade during the formation of the bar, getBarState() returns BARSTATE_CURRENTBAR."
then that would mean that the state "vState == BARSTATE_NEWBAR &&" is false in the above statement and action1() would not occur?
also you said
"What you need to do is check for BARSTATE_NEWBAR and then look at close(-1),"
what is the syntax on that? is it
vState == (BARSTATE_NEWBAR, close(-1))
Comment
-
also you said
"What you need to do is check for BARSTATE_NEWBAR and then look at close(-1),"
what is the syntax on that? is it
vState == (BARSTATE_NEWBAR, close(-1))
In reality, I can't think that you need to do this. Let's take the example of historic data. When it says I have a NEWBAR and I request the close, I get the closing value of that bar (same for high, low, etc...). Therefore for historic data NEWBAR and CURRENTBAR are the same.
For realtime data, the odds of any large move happening between the last tick of the previous bar and the first tick of the NEWBAR is very remote. I can see this happening on daily charts that don't include overnight sessions, but I can't see it for any other case (except of course weekly and monthly).
So for looking at the current close (open, high, etc) on NEWBAR to be a problem you would have to be runing a daily chart and leave it up over night...I don't think many of us do this (I'm sure some do, but I doubt it would even register as 1%).
But using -1 for the time portion of the draw makes good sense, is is likely what you want to do.
GarthGarth
Comment
-
I appreciate all the help, but this is getting a little confusing so what I've done is created two EFS, one that computes on close and one that doesn't, on the one that doesn't the only alert I have is a sound, the arrows and popup are on the computeonclose EFS. It does the job but I have to remember to adjust to EFS when I want to change something..
Comment
Comment