Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 74
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
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
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
{
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:
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?
{
ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
}
Então preciso aumentar o SELL_Lvl para ser redesenhado:
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:
Transferir o objeto para o novo valor sem eliminá-lo ou recriá-lo:
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
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?
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:
Melhor percorrer o ciclo, identificar a correta e seguir a documentação
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?
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.