[ARCHIVO]Cualquier pregunta de novato, para no saturar el foro. Profesionales, no lo dejéis pasar. No puedo ir a ningún sitio sin ti - 5. - página 265

 
vasabu2012:

Chicos, no conozco a Kim, quizás alguien con conocimientos pueda responder en este hilo.

Se lo agradecería mucho.

Aquí está Kim Igor V. Y aquí hay algunas características útiles de KimIV
 

Pregunta para los profesionales: tenemos que sacar datos sobre el último cerrado
orden, mantener el recuento de los números de orden no es posible porque
Si quiere obtener los datos del último pedido cerrado, tiene que llevar la cuenta de todos los números de pedido.
Cada EA tiene su propio asistente.
La pregunta es sobre los datos de la última orden cerrada en el terminal?

¡¡¡QUIEN SABE LA RESPUESTA POR FAVOR!!!

 
vasabu2012:
Pregunta para los profesionales: Necesitamos sacar los datos del último cierre
orden, llevar la cuenta de los números de orden no es posible porque
Tengo unos cuantos EAs trabajando y todos ellos ponen y cierran
Cada EA tiene su propio asistente.
La pregunta es sobre los datos de la última orden cerrada en el terminal?

No soy un científico, pero si estás buscando la última orden, encuéntrala por tiempo...
 
¿CONCRETAMENTE CÓMO?
 
¿Cómo puedo hacer que un EA funcione no sólo en la demo?
Archivos adjuntos:
sovetnik.ex4  31 kb
 
sergio7:
¿Cómo puedo hacer que un EA funcione no sólo en la demo?
El que has publicado aquí - NADA
 
sergio7:
¿Cómo puedo hacer que un EA funcione no sólo en la demo?

No es el código fuente. Debería ser mq4, no eh4.
 
paladin80:
El que has colgado aquí no es NADA.


El mismo intruso en otro hilo:

sergio704.04.2013 21:04
Ayuda a que el EA funcione no sólo en la demo.
Archivos adjuntos:
tpyokfcx.ex4(30.27 KB)
 

Decidí comprobar las bibliotecas que escribióTarasBy. Empecé con estehttps://www.mql5.com/ru/code/10659

Hay algunas preguntas. Seré coherente. Por ejemplo:

//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
//|  Автор : TarasBY, taras_bulba@tut.by                                              |
//+-----------------------------------------------------------------------------------+
//|        Получаем торговую информацию по символу                                    |
//IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII+
void fGet_MarketInfo (string fs_Symbol, int fi_Ticket = 0)
{
//----
         if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
         {
                  if (fi_Ticket > 0)
                  {
                     bs_Symbol = OrderSymbol();
                  }
                  else
                  {
                     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }
                  else
                  {
                      bi_SymDigits = MarketInfo (fs_Symbol, MODE_DIGITS);
                      bd_SymPoint = MarketInfo (fs_Symbol, MODE_POINT);
                  }
        if (bd_SymPoint == 0.0)
        {
           bd_SymPoint = fGet_Point (fs_Symbol);
        }
                  bd_ProfitMIN = NDP (ProfitMIN_Pips);
         }
         if (fi_Ticket > 0)
         {
            fGet_OrderDetails (fi_Ticket);
         }
    //---- Получаем текущие цены по инструменту
    RefreshRates();
    bda_Price[0] = NDD (fGet_TradePrice (0, bb_RealTrade, bs_Symbol));
    bda_Price[1] = NDD (fGet_TradePrice (1, bb_RealTrade, bs_Symbol));
    bd_Spread = NDD (bda_Price[1] - bda_Price[0]);
//----
}

Podemos ver en el propio parámetro de la función:

fi_Ticket = 0

Por lo general, estas funciones se llaman ya después de la selección de la orden, lo que significa que tendrán una entrada. ¿Por qué deberíamos entonces asignar un valor por defecto de cero?

El siguiente paso es aún más interesante:

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)
{
   if (fi_Ticket > 0)
   {
      bs_Symbol = OrderSymbol();
   }
   else
   {
     bs_Symbol = fs_Symbol;
                  }
                  if (bs_Symbol == Symbol())
                  {
                      bi_SymDigits = Digits;
                      bd_SymPoint = Point;
                  }

La variable fs_Symbol se compara inmediatamente con bs_Symbol.

Elbs_Symbol de arriba no fue inicializado, donde lafunciónfGet_MarketInfo()misma es llamada. ¿Y para qué sirve este bs_Symbol?

también en la condición:

if (fs_Symbol != bs_Symbol || fi_Ticket < 0)

condición, sifi_Ticket < 0, entonces siguiente...

if (fi_Ticket > 0)
{
   bs_Symbol = OrderSymbol();
}

y esto ya contradice la condición. Al principio del código debe cumplirse la condiciónfi_Ticket < 0, y luego dentro de esta condición el ticket > 0. ¿Dónde está la lógica?