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
primeiro, é incorreto comparar Stochast_ real e integer 75, e segundo, é mais correto comparar sua diferença com zero.
Outro problema surge com o Bloco de Fechamento de Posição. Coloquei este bloco em meu Expert Advisor preferido. Só abre negócios estritamente na direção da tendência (meus parabéns por isso...)
Mas dependendo da força da tendência, o Expert Advisor é (e o faz!) consistentemente capaz de abrir vários negócios, - um após o outro! É aqui que eu preciso do bloco de posições de fechamento ao sinal do indicador. Mas aqui está o problema! Quando e se várias posições são abertas dentro de uma tendência e a correção contra a tendência começa, o indicador no bloco dá um sinal para fechar. Como eu preciso.
Entretanto, por alguma razão, nem todas as posições em aberto estão fechadas. Basicamente, apenas a mais antiga. As que foram abertas mais tarde não reagem ao sinal de fechamento - mas continuam o movimento. E mais, - "a história se repete como uma farsa"! Com cada sinal de fechamento, apenas um, a primeira posição aberta é fechada, e os outros continuam a se mover! O lote de todas as posições é constante.
Aqui está o gráfico do modo visual. O fechamento pelo sinal do indicador é marcado com um triângulo verde. Vê-se claramente que apenas uma posição é fechada a cada vez pelo sinal. Eu gostaria que todas as posições abertas fossem fechadas! Por favor, me avise, qual é a razão?
Um lembrete de código :
/********* Закрытие позиций **************************************** if (AutoClose) { //---------------------------------------------------------------------- if (ExpertOrder(MagicLong)) { //есть открытые ордера на покупку if(Stochast_1>=Up_lim && Stochast_0<Up_lim) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);//закрываем позицию return(0); // выходим } } //-------------------------------------------------------- if (ExpertOrder(MagicShort)) { //есть открытые ордера на продажу if(Stochast_1<=Low_lim && Stochast_0>Low_lim) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);//закрываем позицию return(0); // выходим } } //------------------------------------------------------- } //if (AutoClose)
Outro problema surge com o Bloco de Fechamento...
Onde está o laço no OrderTotal() ?
Não, esse não é o caso aqui. As ordens são definidas - de forma diferente:
E esta versão do código é mais confortável para mim! Porque minhas posições longas e curtas abrem independentemente uma da outra.
No entanto, ainda é o mesmo com o fechamento padrão. ...
No entanto, ainda é o mesmo com o fechamento padrão. ...
Talvez você queira tentar fazer um loop inverso de OrdersTotal a 0. Isso deve ajudar.
Como fazer isso? A propósito, aqui está o gráfico - com o "padrão" acima: Tudo é o mesmo - apenas uma posição fecha no sinal do indicador -
Como você faz isso?
para (int v=0; v<OrderTotal(); v++)
escrever:
para (int v=OrdensTotal()-1; v>0; v--)
Funciona para mim.
Como você faz isso?
para (int v=0; v<OrderTotal(); v++)
escrever:
para (int v=OrdensTotal()-1; v>0; v--)
Funciona para mim.
Você está absolutamente certo. Embora a KimV tenha scripts e bibliotecas que implementam tudo isso. Talvez você devesse procurá-lo em seu fórum.