[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 547

 

Alp:

Peço desculpas pela pergunta idiota, mas mesmo assim.

Não consigo entendê-lo. Suponha que eu compre (isto é, faça um negócio de compra) por $1.000.000 ou qualquer outra quantia de EURUSD, de modo que o gráfico salte visivelmente.

E a questão é: para onde irá depois de um acordo desse tipo - para cima ou para baixo (um único salto do meu acordo)? Acho que vai subir. Estou pensando corretamente?

Dimka-novitsek:

Sim, eu vejo as coisas dessa maneira. Porque digamos que você comprou a eur, e há menos dela no mercado, porque parte dela fica em seu armário. Isso significa que o preço de mercado para eles vai subir!

Então fica ainda mais obscuro. Digamos que eu compro EUR por 1 000 000 (1k) dólares (corretor multiplica isso por 100 e como resultado o negócio é por 100k) o gráfico salta 100 pontos e imediatamente os vendo e eu estou do lado positivo por 10 000 dólares bem lá corretor de comissão e espalha como resultado 6000$ líquidos no meu bolso. (Bem, é claro que após a venda, cairá novamente por 100 pontos.) Isto é um absurdo!!!! Afinal, talvez caia ao fundo do poço? Caso contrário, jogadores muito grandes ganhariam bilhões, não fazendo essencialmente nada.

 
Roman.:

Rapazes, vocês podem aconselhar sobre esta questão?

Aqui está um roteiro para encontrar o tamanho máximo da folga em zig-zag do crenfx - veja aqui:

Lanço-o no gráfico do instrumento no M5 - funciona bem com o cronograma padrão

é a profundidade máxima da história do símbolo no escritório da Alpari ao carregá-lo com F2 - eu o verifiquei, ou seja, parece ser o conteúdo da aba "Experts" do terminal do cliente - parece ser verdade:

Ao usar o mesmo projeto de script em minha EA no mesmo intervalo de tempo no mesmo período de gráfico M5, não conta corretamente, ou seja

calcula números bastante diferentes (menores do que no script) ou 0. Qual pode ser o erro ou pode ser algum tipo de incoerência histórica? Obrigado.

Isto é, começo no testador com coruja após o tempo estimado para encontrar uma coruja a prova, em teoria tudo é normal e os números no final do roteiro e coruja devem ser os mesmos... Qual poderia ser o erro?


Verifique o número de barras no testador. No início deve ser de 1000, se estiver presente, é claro
 
Vinin:

Verifique o número de barras no testador. No início deve ser de 1000, se estiver presente, é claro.

Como isso pode ser verificado?
 
Imprimir("Bars=", Bars);
 
Vinin:
Imprimir("Bars=", Bars);

Entendido. Obrigado. Vou verificar isso.
 
Cavalheiros, poderiam me dar um exemplo da função que move uma posição aberta para o breakeven (trabalho em tick), meu Conselheiro Especialista tem uma rede de arrasto, o início desta rede de arrasto é somente após a função de capotamento para comprar. Gostaria de usar esta função em meu artigo como exemplo e verificar meus resultados.
 

Por favor, diga-me por que neste pedaço de código a variável externa Lots111 continua aumentando seu valor, multiplicando-o por um número desconhecido, e torna-se 435435466445000000000000000000000000.

A variável Lots111 não é usada em nenhum outro lugar além deste fragmento de código. Lots111 é igual a 0,01, enquanto a variável dcou é igual a 2-3. Para ser mais exato, notei que ele aumenta a cada nova barra; não consigo entender por quê. Como é possível que uma variável externa que não é utilizada em nenhum outro lugar retenha seu valor e aumente em cada barra, muito provavelmente multiplicada por 2.

double fGetLots(int a_cmd_0) {
   int dcou;
   dcou = AccountBalance()/2000;
   Lots111 = Lots111*dcou;
   int i11;
   int orders;
   
   for(i11=0;i11<OrdersTotal();i11++)
     {
     if(OrderSelect(i11,SELECT_BY_POS,MODE_TRADES) == true)
       {
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
         {
         orders++;
         }
       }
     }
   static double Lots2;
   
   if(orders == 0)
     {
     Lots2 = Lots111;
     }
   Comment(Lots111,"\n",Lots2,"\n",orders,"\n",dcou);
   double l_lots_4;
   int l_datetime_12;
   switch (gi_256) {
   case 0:
      l_lots_4 = Lots2;
      break;
   case 1:
      l_lots_4 = NormalizeDouble(Lots2 * MathPow(MultiLotsFactor, gi_360), gd_240);
      break;
   case 2:
      l_datetime_12 = 0;
      l_lots_4 = Lots2;
      for (int l_pos_20 = OrdersHistoryTotal() - 1; l_pos_20 >= 0; l_pos_20--) {
         if (OrderSelect(l_pos_20, SELECT_BY_POS, MODE_HISTORY)) {
            if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
               if (l_datetime_12 < OrderCloseTime()) {
                  l_datetime_12 = OrderCloseTime();
                  if (OrderProfit() < 0.0) l_lots_4 = NormalizeDouble(OrderLots() * MultiLotsFactor, gd_240);
                  else l_lots_4 = Lots2;
               }
            }
         } else return (-3);
      }
   }
   if (AccountFreeMarginCheck(Symbol(), a_cmd_0, l_lots_4) <= 0.0) return (-1);
   if (GetLastError() == 134/* NOT_ENOUGH_MONEY */) return (-2);
   return (l_lots_4);
}
 
sss2019:

Por favor, diga-me por que neste pedaço de código a variável externa Lots111 continua aumentando seu valor, multiplicando-o por um número desconhecido, e torna-se 435435466445000000000000000000000000.

A variável Lots111 não é usada em nenhum outro lugar além deste fragmento de código. Tenho Lots111 igual a 0,01 e dcou variável igual a 2-3.

Tente às vezes inicializar as variáveis. Às vezes ajuda. Especialmente quando são utilizados por padrão. Ou seja, o valor não é exatamente definido, e eles são multiplicados, divididos por eles. Você também pode ganhar divisão por zero, da mesma forma
 
Vinin:
Tente inicializar as variáveis às vezes. Às vezes ajuda. Especialmente quando são utilizados por padrão. Ou seja, o valor não é exatamente definido, e eles são multiplicados, divididos por eles. Você também pode ganhar divisão por zero, da mesma forma


Você pode explicar isso com mais detalhes? Bem, eu acho que entendi, eu defini todas as variáveis com seus valores originais, mas o problema persiste.
 
sss2019:

Isto deve ser feito, por favor explique com mais detalhes. Acho que consegui, defini todas as variáveis com seus valores originais, mas o problema persiste.

Você arrancou código de algum EA (hackeou-o antes), mas não é importante (pelo menos você tentou entendê-lo). Mas você deveria ter criado o seu próprio com base nele, que você teria facilmente navegado. E assim você não teria tido nenhum problema. Trabalhe com sua cabeça.