Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 25

 
Artyom Trishkin:
Construir uma linha virtual, não um objeto gráfico, ao invés de uma linha de tendência. Respectivamente, e obter o valor não através de ObjectGetValueByShift("1",bar_seek), mas por equação de linha reta.
obrigado! - Vou tentar)
 
Nikolay Gaylis:
Obrigado! Vou tentar).
De nada...
 
Nikolay Gaylis:
Obrigado! Vou tentar)

Escrevi um artigo no mql4.com há muito tempo. Ela contém uma descrição detalhada do trabalho com linhas de tendência virtuais e a busca do valor correto do preço na barra certa dessas linhas virtuais.

um indicador baseado neste artigo no kodobase. Nele eu já retrabalhei o código para o novo mql4.

 
Artyom Trishkin:
Deve ter sido essa a idéia. Entretanto, esta verificação levará em conta não apenas as ordens pendentes, mas também todas as operações em uma conta comercial - depósitos, saques, bônus, etc.
Nikolay Gaylis:

Esta condição permite que a diretoria trabalhe apenascom ordens empilhadas, era essa a intenção?

    if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;
Propriedades dos pedidos

Tipo de operação para a função OrderSend(). Pode ser qualquer um dos seguintes valores:

Constante
Valor
Descrição
OP_BUY
0
Compre
OP_SELL
1
Venda
OP_BUYLIMIT
2
Pedido de LIMITE DE COMPRA Pendente
OP_SELLLIMIT
3
Pedido de LIMITE DE VENDA Pendente
OP_BUYSTOP
4
Ordem STOP Pendente de compra
OP_SELLSTOP
5
Pendente da ordem de parada da venda


O cálculo é que as ordens pendentes não serão tomadas de forma alguma até que sejam convertidas em ordens de mercado somente para o símbolo atual. Após o processamento da última ordem de mercado (se houver muitas delas) para o símbolo atual, a EA é removida do gráfico (agora ela é removida imediatamente após o acionamento da primeira ordem e leva em conta o fato de que se houver uma ordem para o símbolo atual e outra para outro).

Por que isso acontece e onde devo colocar uma ordem de retorno, para que quando a próxima ordem for fechada, ela envie uma função diretamente para as condições após a contagem++ e inicie o playound somente depois que a última ordem for acionada. Finalmente, coloquei Orderselect() para determinar a última (se a ordem for fechada e não pudermos selecionar a ordem, não temos nada a fazer neste gráfico)

 
trader781:
Propriedades dos pedidos

...


As ordens pendentes não serão levadas em conta até que sejam convertidas em ordens de mercado apenas para um símbolo atual. Após o processamento da última ordem de mercado (se houver muitas delas) para o símbolo atual, o Expert Advisor apaga a si mesmo do gráfico (é apagado imediatamente após o acionamento da primeira ordem e presta atenção ao fato de que se houver uma ordem para o símbolo atual e outra para outro, ele a leva em consideração).

por que isso acontece e onde colocar um retornado, para que quando a próxima ordem for fechada, ele envie uma função imediatamente para as condições após a contagem++ e somente depois que a última ordem for acionada é que ele fará um playound. Finalmente, coloquei Orderselect() para determinar a última (se a ordem for fechada e não pudermos selecionar a ordem, não temos nada a fazer neste gráfico)

if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;

Este código ignora todas as posições de mercado no loop.

O que segue é desconhecido para mim, mas se continuarmos a processar outros tipos de pedidos - aqueles 2 e superiores, tal processamento levará em conta todos os tipos de pedidos pendentes e pedidos do tipo 6 - ações sobre a conta.

Onde está o código com todo o ciclo?

 
Artyom Trishkin:
if(OrderSymbol() ==Symbol() &&OrderType()<2)
          continue;


Onde está o código com todo o ciclo?

Posto 236

esta seção deve passar apenas as de mercado para o instrumento atual

 
trader781:

Posto 236

esta seção deve passar apenas as de mercado sobre o instrumento atual

Este loop que você tem está estupidamente vazio. Não faz nenhum sentido - apenas diminui quando você tem um grande número de pedidos em sua conta.

E arrume seu código - é apenas um lixo ilegível, não um código.

E por que você precisa de aparelho duplo de atadura em OnTick()? Qual é o significado sagrado disso?

 
Artyom Trishkin:

E ponha seu código em ordem - é apenas lixo ilegível, não código.

Não me entenda mal. Se eu pudesse fazer do jeito que você quer, não estaria aqui sentado. É por isso que estou pedindo ajuda para resolver a tarefa atual.

 
trader781:
Artyom Trishkin:

E ponha seu código em ordem - é apenas lixo ilegível, não código.

Não me entenda mal. Se eu pudesse fazer do jeito que você quer, não estaria aqui sentado. É por isso que lhe peço que me ajude a resolver a tarefa atual.

Talvez você seja capaz de remover linhas vazias do código? É necessária alguma habilidade especial?

Na verdade, existe a combinação chave Ctrl+"," - um estilizador. Embora ruim, mas ainda assim. E então você pode apagar linhas vazias do código para não deixar as pessoas olharem para a "tripa". É a cultura mais simples de comunicação.

Mas depois que você limpar seu código, ele se tornará mais legível para você, sem mencionar outras pessoas que também precisarão entender sua lógica. Todas as deficiências serão vistas ali.

 
Artyom Trishkin:

Você provavelmente sabe como remover linhas vazias do código, não sabe? Isto requer alguma habilidade especial?

Na verdade, existe um atalho de teclado Ctrl+"," - um estilizador. Embora ruim, mas ainda assim. E então você pode apagar linhas vazias do código para não deixar as pessoas olharem para a "tripa". É a cultura mais simples de comunicação.

Mas depois que você limpar seu código, ele se tornará mais legível para você, sem mencionar outras pessoas que também precisarão entender sua lógica. E todas as suas deficiências serão vistas ali.

Depois de limpar seu código, ele se tornará mais legível para você, para não mencionar outras pessoas que precisam entender sua lógica também. É lá que todos os insetos serão vistos.

OK, isso é melhor?
Arquivos anexados:
Razão: