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
Esta é a única coisa que fiz até agora
O restante não precisa ser corrigido por lotes. Mas há erros relacionados ao outro (antigo). É necessário corrigir.
Atualizado. No modo BestInterval ativado, recomendo usar essa opção.
Fórum sobre negociação, sistemas de negociação automatizados e teste de estratégias de negociação
Bibliotecas: Virtual
fxsaber, 2019.12.11 12:15 pm.
É difícil dizer quando os desenvolvedores consertarão a situação com a normalização dos preços iniciais dos símbolos e se farão isso. É por isso que esse modo foi introduzido.Comportamento bastante inesperado.
Parece que se você executá-lo uma vez com Action=false, ele salvará o resultado da passagem em um arquivo e poderá aplicá-lo mais tarde. Mas o mais inesperado é que ele também salvará todos os parâmetros, como Total, RF, DD, etc. Em outras palavras, se você executá-lo com Action=true em outro intervalo do mesmo símbolo, de outro símbolo etc., ele não apenas aplicará o melhor momento para a negociação, mas também ficará no registro, fornecendo os valores antigos.
Se, em seguida, você executá-lo com Action=true em outro intervalo do mesmo símbolo, de outro símbolo etc., ele não só aplicará o melhor momento para a negociação, mas também ficará no registro, fornecendo os valores antigos.
Ele não mostra os valores da execução verdadeira, mas sim os dados da execução falsa que foi aplicada. Você pode alterar o símbolo, o intervalo, etc., mas os valores mostrados não serão alterados. Eles são relevantes apenas para o momento em que a entrada foi feita. Isso é feito propositalmente.
Por via das dúvidas, gostaria de salientar que, do ponto de vista da arquitetura, isso não funciona corretamente com o StopLoss. Teoricamente, o StopLoss acionado em action=false pode cair no intervalo que o BestInterval decide descartar. Como resultado, ele se deslocará em action=true, e os números do resultado podem, às vezes, ser muito diferentes daqueles previstos em action=false.
Parece que você está entendendo algo errado. Mesmo teoricamente, não deveria haver problemas.
Sim, o problema parece ser que o Sync, que está incluído no Virtual e que usa o BestInterval, ignora o StopLoss e o TakeProfit. O problema não é arquitetônico, mas sim o fato de eu não ter entendido completamente.
Estou escrevendo TC por meio de limitadores e tomadores, portanto, seria bom mostrar um exemplo primitivo de reprodução do problema.
Quando active=true no BestInterval.mqh, há o voidOnTick( void ), dentro dele SYNC::Positions<BEST_TIME>();, o que levará o Sync.mqh ao staticvoid Positions( constint Handle = 0, constbool Reverse = false ). Dentro dele, os lotes são recalculados e, se estiverem dentro do intervalo exigido, são transferidos do ambiente virtual para o real por meio de SYNC::NewOrderSend(_Symbol, Type, ::MathAbs(AddLots), Price, 100, 0, 0, 0);;. É um pouco estranho que o preço não seja retirado das posições, mas seja lido no local, mas tudo bem. Como você pode ver, o StopLoss e o TakeProfit são passados a zero. Talvez você esteja usando a opção BESTINTERVAL_LIMITSYNC_NETTING, em que o TakeProfit é levado em consideração.
Sim, eu uso esse modo. O modo true foi criado mais para demonstração. Nem sequer pensei em perder tempo com uma solução universal, pois tudo seria desperdiçado.
Se você fizer alguns ajustes, poderá usar o BestInterval-true para passagens únicas de EAs com código-fonte fechado (Market, etc.).
Mas, ainda assim, o principal recurso do BestInterval é trabalhar no modo de otimização. O True é um recurso bom, mas não obrigatório.