Erros, bugs, perguntas - página 1548

 
comp:
Então não se pode interromper o cálculo por evento.

ok. então olha para o outro lado.

Pode paralisar artificialmente - colocando um segundo indicador no gráfico.

E ao aceder à GlobalVariableSetOnCondition a partir de ambos.

 
o_O:

ok. então olha para o outro lado.

Pode paralisar artificialmente - colocando o segundo indicador no gráfico.

E ao aceder à GlobalVariableSetOnCondition a partir de ambos.

Não percebo.
 
comp:
Não percebo.

O segundo indicador é um sinalizador que envia eventos de ChartEvent para o indicador principal como um indicador personalizado + muda o estado da variável global, por exemplo, pelo tempo em ms.

No indicador principal, apanha-se este evento e inicia-se o cálculo, + olhar para a variável global para ter a certeza de que tem o mesmo ms de tempo que o que iniciou o cálculo.

Se o tempo nele mudou, significa que chegou um novo evento - e você quebra o seu cálculo actual.

assim.

---

Ou pode simplesmente mudar o ms no gp em cada evento gráfico, e apenas o controlar no indicador principal

em geral - o segundo indicador irá paralelizar

 

Olá! uma pequena ajuda para um novato. Parece que não consigo lidar com o evento OnBookEvent.

Se chamar a este evento a partir de onTick() , tudo funciona. Se onTick() estiver vazio, então nada funciona. Não entendo nada, OnBookEvent é chamado quando há uma mudança no copo, ou seja, é um manipulador de eventos separado, essencialmente o mesmo que onTick() é chamado quando um tick ocorre. Porque é que não funciona?

É assim que funciona. Bem, como funciona, imprime "Qualquer coisa" quando ocorre uma carraça, não quando há uma mudança no vidro. Por exemplo, o volume de encomendas mudou, a um determinado preço, o manipulador do OnBookEvent para a mudança no copo deve ser chamado , mas isso não acontece. Se onTick() for deixado vazio, nem sequer imprimirá nada.

int OnInit()

{

se ! MarketBookAdd("RTS-6.16" )

{

Imprimir("Erro ",GetLastError() );

}

senão

{

Imprimir("Feito");

}

nulo OnDeinit(const int razão)

{

MarketBookRelease("RTS-6.16");

}

nulo OnTick()

{

OnBookEvent(_Símbolo);

}

nulo OnBookEvent(const string &symbol)

{

MqlBookInfo livro[];

MarketBookGet("RTS-6.16", livro);

if(ArraySize(book) == 0)

{

printf("Failed load market book price. Motivo: " + (string)GetLastError()));

regressar;

}

Imprimir("Qualquer coisa");

}

 
Acabou de o experimentar noutros instrumentos e tudo funciona!!!! Como pode isto ser? Só não funciona em rts!!!
 
o problema está resolvido, está a funcionar por si só!
 

Erro em https://www.mql5.com/ru/docs/constants/structures/mqltraderequest ajuda

SL & TP Modification

Uma ordem comercial para modificar os níveis StopLoss e/ou TakeProfit. São necessários 4 campos:

-acção

-símbolo

-sl

-tp

-posição

Campo adicionado posição mas o número de campos a serem preenchidos é ainda 4.
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Erro na ajuda https://www.mql5.com/ru/docs/constants/structures/mqltraderequest

Campo adicionado posição mas o número de campos a serem preenchidos é ainda 4.
Alexey, não faz sentido escrever aqui, tem de enviar um pedido ao servicedesk. Ao mesmo tempo, haverá + para a classificação )
 
Alexey Volchanskiy:
Alexey, não vale a pena escrever aqui, tem de enviar um pedido a Servisdek. Ao mesmo tempo, será + para a classificação )
Estou demasiado velho para perseguir a classificação: )))) Não o repararão e não precisam de o fazer.
 
o_O:

coloca o segundo indicador um sinalizador que o envia para o indicador principal como um evento personalizado de ChartEvent + alterar o estado da variável global, por exemplo, pelo tempo em ms

No indicador principal, apanha-se este evento e inicia-se o cálculo, + olhar para a variável global para ter a certeza de que tem o mesmo ms de tempo que o que iniciou o cálculo.

Se o tempo nele mudou, significa que chegou um novo evento - e você quebra o seu cálculo actual.

assim.

---

Ou pode usar o sinalizador para mudar ms em gp em cada evento gráfico, e apenas o controlar no indicador principal

em geral - o segundo indicador irá paralelizar

Já está, obrigado. Infelizmente, esta solução só funcionará num consultor especializado (em que o cálculo deve ser interrompido). Não vai funcionar no indicador, porque a chamada do indicador no gráfico não cria uma fila paralela de gráficos, vai para a mesma fila de eventos, não mesmo para um gráfico específico, mas para TODOS os gráficos deste símbolo.

Como colocar o indicador como recurso MQ5 em vez de recurso EX5?