Hi,
How can I do, I tried to put an infinite loop just after the sart funtion, but it doesn't seem to work.
I guess you don't ever want to test this EA in the Strategy Tester ?
OK, put what is in your start() function, except variable declarations, within a while(true) loop with a sleep(1000) . . . it will run approx. once per second but will be useless in the Strategy Tester.
Can't use the tester or optimize it. | int start(){ while(!IsStopped()){ // Exit when chart closed : Sleep(1000); // One second RefreshRates(); // Update predefined variables } } |
Can use tester and optimizer but why bother? Nothing has changed from the last tick. | int start(){ while(!IsStopped()){ // Exit when chart closed : if(IsTesting()) break; // Allow tester and optimizer Sleep(1000); // One second RefreshRates(); // Update predefined variables } } |
Remember that the EA MUST exit within 2.5 seconds | int start(){ while(!IsStopped()){ // Exit when chart closed : if(IsTesting()) break; // Allow tester and optimizer for(int n=0; n<5; n++){ // 10 second sleep if(IsStopped()) break; Sleep(2000); } RefreshRates(); // Update predefined variables } } |
Also remember that you need an initial tick to call start or must enqueue one |
#import "user32.dll" int PostMessageA(int hWnd,int Msg,int wParam,int lParam); int RegisterWindowMessageA(string lpString); #import int init(){ int hwnd=WindowHandle(Symbol(), Period()); int msg = RegisterWindowMessageA("MetaTrader4_Internal_Message"); PostMessageA(hwnd, msg, 2, 1); // enqueue a fake tick and let init() return return(0); } |
Thank you,
I made the loop, but I don't know if it's works correctly.
I have some text on the window with the EA, and it draws new values only with a new tick on the chart.
But I put a counter, and when a new tick arrive the count is more than one, so I'm not sure...
I use sleep(10)
I want that because I trade on differents symbols with the same EA(this is in the strategy), so I want to know what happens on the other even if the symbol of the EA doesn't moves.
Thank you,
I made the loop, but I don't know if it's works correctly.
I have some text on the window with the EA, and it draws new values only with a new tick on the chart.
If you update the chart between ticks you need to use WindowRedraw() to see the changes.
It works. Thanks.
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Hi,
I want to run my ea each second(for exemple), I don't want to wait each tick.How can I do, I tried to put an infinite loop just after the sart funtion, but it doesn't seem to work.
Thanks