Anybody?
.
The problem is: when I put it while previous bar is bullish, it alerts but
if not bullish, it not alerts even if in future previous bar is bullish.
Have a read about RefreshRates () ie, MUST work on latest symbol data otherwise your 'issues' will always come back to haunt you - where ever your code/terminal functions need up-to-date symbol data.
You need to have that in your loop. NOTE:how often you call it should be considered too. Why? what's point in overloading terminal with redundant work... it can indeed be a very busy bee at times :)
Since your script does not return to terminal, the script will 'continue' to use symbol data that is in reality ONLY valid until the next incoming data tick.
At which time RefreshRates() is ONLY way to get this 'latest' data...
Also, 10ms is very short time. what happens when incoming data ticks are separated by 'many' seconds, remembering that 100 Sleep(10); calls will be made for each second (but in reality, terminal can not guarantee that it will return in whatever timeperiod you specify in Sleep() call)
ie, that redundant work I mentioned above will/can cause overheads that are just not needed, especially when your code gets big and involved!
So, for sake of argument, why not Sleep(1000); just until get this going?
Then once you know the code works, well... is up to you of course!
.
hth
while(0==0) whats this about? You are simply stuck in an endless loop.
This should do it :-
int start() { if(Close[1]-Open[1]>0)Alert("Bullish bar"); }
Whats the int A and the Sleep for?
I see you mentioned that you are new to scripts. Just remember that anytime you use a While or an If condition, one side of the equation has to change, so it has to be a variable.
while(true) {...
But you must refreshRates after sleep or all you'll get is the same value each time.
Thanks for the great helps.
What I was trying to do (since I know script lives only 1 tick)
is to make the script check as long as bulish bar is found.
I put Sleep(10) to ease pressure on processor.
I put int A to see the the script is running.
This is what I got (thanks to your help) and it works.
int start() { int A; while(true) { A++; Comment(A); Sleep(10); RefreshRates(); if(Close[1]-Open[1]>0) { Alert("Bullish bar"); break; } } return(0); }
My question : is thre any way to simplify it or
to make better for platform and processor?
Can I run 2 scripts at the same time?
Thank you all.
I like scripts using for testing market.
Thanks a lot for ur sharing.
It's very helpful for me.
|
Thanks a lot for ur sharing.
It's very helpful for me.
|
Looks like we have some players here.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
I am new to scripts.
Created as a try.
The problem is: when I put it while previous bar is bullish, it alerts but
if not bullish, it not alerts even if in future previous bar is bullish.
Please help.
Thanks a lot.