Eu ainda não descobri como obter informações adequadas da "DayOfWeek". Ele dá o valor correto no dia em que o robô inicia e em alguns outros casos (às vezes). Parece-me que isso dá um valor correto quando abro pedidos. Se você não abrir nada, isso lhe dará o clima.
Eu resolvi o problema desta maneira:
...
int realDay=DayOfWeek();
int curHour=TimeHour(TimeLocal());
while(!IsStopped())
{
if (TimeHour(TimeLocal())<curHour) realDay++;
curHour=TimeHour(TimeLocal());
if (realDay==7) realDay=0;
...
Eu ainda não descobri como obter informações adequadas da "DayOfWeek". Ele dá o valor correto no dia em que o robô inicia e em alguns outros casos (às vezes). Parece-me que isso dá um valor correto quando abro pedidos. Se você não abrir nada, isso lhe dará o clima.
Ihor Herasko: Desta forma, você obterá apenas o status de permissão de comércio do instrumento. Se o instrumento for negociado, você se tornará fiel a ele em qualquer dia da semana.
Alert("Trade allowed by MarketInfo: ", bool(MarketInfo(Symbol(),MODE_TRADEALLOWED)));
Alert("Trade allowed by IsTradeAllowed: ", bool(IsTradeAllowed()));
Alert("Trade allowed by IsTradeAllowed 2-nd version: ", bool(IsTradeAllowed(Symbol(), TimeLocal())));
Resultado:
2015.12.2016:41:21.196 Test EURUSD,H1: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2016:41:21.196 Test EURUSD,H1: Alert: Trade allowed by IsTradeAllowed: true2015.12.2016:41:21.196 Test EURUSD,H1: Alert: Trade allowed by MarketInfo: true
No meu computador a hora é GMT+2.
É por isso que eu não entendo como você conseguiu ser falso no primeiro caso. Talvez, você pegou um instrumento que, em princípio, não é comercializado.
As conclusões são as seguintes:
A primeira e a segunda opções são essencialmente indenéticas. Eles apenas apontam para o fato de que a auto-comercialização para o instrumento está habilitada e há um fluxo de livre comércio.
A terceira variante é exatamente o que precisamos. Ela permite conhecer a permissão para negociar em um instrumento, dado seu cronograma de trabalho.
Portanto, não está claro como você conseguiu se enganar na primeira opção. Talvez, você pegou um instrumento que, em princípio, não é comercializado.
As conclusões são as seguintes:
A primeira e a segunda opções são essencialmente indenéticas. Eles apenas apontam para o fato de que a auto-comercialização para o instrumento está habilitada e há um fluxo de livre comércio.
A terceira variante é exatamente o que precisamos. Ela permite conhecer a permissão para negociar em um instrumento no que diz respeito ao seu horário de trabalho.
De fato, este corretor tem o resultado do roteiro acima:
2015.12.2017:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2017:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by IsTradeAllowed: false2015.12.2017:19:18.685 Test GBPUSD,H4: Alert: Trade allowed by MarketInfo: false
Começou a verificar outros corretores. Corretor G**X:
2015.12.2017:18:14.339 Test EURUSD,M314: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2017:18:14.339 Test EURUSD,M314: Alert: Trade allowed by IsTradeAllowed: false2015.12.2017:18:14.339 Test EURUSD,M314: Alert: Trade allowed by MarketInfo: true
Corretor A****i:
2015.12.2017:20:40.372 Test EURUSD,M15: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2017:20:40.372 Test EURUSD,M15: Alert: Trade allowed by IsTradeAllowed: true2015.12.2017:20:40.372 Test EURUSD,M15: Alert: Trade allowed by MarketInfo: true
Corretor I****a F****x:
2015.12.2017:21:38.663 test GBPUSD,H1: Alert: Trade allowed by IsTradeAllowed 2-nd version: false2015.12.2017:21:38.663 test GBPUSD,H1: Alert: Trade allowed by IsTradeAllowed: false2015.12.2017:21:38.663 test GBPUSD,H1: Alert: Trade allowed by MarketInfo: false
Meu primeiro teste hoje foi em A*****l M*****s.
Assim, obtemos que nem todos os corretores têm o IsTradeAllowed (primeira versão) e MODE_TRADEALLOWED funcionando corretamente. E por outro lado, a segunda versão do IsTradeAllowed funciona corretamente em todos os lugares. Portanto, é melhor usá-lo.
De fato, este corretor tem o resultado do roteiro acima:
Começou a verificar outros corretores. Corretor G**X:
Corretor A****i:
Corretor I****a F****x:
Meu primeiro teste hoje foi em A*****l M*****s.
Assim, obtemos que nem todos os corretores têm o IsTradeAllowed (primeira versão) e MODE_TRADEALLOWED funcionando corretamente. E por outro lado, a segunda versão do IsTradeAllowed funciona corretamente em todos os lugares. Portanto, é melhor usá-lo.
Eu ainda não descobri como obter informações adequadas da "DayOfWeek". Ele dá o valor correto no dia em que o robô inicia e em alguns outros casos (às vezes). Parece-me que isso dá um valor correto quando abro pedidos. Se você não abrir nada, isso lhe dará o clima.
Eu resolvi o problema desta maneira:
Mas ainda não o testei )))) Deve funcionar.
Eu ainda não descobri como obter informações adequadas da "DayOfWeek". Ele dá o valor correto no dia em que o robô inicia e em alguns outros casos (às vezes). Parece-me que isso dá um valor correto quando abro pedidos. Se você não abrir nada, isso lhe dará o clima.
Eu resolvi o problema desta maneira:
Mas eu ainda não o testei )))) Deve funcionar.
É mais fácil - use o TimeDayOfWeek:
Desta forma, você obterá apenas o status de permissão de comércio do instrumento. Se o instrumento for negociado, você se tornará fiel a ele em qualquer dia da semana.
Alert(bool(MarketInfo(Symbol(),MODE_TRADEALLOWED));
falso
Alert(bool(MarketInfo(Symbol(),MODE_TRADEALLOWED));
falso
Minha versão é a seguinte:
Resultado:
No meu computador a hora é GMT+2.
É por isso que eu não entendo como você conseguiu ser falso no primeiro caso. Talvez, você pegou um instrumento que, em princípio, não é comercializado.
As conclusões são as seguintes:
Minha versão é esta:
Resultado:
No meu computador a hora é GMT+2.
Portanto, não está claro como você conseguiu se enganar na primeira opção. Talvez, você pegou um instrumento que, em princípio, não é comercializado.
As conclusões são as seguintes:
EURUSD fxOpen
De fato, este corretor tem o resultado do roteiro acima:
Começou a verificar outros corretores. Corretor G**X:
Corretor A****i:
Corretor I****a F****x:
Meu primeiro teste hoje foi em A*****l M*****s.
Assim, obtemos que nem todos os corretores têm o IsTradeAllowed (primeira versão) e MODE_TRADEALLOWED funcionando corretamente. E por outro lado, a segunda versão do IsTradeAllowed funciona corretamente em todos os lugares. Portanto, é melhor usá-lo.
De fato, este corretor tem o resultado do roteiro acima:
Começou a verificar outros corretores. Corretor G**X:
Corretor A****i:
Corretor I****a F****x:
Meu primeiro teste hoje foi em A*****l M*****s.
Assim, obtemos que nem todos os corretores têm o IsTradeAllowed (primeira versão) e MODE_TRADEALLOWED funcionando corretamente. E por outro lado, a segunda versão do IsTradeAllowed funciona corretamente em todos os lugares. Portanto, é melhor usá-lo.
E hoje
IsTradeAllowed(Símbolo(), TimeCurrent())
mostra-se covarde
A propósito, por que você tem hora local?
E hoje
IsTradeAllowed(Símbolo(), TimeCurrent())
mostra covardemente
A propósito, por que você tem hora local?
É um fim de semana de férias, por isso é difícil.
O fato é que nenhuma das funções de reconhecimento funciona 100%.