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

 
ilnur17021992:

há uma variável

int Nível = 0;

Enquanto o programa está em execução, ele está em constante mudança. Ajude-me a escrever uma condição: se o Nível NÃO mudou, então não faça nada. Se o Nível mudou (não importa se mudou para cima ou para baixo), então faça alguma ação { operador }

insira outra variável

int Nível1 = 0;

int Nível = 0;

se (Nível !=Nível1)

{};

e depois Nível1 =Nível

mas eu realmente não entendo por que precisamos puxar uma matriz em cada tique se podemos fazer isso depois de qualquer operação comercial

 
trader781:

insira outra variável

int Nível1 = 0;

int Nível = 0;

se (Nível !=Nível1)

{};

e depois Nível1 =Nível

Eu realmente não entendo porque eu preciso puxar uma matriz a cada tique, se eu posso fazer isso depois de qualquer operação comercial

      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

Além disso, eu preciso que isso aconteça quando a SELL_Lvl aumentar:

         ObjectDelete( "Sell no loss level");

Mas, como a condiçãoSELL_Lvl>0 está cumprida, a linha é redesenhada novamente, mas por um novo valor deSELL_NoLossLevel. Existe uma maneira mais fácil e óbvia de redesenhar a linha, dependendo doSELL_Lvl?

 
ilnur17021992:
      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

Então preciso aumentar o SELL_Lvl para ser redesenhado:

         ObjectDelete( "Sell no loss level");

Mas como a condiçãoSELL_L_Lvl>0 está cumprida, a linha deve ser redesenhada novamente, mas com um novo valor deSELL_NoLossLevel. Existe uma maneira mais fácil e óbvia de redesenhar a linha, dependendo do valor daSELL_Lvl?

Transferir o objeto para o novo valor sem apagá-lo ou recriá-lo:

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);
 
Vitaly Muzichenko:

Transferir o objeto para o novo valor sem eliminá-lo ou recriá-lo:

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);

Esta é certamente uma opção, mas eu gostaria que a linha fosse redesenhada pelo valor deSELL_NoLossLevel dependendo se aSELL_Lvlmudou

assim se(ObjectGet("Sell no loss level", 1) !=SELLL_NoLossLevel{ObjectDelete("Sell no loss level");}

A linha é redesenhada a cada tick enquanto eu preciso que ela seja redesenhada somente sea SELL_Lvl mudar

 
ilnur17021992:

Claro que é uma variante, mas eu gostaria que a linha fosse redesenhada pelaSELL_NoLossLevel, dependendo se aSELL_Lvl tiver mudado

assim se(ObjectGet("Sell no loss level", 1) !=SELLL_NoLossLevel{ObjectDelete("Sell no loss level");}

A linha é redesenhada a cada tick, enquanto eu preciso que ela seja redesenhada somente sea SELL_Lvl mudar

Explicar claramente a condição de redesenho da linha, com valores reais de preço.

Para a linha destacada: quanto mudou? O que indica o fato de que SELL_Lvl mudou?

 
os caras aconselham a função de fechamento de ordens pendentes na mcl5 há cinco ordens de limite de compra para fechar a ordem mais baixa
 
TYRBO:
quero saber que função usar para fechar uma ordem pendente no mcl5.

É melhor fazer um loop through, determinar o certo e pela documentação

Eliminar ordem pendente

Ordem comercial para eliminar uma ordem pendente. Requer 2 campos a serem especificados:

  • ação
  • encomenda
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Melhor percorrer o ciclo, identificar a correta e seguir a documentação

Preciso de um bilhete de pedido inferior para fechá-lo, sei como encontrar o preço do pedido inferior, eu gostaria que você me dissesse como encontrar um bilhete de pedido inferior
 
Alexey Viktorov:

Anote claramente a condição para o redesenho da linha, com valores reais de preço, e então você entenderá o que você precisa fazer.

Sobre o destacado: mudado por quanto? O que indica o fato de que SELL_Lvl mudou?

SELL_Lvl é o número de joelhos (pedidos) da grade de venda.SELL_NoLossLevel é o nível total (preço) desses pedidos. Bem, a idéia é a seguinte: precisamos de uma linha desenhada no nível de uma Linha de Compra e redesenhada respectivamente quando novas Linhas são abertas. Não sei como fazer isso.
 
TYRBO:
Eu sei como encontrar o preço de um pedido mínimo. Eu gostaria que me dissesse como encontrar um bilhete de pedido mínimo.

Há um exemplo na documentação.

Provavelmente seria melhor analisar as ordens no loop e, desde que a próxima ordem seja menor do que a anterior, selecioná-la para continuar trabalhando com ela. Assim, quando sairmos do laço, a ordem a ser apagada será selecionada.

Ou você pode primeiro salvar sua posição na lista de pedidos no loop e após a saída do loop selecioná-la pelo índice salvo.

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