O problema surgiu do nada, o Expert Advisor estava trabalhando, sem problemas, mas assim que eu inseri uma nova função (trailing stop), OrderSelect não funcionou em toda minha EA e erro 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Valor inválido dos parâmetros da função. No início eu não entendi, pensei que poderia ter mudado algo em algum lugar, removi o trailing stop e devolvi tudo como estava, mas OrderSelect ainda gera erro.
Aqui está o código só por precaução:
for(int i = OrdersTotal(); i > 0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES) == true)
{
if(OrderType() == OP_SELL)
{
if(!OrderClose(OrderTicket(), Lots, Ask, slippage, clrRed))
{Print("Error Order Close SELL = ", GetLastError());}
}
}
else
{Print("Error order select, try order close SELL = ", GetLastError());}
}
O problema surgiu do nada, o Expert Advisor estava trabalhando, sem problemas, mas assim que eu inseri uma nova função (trailing stop), OrderSelect não funcionou em toda minha EA e erro 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Valor inválido dos parâmetros da função. No início eu não entendi, pensei que poderia ter mudado algo em algum lugar, removi o trailing stop e devolvi tudo como estava, mas OrderSelect ainda gera erro.
Aqui está o código só por precaução:
Este não é o código completo. Muito provavelmente um parênteses foi removido em algum lugar.
precisamos para (int i = OrderTotal() -1; i>=0; i--) as ordens são numeradas a partir de zero e, portanto, o número mais alto é 1 a menos do que o número
Exatamente! Eu não notei que... Eu preciso dormir mais
Isto não é sério... O que são eles (entrada e externa) para então....
O que não é sério? Você fez uma pergunta no ramo do código e obteve uma resposta apropriada. Bem, se você ainda não pensou em reiniciar o terminal, você já foi atendido - servicedesk.
Valerius: O que eu faço se, por exemplo, eu definir as configurações no EA hoje, então no dia seguinte algumas das configurações estão em branco?
É difícil adivinhar como você fez isso. Não quero lhe mostrar o código do Expert Advisor, e sou preguiçoso demais para ver tudo isso. Fazer uma cópia com um nome diferente, apagar tudo, exceto parâmetros e função vazia OnTick (ou Start ????). O efeito ainda está lá? Mostrar o código resultante
Olá, eu quero fazer um EA baseado em um indicador, eu copiei o código indicador no ontick, estou perdendo as variáveis da função onCalculate, eu preciso fazer tudo através do copytime copyhigh copylow, etc. ou existe uma maneira mais fácil e rápida?
[in] input-параметры пользовательского индикатора, разделенные запятыми. Тип и порядок следования параметров должен соответствовать. Если параметры не указаны, то будут использованы значения по умолчанию.
Bom dia!
O problema surgiu do nada, o Expert Advisor estava trabalhando, sem problemas, mas assim que eu inseri uma nova função (trailing stop), OrderSelect não funcionou em toda minha EA e erro 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Valor inválido dos parâmetros da função. No início eu não entendi, pensei que poderia ter mudado algo em algum lugar, removi o trailing stop e devolvi tudo como estava, mas OrderSelect ainda gera erro.
Aqui está o código só por precaução:
Bom dia!
O problema surgiu do nada, o Expert Advisor estava trabalhando, sem problemas, mas assim que eu inseri uma nova função (trailing stop), OrderSelect não funcionou em toda minha EA e erro 4051 ERR_INVALID_FUNCTION_PARAMVALUE - Valor inválido dos parâmetros da função. No início eu não entendi, pensei que poderia ter mudado algo em algum lugar, removi o trailing stop e devolvi tudo como estava, mas OrderSelect ainda gera erro.
Aqui está o código só por precaução:
Aqui está o código apenas no caso de: for(int i = OrderTotal(); i > 0; i--)
precisamos para (int i = OrdensTotal() -1; i>=0; i--) as ordens são numeradas começando de zero, então o maior número é 1 a menos do que o número
precisamos para (int i = OrderTotal() -1; i>=0; i--) as ordens são numeradas a partir de zero e, portanto, o número mais alto é 1 a menos do que o número
Exatamente! Eu não notei que... Eu preciso dormir mais
Precisamos (int i = OrdensTotal() -1; i>=0; i--) as ordens são numeradas a partir de zero e, portanto, o número mais alto é 1 a menos do que o número
Obrigado!
Isto não é sério... O que são eles (entrada e externa) para então....
O que não é sério? Você fez uma pergunta no ramo do código e obteve uma resposta apropriada.
Bem, se você ainda não pensou em reiniciar o terminal, você já foi atendido - servicedesk.
É difícil adivinhar como você fez isso. Não quero lhe mostrar o código do Expert Advisor, e sou preguiçoso demais para ver tudo isso. Fazer uma cópia com um nome diferente, apagar tudo, exceto parâmetros e função vazia OnTick (ou Start ????). O efeito ainda está lá? Mostrar o código resultante
Ajudou? Como funcionava antes?
Sinto muito, mas não entendo por que o oncalculate deve passar os valores das variáveis pré-definidas se elas são globais e também disponíveis
Olá, eu quero fazer um EA baseado em um indicador, eu copiei o código indicador no ontick, estou perdendo as variáveis da função onCalculate, eu preciso fazer tudo através do copytime copyhigh copylow, etc. ou existe uma maneira mais fácil e rápida?
iCustom para o resgate