[ARCHIVO] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 3. - página 547

 

Alp:

Me disculpo por la pregunta tonta, pero aun así.

No puedo entenderlo. Supongamos que compro (es decir, hago una operación de compra) por 1.000.000 de dólares o cualquier otra cantidad de EURUSD, de modo que el gráfico salta notablemente.

Y la pregunta es, ¿a dónde irá después de dicho acuerdo: a la alza o a la baja (un solo salto de mi acuerdo)? Creo que subirá. ¿Estoy pensando correctamente?

Dimka-novitsek:

Sí, lo veo así. Porque digamos que compraste el eur, y hay menos en el mercado, porque una parte se queda en tu casillero. Eso significa que el precio de mercado de los mismos subirá.

Entonces se vuelve aún más confuso. Digamos que compro EUR por 1 000 000 (1k) dólares (el broker multiplica esto por 100 y como resultado el trato es por 100k) el gráfico salta 100 puntos hacia arriba e inmediatamente los vendo y estoy en el lado positivo por 10 000 dólares bien allí la comisión del broker y el spread como resultado 6000$ netos en mi bolsillo. ¡¡¡¡(Está claro que después de la venta, volverá a caer 100 puntos.) Esto es un disparate!!!! ¿Tal vez se caiga al fondo después de todo? De lo contrario, los grandes actores ganarían miles de millones sin hacer prácticamente nada.

 
Roman.:

Chicos, ¿podéis aconsejarme sobre esta cuestión?

Aquí hay un script para encontrar el tamaño máximo de la holgura en zig-zag de crenfx - ver aquí:

Lo tiro en el gráfico del instrumento en M5 - funciona bien con el marco de tiempo por defecto

es la profundidad máxima del historial del símbolo en la oficina de Alpari al cargarlo con F2 - lo he comprobado, es decir, se parece al contenido de la pestaña "Expertos" del terminal del cliente - parece ser cierto:

Al utilizar el mismo diseño de script en mi EA en el mismo intervalo de tiempo en el mismo período de gráfico M5 no cuenta correctamente, es decir.

calcula números bastante diferentes (más pequeños que en el script) o 0. ¿Cuál puede ser el error o puede ser algún tipo de inconsistencia en la historia? Gracias.

Es decir, empiezo en el tester con owl después del tiempo estimado para encontrar un failsafe, en teoría todo es normal y los números al final del script y de owl deberían ser los mismos... ¿Cuál puede ser el error?


Compruebe el número de barras en el probador. Al principio debería ser 1000, si está presente por supuesto
 
Vinin:

Compruebe el número de barras en el probador. Al principio debería ser 1000, si está presente por supuesto.

¿Cómo se puede comprobar esto?
 
Print("Bares=", Bares);
 
Vinin:
Print("Bares=", Bares);

Lo tengo. Gracias. Lo comprobaré.
 
Señores, me podrían dar un ejemplo de la función que mueve una posición abierta al punto de equilibrio (trabajo en el tick), mi Asesor Experto tiene un arrastre, el inicio de este arrastre es sólo después de la función de rollover para comprar. Me gustaría utilizar esta función en mi artículo como ejemplo y verificar mis resultados.
 

Por favor, dime por qué en este trozo de código la variable externa Lots111 sigue aumentando su valor, lo multiplica por un número desconocido y se convierte en 4354354664450000000000000000.

La variable Lots111 no se utiliza en ningún otro lugar aparte de este fragmento de código. Lots111 es igual a 0,01, mientras que la variable dcou es igual a 2-3. Para ser más exacto, he notado que aumenta con cada nueva barra; no puedo entender por qué. Cómo es posible que una variable externa que no se utiliza en ningún otro sitio conserve su valor y aumente en cada barra, seguramente 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, dime por qué en este trozo de código la variable externa Lots111 sigue aumentando su valor, lo multiplica por un número desconocido y se convierte en 4354354664450000000000000000.

La variable Lots111 no se utiliza en ningún otro lugar aparte de este fragmento de código. Tengo Lots111 igual a 0,01 y la variable dcou igual a 2-3.

Intenta inicializar las variables algunas veces. A veces ayuda. Especialmente cuando se utilizan por defecto. Es decir, el valor no está exactamente definido, y se multiplica, se divide por ellos. También se puede ganar la división por cero de la misma manera
 
Vinin:
Intenta inicializar las variables algunas veces. A veces ayuda. Especialmente cuando se utilizan por defecto. Es decir, el valor no está exactamente definido, y se multiplica, se divide por ellos. También se puede ganar la división por cero de la misma manera


¿Puede explicar esto con más detalle? Ah, bueno, creo que lo he conseguido, he puesto todas las variables en sus valores originales, pero el problema persiste.
 
sss2019:

Esto es para hacer, por favor, explique con más detalle. Creo que lo he conseguido, he puesto todas las variables en sus valores originales pero el problema persiste.

Has arrancado código de algún EA (lo has hackeado antes), pero no es importante (al menos has intentado entenderlo). Pero deberías haber creado el tuyo propio en base a él, por el que habrías navegado fácilmente. Y entonces no habrías tenido ningún problema. Trabaja con la cabeza.