Como posso me livrar deste maldito erro? Estou farto disso. Estou verificando cada parâmetro de entrada da função. Para mim, no momento, é assim:
Ou seja, se o parâmetro não tiver sido alterado, não há necessidade de alterá-lo. Nunca tinha feito isso antes, mas decidi...
Em seguida, os parâmetros são passados para o método de modificação de pedidos como este:
Nw saída no registro:
Então, a revista nos notifica, como modificação: OK, mas depois... um erro. Nenhum dos parâmetros foi alterado.
O pedido está pendente. Portanto, podemos mudar aberto, parar e tomar preço. E isto, pelo que entendi, não contradizia a documentação.
Quem já encontrou algo assim? Como resolvê-lo?
Você está manipulando mal o código de erro, esquecendo que o código de erro já está anulado após suas inúmeras funções.
Portanto, quando ocorre um erro, você precisa salvar o código de erro em uma variável local e imprimi-lo de lá, após a massa de suas chamadas subseqüentes.
Você está manipulando mal o código de erro, esquecendo que o código de erro já está anulado após suas inúmeras funções.
Portanto, quando ocorre um erro, seu código deve ser salvo em uma variável local e somente então, após a massa de suas chamadas subseqüentes, imprimi-lo.
Por que você não cria também uma matriz de erros? Está escrito em preto e branco na documentação que a variável _LastError armazena o número do último erro. E é reinicializada pela função ResetLastError(). Se não houver mais erros entre chamadas de _LastError, _LastError armazena o valor do último erro. Não houve mais erros em meu código. Bem, não é essa a questão.
Além disso, não é muito lógico criar variáveis para erros em cada método e depois imprimir essas variáveis em Expert Advisors.
Afinal, se existe uma variável para coletar erros, por que fazer novos erros?
mal vivo, o que você quer dizer com "não há cheques"? Eu escrevi acima:
if (OrderOpenPrice() != ND (fd_MurreyLevelsValue[11])) \\ Если текущая цена не равна новой.. из массива, то.. New_OOP = ND (fd_MurreyLevelsValue[11]); \\.. новая цена равна этому новому значению цены из массива( расчитанного ). else New_OOP = OrderOpenPrice(); \\ Иначе новая цена равно текущей цене выбранного ордера. Т.е. не изменяется. if (OrderStopLoss() != ND (fd_MurreyLevelsValue[12])) New_SL = ND (fd_MurreyLevelsValue[12]); else New_SL = OrderStopLoss(); if (OrderTakeProfit() != ND (fd_MurreyLevelsValue[2])) New_TP = ND (fd_MurreyLevelsValue[2]); else New_TP = OrderTakeProfit();
Eu até fiz um comentário para o primeiro. Embora lá tudo seja elementar.
De que outra forma você pode verificar aqui?
Eu percebi, é por isso que eu limpei))))
Eu faço dupla verificação de que não é igual e direcionado para onde você espera!
Boris, o que você quer dizer com isso? Porque tenho escrito claramente que se o preço não for assim... caso contrário... atual... Qual é o objetivo? Você pode verificá-lo 20 vezes... :) Isso não faz sentido. Tenho me debatido com este código desde o segundo dia. Nunca havia encontrado um bicho assim antes. Agora eu já o enfrentei. Eu já escrevi e testei todos esses métodos muitas vezes. Eu enfrentei um problema aqui.
A questão é que sou mais um fã de táticas ligeiramente diferentes. Mas escrevendo as últimas Owls, deparou-se com esta falha. Eu mesmo não sei onde cavar, porque pristrintovav todos os códigos longitudinalmente e caso contrário não tenho mais pensamentos. É por isso que a função OrderModify( ) é incorporada. E eu não conheço sua implementação.
mal vivo, o que você quer dizer com "não há cheques"? Eu escrevi acima:
Eu até fiz um comentário para o primeiro. Embora lá tudo seja elementar.
De que outra forma você pode verificar aqui?
Victor, depois de verificar, o novo valor é atribuído ou não. Você tem que verificar.
if (OrderOpenPrice() != ND (fd_MurreyLevelsValue[11]) // Если текущая цена не равна новой.. из массива || OrderStopLoss() != ND (fd_MurreyLevelsValue[12]) // или || OrderTakeProfit() != ND (fd_MurreyLevelsValue[2])) // или // если одно из условий выполнено пойдём в модифай...
Victor, após verificar se o novo valor é atribuído ou não. Você tem que verificar
Alexey, e onde você tem um cheque para se certificar de que o valor das funções que estão sendo passadas não sofreu alterações? Eu já levei isto em consideração acima. E a necessidade de modificações em geral é feita no início. Há níveis lá, se o indicador informa que o nível mudou, vamos seguir em frente...
Boris, o que você quer dizer com isso? Porque tenho escrito claramente que se o preço não for assim... caso contrário... atual... Qual é o objetivo? Você pode verificá-lo 20 vezes... :) Isso não faz sentido. Tenho me debatido com este código desde o segundo dia. Nunca havia encontrado um bicho assim antes. Agora eu já o enfrentei. Eu já escrevi e testei todos esses métodos muitas vezes. Eu enfrentei um problema aqui.
A questão é que sou mais um fã de táticas ligeiramente diferentes. Mas escrevendo as últimas Owls, deparou-se com esta falha. Eu mesmo não sei onde cavar, porque pristrintovav todos os códigos longitudinalmente e caso contrário não tenho mais pensamentos. É por isso que a função OrderModify( ) é incorporada. E não sei sua implementação...
mal vivo, o que você quer dizer com "não há cheques"? Eu escrevi acima:
if (OrderOpenPrice() != ND (fd_MurreyLevelsValue[11])) \\ Если текущая цена не равна новой.. из массива, то.. New_OOP = ND (fd_MurreyLevelsValue[11]); \\.. новая цена равна этому новому значению цены из массива( расчитанного ). else New_OOP = OrderOpenPrice(); \\ Иначе новая цена равно текущей цене выбранного ордера. Т.е. не изменяется. if (OrderStopLoss() != ND (fd_MurreyLevelsValue[12])) New_SL = ND (fd_MurreyLevelsValue[12]); else New_SL = OrderStopLoss(); if (OrderTakeProfit() != ND (fd_MurreyLevelsValue[2])) New_TP = ND (fd_MurreyLevelsValue[2]); else New_TP = OrderTakeProfit();
Eu até fiz um comentário para o primeiro. Embora lá tudo seja elementar.
De que outra forma você pode verificar aqui?
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Como posso me livrar deste maldito erro? Estou farto disso. Estou verificando cada parâmetro de entrada da função. Para mim, no momento, é assim:
Ou seja, se o parâmetro não tiver sido alterado, não há necessidade de alterá-lo. Nunca tinha feito isso antes, mas decidi...
Em seguida, os parâmetros são passados para o método de modificação de pedidos como este:
Nw saída no registro:
Então, a revista nos notifica, como modificação: OK, mas então um erro. Nenhum dos parâmetros foi alterado.
O pedido está pendente. Portanto, podemos mudar aberto, parar e tomar preço. E isto, pelo que entendi, não contradizia a documentação.
Quem já encontrou algo assim? Como resolvê-lo?