E eu não preciso obter uma pilha de preços, mas sim ter características tão simples:
1. Limpar o conteúdo do Market Watch.
2. Adicione ali os caracteres desejados (isto está disponível)
3. Use a função ou evento para receber todos os ticks que são exibidos no Market Watch de cada símbolo, ou faça o OptiScope junto com a função Multi-tick.
Alexey Kozitsyn: Não está bem claro por que você decidiu passar pela pilha de preços se você quer trabalhar com a visão geral do mercado e os carrapatos?
E onde você vai obter os dados de todas as cotações que são visíveis ou adicionadas à visão geral do mercado.
GetSymbolByName(string symbol)
{
string symbol_name=""; // Имя символа на сервере//--- Если передали пустую строку, вернем пустую строкуif(symbol=="")
return("");
//--- Пройтись по списку всех символов на сервереfor(int s=0; s<SymbolsTotal(false); s++)
{
//--- Получим имя символа
symbol_name=SymbolName(s,false);
//--- Если искомый символ есть на сервереif(symbol==symbol_name)
{
//--- Выберем его в окне "Обзор рынка"SymbolSelect(symbol,true);
//--- Вернем имя символаreturn(symbol);
}
}
//--- Если искомого символа нет, вернем пустую строкуPrint("Символ "+symbol+" не найден на сервере!");
return("");
}
int OnInit()
{
//---
GetSymbolByName("EURUSD"+SymbolSuffix);
GetSymbolByName("GBPUSD"+SymbolSuffix);
GetSymbolByName("EURGBP"+SymbolSuffix);
}
void OnTimer() // или OnTick
{
if(!SymbolInfoTick("EURUSD"+SymbolSuffix,tickEUR)) {Print("EURUSD price has not been received"); return;}
if(!SymbolInfoTick("GBPUSD"+SymbolSuffix,tickGBP)) {Print("GBPUSD price has not been received"); return;}
if(!SymbolInfoTick("EURGBP"+SymbolSuffix,tickEURGBP)) {Print("EURGBP price has not been received"); return;}
if(tickEUR.ask!=0 && tickEUR.bid!=0) {} // ну и все в этом духе
}
Como você pode ser tão pouco obtuso para tantos cargos?
Você pode reconhecer as pessoas que oferecem algo útil pelas flechas que saem de suas costas. Qualquer coisa nova é sempre recebida com uma resposta hostil. Especialmente aqueles que ganham dinheiro vendendo consultores de arbitragem copiados da hrenfx, já que seu uso direto no mercado é impossível por causa da oposição desta corretora.
Você ainda terá que fazer isso através de um temporizador. O timer simplesmente precisa de um algoritmo para que não faça um pedido se o último tick for o mesmo que o tick anterior.
Você ainda terá que fazer isso através de um temporizador. O timer simplesmente precisa de um algoritmo para que não faça um pedido se o último tick for o mesmo que o tick anterior.
O BookEvent não o ajudará aqui.
Sim, mas você também deve levar em conta que há apenas um timer aqui, não é assim, então VC++, e se você tiver muitas verificações de timer, você pode simplesmente perder muitos carrapatos e tudo se transformará em minhoca.
Curiosamente, ontem eu queria usar as características do MarketBookAdd e OnBookEvent para fazer um EA com várias moedas.
Mas por alguma razão, o MarketBookAdd no testador não funciona. Ele dá um erro 4901 - A pilha depreços não pode ser adicionada.
Só funciona em tempo real.
E eu não preciso obter uma pilha de preços, mas sim ter características tão simples:
1. Limpar o conteúdo do Market Watch.
2. Adicione ali os caracteres desejados (isto está disponível)
3. Use a função ou evento para receber todos os ticks que são exibidos no Market Watch de cada símbolo, ou faça o OptiScope junto com a função Multi-tick.
E eu não preciso obter a pilha de preços, mas ter possibilidades tão simples:
1. Limpar o conteúdo do Market Watch.
2. Adicione ali os caracteres desejados (isto está disponível)
3. Use a função ou evento para receber todos os ticks que são exibidos no Market Watch de cada símbolo, ou faça Optiсk junto com a função MultiTick.
Não está bem claro por que você decidiu passar pela pilha de preços se você quer trabalhar com a visão geral do mercado e os carrapatos?
E onde você vai obter os dados de todas as cotações que são visíveis ou adicionadas à visão geral do mercado.
E onde você vai obter os dados de todas as cotações que são visíveis ou adicionadas à visão geral do mercado.
E onde você vai obter os dados de todas as cotações que são visíveis ou adicionadas à visão geral do mercado.
Como você pode ser tão pouco obtuso para tantos cargos?
Seria ineficiente se a EA manejasse cada tick, mesmo que milissegundos sejam usados no temporizador.
Precisa de uma maneira mais fácil de obter todos os carrapatos diretamente da visão geral do mercado.
A através de OpTisk não é possível, porque só funciona quando o próximo tick chega onde a EA está.
Você ainda terá que fazer isso através de um temporizador. O timer simplesmente precisa de um algoritmo para que não faça um pedido se o último tick for o mesmo que o tick anterior.
O BookEvent não o ajudará aqui.
Você ainda terá que fazer isso através de um temporizador. O timer simplesmente precisa de um algoritmo para que não faça um pedido se o último tick for o mesmo que o tick anterior.
O BookEvent não o ajudará aqui.
Sim, mas você também deve levar em conta que há apenas um timer aqui, não é assim, então VC++, e se você tiver muitas verificações de timer, você pode simplesmente perder muitos carrapatos e tudo se transformará em minhoca.