2015.03.26 11:44:13.934 test (MIX-6.15,H1) Bingo! We done. 2015.03.26 11:44:13.934 test (MIX-6.15,H1) Init OK.
todos os instrumentos disponíveis estão incluídos na análise do mercado.
Repetiu o teste. atirou exatamente no MIX com todos os outros instrumentos incluídos.
Tudo bem.
A conta é real em Otkritie. Os gráficos Ri e Si também estão abertos.
2015.03.26 13:56:01.024 Teste (MIX-6.15,M1) Init OK.
real Open Win7 x64 C:\Program Files\Open Broker\terminal64.exe build 1085
Obrigado!
Eu tenho:
Win7/64 Ultimate MT5 build 1085
2015.03.26 15:30:37.229 Test (MIX-6.15,M1) Sorry! Get Bars failed. 2015.03.26 15:30:37.229 Test (MIX-6.15,M1) Get Bars failed RTS-6.15 Last error = 4401
Eu tenho MIX-6.15 caindo, WIN 7-64 home premium MT5 build 1085:
2015.03.26 15:44:27.729 Test (MIX-6.15,H1) Get Bars failed MIX-6.15 Last error = 4401 2015.03.26 15:44:27.729 Test (MIX-6.15,H1) Sorry! Get Bars failed.
Usuários dos FORTS!
Por favor, reserve 3 min. do seu tempo!
Para corrigir o erro "flutuante" - você precisa
MAIS estatísticas!
Usuários dos FORTS!
Por favor, reserve 3 min. do seu tempo!
Para corrigir o erro "flutuante" - você precisa
MAIS estatísticas!
Gastando 3 min))
Michael, você não pode fazer isso - com um único pedido no inite. Não há garantia de que todos os dados estejam prontos.
É assim que se faz - por bom senso, é claro.
#property copyright "Copyright 2014, MetaQuotes Software Corp." #property link "http://www.mql5.com" #property version "1.00" #property indicator_separate_window #property indicator_buffers 1 #property indicator_plots 1 // bool is_failed = false; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SymbolSelect( "MIX-6.15", true ); SymbolSelect( "RTS-6.15", true ); SymbolSelect( "Si-6.15", true ); //--- ResetLastError(); //--- int total_bars = Bars( "MIX-6.15", PERIOD_M1 ); if ( total_bars > 0 ) { total_bars = Bars( "RTS-6.15", PERIOD_M1 ); if ( total_bars > 0 ) { total_bars = Bars( "Si-6.15", PERIOD_M1 ); { if ( total_bars > 0 ) { Print( "Init OK." ); } else { is_failed = true; Print( "Get Bars failed Si-6.15 Last error = ", string(GetLastError() ) ); } } } else { is_failed = true; Print( "Get Bars failed RTS-6.15 Last error = ", string(GetLastError() ) ); } } else { is_failed = true; Print( "Get Bars failed MIX-6.15 Last error = ", string(GetLastError() ) ); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { ResetLastError(); //--- int total_bars = Bars( "MIX-6.15", PERIOD_M1 ); if ( total_bars > 0 ) { total_bars = Bars( "RTS-6.15", PERIOD_M1 ); if ( total_bars > 0 ) { total_bars = Bars( "Si-6.15", PERIOD_M1 ); { if ( total_bars > 0 ) { Print( "Init OK." ); } else { is_failed = true; Print( "Get Bars failed Si-6.15 Last error = ", string(GetLastError() ) ); } } } else { is_failed = true; Print( "Get Bars failed RTS-6.15 Last error = ", string(GetLastError() ) ); } } else { is_failed = true; Print( "Get Bars failed MIX-6.15 Last error = ", string(GetLastError() ) ); } //--- if ( is_failed ) { Print( "Sorry! Get Bars failed." ); } else Print( "Bingo! We done."); //--- return value of prev_calculated for next call return(rates_total); }
Um indicador de múltiplas moedas não é tão simples assim.
Primeiro, verifique a disponibilidade dos instrumentos:
bool CorrectSymbol( string symbol ) { ResetLastError(); if ( SymbolInfoDouble( symbol, SYMBOL_BID ) > DBL_EPSILON ) return(true); // символ не выбран в "Обзоре рынка" (нет в списке доступных) if ( GetLastError() == 4302 ) { if ( SymbolSelect( symbol, true ) && SymbolInfoInteger( symbol, SYMBOL_SELECT ) ) return(true); } return(false); }
Em seguida, abrir os gráficos de todos os instrumentos utilizados (basta um objeto gráfico invisível) para que o histórico seja carregado normalmente.
E só então tentar carregar o histórico usando o CheckLoadHistory.
Mas isto também pode não ser suficiente.
Gastando 3 minutos))
Michael, você não pode fazer isso - com um pedido único à Inite. Não há garantia de que todos os dados já estejam prontos.
É assim que se faz - por bom senso, é claro.
Concordo, é um pouco errado, eu reescrevi o código (veja o código fonte), MAS o resultado é o mesmo!
2015.03.26 16:20:55.564 Test (MIX-6.15,M1) Sorry! Get Bars failed. 2015.03.26 16:20:55.564 Test (MIX-6.15,M1) Get Bars failed Si-6.15 Last error = 4401
Concordo, um pouco incorreto, reescrevi o código, MAS o resultado é o mesmo!
![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Boa tarde!
Novamente o servodex não consegue reproduzir o erro!
Favor compilar este código e "jogar" o indicador no símbolo MIX-6.15
( não do MetaEditor )
Favor publicar os resultados (a serem exibidos na guia Especialistas) aqui.