Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 273

 

Bom dia a todos. Alguém lidou com a afixação de indicadores durante os testes em modo visual? É possível escondê-los durante os testes? Quero realmente ver como funciona a rede de arrasto, mas devido à grande quantidade de indicadores, o gráfico de visualização é muito pequeno e tenho de parar e minimizar manualmente todas as janelas indicadoras durante cada teste. A documentação de https://www.mql5.com/ru/docs/runtime/testing#indicatorrelease diz que

Для того чтобы запретить показ индикатора на графике после завершения одиночного тестирования, используйте функцию IndicatorRelease() в обработчике OnDeinit().

Não consigo encontrar informação sobre como ocultar indicadores durante os testes.

Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
Документация по MQL5: Программы MQL5 / Тестирование торговых стратегий
  • www.mql5.com
Программы MQL5 / Тестирование торговых стратегий - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
jommerbot:


Mas não encontrei qualquer informação sobre o que fazer se se quiser esconder os indicadores durante os testes.

Isto é porque não há nenhum.

https://www.mql5.com/ru/search#!keyword=HideTestIndicators

 

Pode dizer-me se um corretor pode dizer se um comerciante ou um robô está a negociar (MT4)? Anteriormente parecia que não podia, mas agora? Há apenas uma condição num dos concursos dos comerciantes:

1.4 A competição é uma competição entre comerciantes. Assim, em particular, não são permitidas estratégias automatizadas que não envolvam um humano (comerciante) para tomar uma decisão com base na situação actual do mercado.


Se eu usar um consultor especializado, queimam-me ou não?)

Perguntei ao seu gerente, ele evitou responder como podem determinar quem está a negociar.

 
Crucian:

Pode dizer-me se um corretor pode dizer se um comerciante ou um robô está a negociar (MT4)? Anteriormente parecia que não podia, mas agora? Há apenas uma condição num dos concursos dos comerciantes:

Se eu usar um Consultor Especialista, queimam-me ou não?)

Perguntado ao seu gerente, ele está a evitar responder como podem dizer quem está a negociar.

Já vi tais condições em concursos. O corretor pode bloquear a função de auto-negociação na plataforma e a EA pode simplesmente não começar por si.
 
papaklass:

Claro que pode.

Se não pudesse, não estaria a escrever. :)

Só há uma maneira de saber se uma encomenda é colocada por um EA - um número mágico não zero.
 
stringo:
Só há uma maneira de saber se uma encomenda é colocada por um EA - um número mágico não zero.

E se eu tiver um mágico na EA:

int mag=NULL;

ninguém na CD será capaz de determinar que se trata de uma EA?

 
rosomah:

E se eu tiver um mágico nos meus EAs:

int mag=NULL;

ninguém na empresa de corretagem a reconhecerá sequer como uma EA?

Provavelmente deve ser definido int mag != NULL; (não igual a 0).

E que mag deve ser atribuído à encomenda?

Algum? Isso também seria uma confusão.

 
Crucian:

Provavelmente terá de colocar int mag != NULL; (não igual a 0).

E que mag deve ser atribuído à encomenda?

Algum? Isso também seria um disparate.

int mag != NULL; -esta forma não será compilada no testador.

int mag = NULL; - este caminho é fácil. Se o verificarmos através do alerta, ele retornará "0".

int mag = EMPTY_VALUE; -esta também funciona. Aqui retorna"-2147483648".

Alerta("mag=",mag);

Agora testei-o no testador na MQL4 e MQL5. Funciona no testador.

Quanto ao verdadeiro código, a questão do que devemos fazer para que uma empresa de corretagem não sinta o Expert Advisor, pelo menos de acordo com os parâmetros de entrada, permanece em aberto para mim. Claro que o podemos fazer sem ordens parciais.

 
rosomah:

int mag != NULL; - não se compila no testador.

int mag = NULL; - funciona facilmente. Se o verificar com os alertas, devolverá "0".

int mag = EMPTY_VALUE; -esta também funciona. Aqui retorna"-2147483648".

Alerta("mag=",mag);

Agora experimentei-o no testador em MQL4 e MQL5. No testador vai.

Quanto ao verdadeiro código, a questão do que devemos fazer para que uma empresa de corretagem não sinta o Expert Advisor, pelo menos de acordo com os parâmetros de entrada, permanece em aberto para mim. É claro que o podemos fazer sem recorrer a encomendas.

NULL é um identificador especial utilizado quando se trabalha com tipos de referência (apontadores para objectos). O Integer (int) é um tipo significativo. Os tipos significativos não podem referir-se a nada, em particular ao identificador NULL, só podem ser passados por referência. Por conseguinte, a comparação de um tipo significativo com um tipo de referência é incorrecta. Também é impossível equacionar um tipo significativo com um tipo de referência. A razão pela qual este código é compilável é porque o compilador converte implicitamente NULL para um tipo significativo "0" e depois equaciona a variável mag com ele. A única solução verdadeira é simplesmente comparar o número mágico de uma encomenda ou transacção com zero. Se este valor for diferente de zero, podemos concluir que esta encomenda foi colocada pela EA:

ulong magic = HistoryOrderGetInteger(order_id, ORDER_MAGIC);

if(magic != 0)

   printf("Ордер выставлен экспертом");

else

   printf(Ордер выставлен вручную); 

 

por onde começo?!?! Acabei de me inscrever