Hi guys,
What is the best workaround for having the broker server's time update lag like hell, like refreshing only once or twice every 15 seconds or so?
I tried to put RefreshRates(); after TimeCurrent() command but it doesn't seem to improve anything at all... even using TimeLocal with RefreshRates(); doesnt work out...
Should I try to code a timer like 1 to 5 seconds in continual loop with my command happening then?
Thanks.
Server/Broker time is only updated when new price quote/tick arrives. That is not error. It is supposed to be like that!
For completeness, there are three slightly different possible answers to tayofu's question, involving something implicit rather than fully explicit in what you and whroeder1 have covered.
TimeCurrent() only updates when a new tick is received, which only happens for symbols in the Market Watch. If the Market Watch contains something like EURUSD then the time will tick over very frequently. If it only contains something like an equity index, then it potentially won't tick over at all during hours when the underlying exchange is closed.
So, three possible answers to tayofu:
- Your Market Watch only contains illiquid instruments. Adding something like EURUSD will cause TimeCurrent() to update more frequently.
- All your broker's symbols, including even fx majors such as EURUSD, are bizarrely illiquid. Nothing you can do about this to make TimeCurrent() update more frequently. If you need a more accurate timestamp, e.g. in order to do some sort of tasks in OnTimer(), then you are going to have to use the local computer clock rather than the broker's clock.
- There's a problem with your internet connection, and packets are being lost, causing the time only to update occasionally.
For completeness, there are three slightly different possible answers to tayofu's question, involving something implicit rather than fully explicit in what you and whroeder1 have covered.
TimeCurrent() only updates when a new tick is received, which only happens for symbols in the Market Watch. If the Market Watch contains something like EURUSD then the time will tick over very frequently. If it only contains something like an equity index, then it potentially won't tick over at all during hours when the underlying exchange is closed.
So, three possible answers to tayofu:
- Your Market Watch only contains illiquid instruments. Adding something like EURUSD will cause TimeCurrent() to update more frequently.
- All your broker's symbols, including even fx majors such as EURUSD, are bizarrely illiquid.
- There's a problem with your internet connection, and packets are being lost, causing the time only to update occasionally.
there is no need to have a continous loop if no real action is necessary. If the price on the symbols in use have not changed then there is no stops to change, nor indicators to check, etc.
If...
Without commenting on whether such a thing is likely to be profitable, there are many trading strategies with rules such as "close an order no more than 30 seconds after it was opened". That obviously requires time-based activity, and a reliable timestamp, rather than price-based activity in OnTick().
If...
Without commenting on whether such a thing is likely to be profitable, there are many trading strategies with rules such as "close an order no more than 30 seconds after it was opened". That obviously requires time-based activity, and a reliable timestamp, rather than price-based activity in OnTick().
Which is also why I wrote "why do you care." Without context only simple facts can be stated. JC stop guessing what the OP really wants and wait for his answer.
I interpreted - perhaps quite wrongly - "why do you care?" in the same way as Fernando's question "If no tick is produced there is no reason to do anything, so why do you want a continous loop?". I took it not as an actual enquiry for more information from tayofu, but as a way of saying, as Fernando did more explicitly, "you don't need to care how often TimeCurrent() changes".
There are obviously lots of reasons why you might care about the time even if the price hasn't changed. A really big and very common one is making sure that you don't carry open positions over a period of closure of the market.
Thank you guys for your help and feedbacks.
My inquiry was pertaining to EURUSD not to an equity index. What is bizarre is that - even when using TimeLocal - the time refresh still lags a lot... sometimes only 1 refresh per minute or even longer... sometimes 90 seconds... my ping to the sever is less than 1ms and my vps is strong using SSD and so on.
For now what I was trying to achieve was to record say the Ask price every 5 seconds. But many times there is no TIME_SECONDS 5 it jumps from 1 to 12 or from 3 to 6 for a long period so I am trying to figure out how to record this... also SECONDS only relate to server time not to TimeLocal if I am not mistaken...
Since I dont now the number of ticks in a given 5-sec period I dont think the OnTick() command would be useful...?
Rgds.What is bizarre is that [...]
- 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 guys,
What is the best workaround for having the broker server's time update lag like hell, like refreshing only once or twice every 15 seconds or so?
I tried to put RefreshRates(); after TimeCurrent() command but it doesn't seem to improve anything at all... even using TimeLocal with RefreshRates(); doesnt work out...
Should I try to code a timer like 1 to 5 seconds in continual loop with my command happening then?
Thanks.