[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 70

 

Ajuda na solução do problema. Posso já ter incomodado a todos aqui, mas por favor, ajude-me. Se a bandeira na barra anterior for 1, é permitido puxar a seta para baixo. Após o sorteio, colocamos uma nova bandeira igual a -1. No outro lado, pelo contrário. Mas o que eu faço de errado. Sem setas sem comentários. Todas as setas com comentários.

flag[i] = flag[i+1];             
  if (// flag[i] == 1 && 
//в вниз           
       ma13_0 > ma55_0 && macd[0] >= macd[1] && macd[1] >= macd[2] && macd[2] >= macd[3] && cci15_0 > 50 && cci170_0 > 0)
  {
       S[i] = High[i]+point*Point;                
       flag[i] = -1 ; // флаг показывает нормально пока закоментировано        
  }        
  if (// flag[i] == -1 && 
//в верх          
       ma13_0 < ma55_0 && macd[0] <= macd[1] && macd[1] <= macd[2] && macd[2] <= macd[3] && cci15_0 < 50 && cci170_0 < 0)
  {
       B[i] = Low[i]-point*Point;                
       flag[i] = 1 ;//флаг показывает нормально пока закоментировано         
   }
 
granit77:
Eu não sei. Sergeev sabe, ele disse que parece estar certo. Eu também gostaria de ver como escrevê-lo corretamente.
Eu só corrigi um pouco, para que mostrasse algo.
- Eu coloco o indicador em uma janela separada, então você pode colocá-lo de volta

- macd[] array estava pendurado no ar, tornou-o um indicador, aumentou a precisão
- bloqueou sua condição complexa para a abertura, coloque uma simples para ajuste
- mudou a condição para a bandeira, pelo menos ela funciona.

Então você pode introduzir gradualmente as condições, você verá imediatamente onde está o bug.

Obrigado. Vou dar uma olhada. Enquanto eu escrevia o post anterior, você postou o seu.
 
100yan:

AJUDA! Por favor me diga, se eu fechar parte de uma posição (por exemplo, pedir 1 lote, e fechar 0,5 lote) PedidoFechar bilhete deve mudar? Meu testador diz que sim... Como evitá-lo? Abaixo está um pedaço de código de fechamento...

Não há como evitá-lo. É o CD mudando o bilhete. Você está essencialmente reabrindo com outro volume, daí o novo bilhete. Portanto, mantenha seu próprio registro de pedidos e, após o fechamento parcial de uma posição, memorize seu novo bilhete para trabalho posterior. Você também pode fornecer algum tipo de identificação de posições parcialmente fechadas para o correto monitoramento posterior dessas posições por seu consultor especializado.
 
artmedia70:
Não há como evitá-lo. Este é o CD mudando o bilhete. Você está essencialmente reabrindo uma posição com um volume diferente, daí o novo bilhete. Portanto, mantenha seu próprio registro de pedidos e, após o fechamento parcial de uma posição, memorize seu novo bilhete para trabalho posterior. Você também pode fornecer algum tipo de identificação de posições parcialmente fechadas para o correto monitoramento posterior por parte do consultor especializado.

Obrigado! O MagicNumber muda?
 
gince:
Fez um desenho temporário do tampão de bandeira[] - está vazio, por quê? Onde está o meu erro?

seu erro é que a bandeira[i+1] não está inicializada.

Portanto, a bandeira de comparação[i]==1 e a bandeira[i]==-1 nunca será executada!

 
100yan:

Obrigado! O MagicNumber muda?
não
 
100yan:

Obrigado! O MagicNumber muda?
Neste caso, o MagicNumber não muda, a menos que o código EA o preveja.
 
DhP:
O MagicNumber não muda neste caso, a menos que isso esteja previsto no código EA.
é possível fazer isso ???? favor me mostrar como isso pode ser feito
 
sergeev:
sim???? e isso pode ser previsto
por favor mostre como isso pode ser feito
Quando uma posição é parcialmente fechada, você pode mudar o magik. Tenho certeza de que você pode escrever isto facilmente.
 
sergeev:

seu erro é que a bandeira[i+1] não está inicializada.

Portanto, a bandeira de comparação[i]==1 e a bandeira[i]==-1 nunca será executada!

Meu entendimento é que eu não inicializei a configuração de bandeira[i+1] . Em caso afirmativo, onde e como fazê-lo ?

Se eu definir 1, então quando eu iniciar o indicador, ele (o indicador) irá esperar pela mudança.

flag[i+1]= 1;//начальная установка

for(int i=limit-1;i>=0;i--){ 
   flag[i] == flag[i+1];   
   if ( flag[i] == 1  &&   
        условие продажи){              
       Продажа[i] = High[i]+point*Point; 
       flag[i] == -1 ;
    }                     
    if (flag[i] == - 1  &&     условие покупки){          
              Покупка[i] = Low[i]-point*Point; 
              flag[i] == 1 ;}
    }
}