Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 675

 
Si lo sabe: ¿hay alguna restricción en el uso de if dentro del operador de conmutación?
 
no.
 

fenómenos extraños

Hola, me he encontrado con un problema poco claro. He estado probando el EA en diferentes pares y marcos de tiempo. Todo funcionaba bien, al menos adecuadamente, hasta que hice una prueba con USDCAD. En este par se observa un comportamiento completamente inadecuado del Asesor Experto (o más bien del probador). Las órdenes pueden abrirse en algún lugar "en el vacío" y cerrarse a precios que nunca se han visto en la negociación real en este símbolo. Se puede ver en la imagen toda una serie de órdenes de compra que se abren y se cierran casi inmediatamente con un enorme beneficio (varios miles de puntos). Se abren y se cierran en una barra (30 minutos). Dicho esto, el informe del probador muestra resultados gráficos inadecuados. Tengo la impresión de que los precios de los modelos de prueba de algún otro símbolo. ¿Quizás alguien se haya encontrado con algo similar?

 

El experto recopila sin ninguna pregunta. Lo estoy ejecutando en el probador... Aparece un error:

2014.07.28 00:36:36.942 EURUSD,H1: 1 tick events (1491 bars, 456560 bar states) processed within 0 ms (total time 4742 ms)
2014.07.28 00:36:36.942 2014.06.24 00:00  BaseTemplate EURUSD,H1: initialization failed (-1)
2014.07.28 00:36:36.942 2014.06.24 00:00  array out of range in 'BaseInfo.mqh' (175,19)
2014.07.28 00:36:36.931 BaseTemplate inputs: id_Lots=0.1; id_SL=0; id_TP=10; ii_Slippage=2; ib_Bootstrap=0; ib_RealTrade=1; ib_VirtualTrade=1; ib_NeedLogs=1; ib_PrintUP=1; ib_CommentUP=1; ii_MaxSpread=50; ii_NumberOfTry=10; ib_LotMoreMaxLot=0; 

He llegado a la línea a la que se refiere el diario y veo esto:

¿Qué tiene que ver? Nunca había ocurrido nada parecido...

 
hoz:

El experto recopila sin ninguna pregunta. Lo estoy ejecutando en el probador... Aparece un error:

He ido a la línea a la que hace referencia el registro y veo esto:

¿Qué tiene que ver? Nunca había ocurrido nada parecido...


Por favor, dame todo el código para el archivo de inclusión
 
evillive:

Por favor, proporcione todo el código del archivo de inclusión

Todo el código es un poco largo. Aquí está el código de la función donde se encuentra el error:

// 1.1 Получение рыночной информации по выбранному инструменту. ===========================================================================
BaseInfo::GetMarkerInfo (string fs_Symbol,
                         int    fi_Ticket = 0)
{
   bool lb_CondON = true;
   //----
   if (fs_Symbol == SPos.gs_Symbol)
   {
      if (fi_Ticket >= 0)
           lb_CondON = false;
   }
   
   if (lb_CondON)
   {
      if (fi_Ticket > 0)
      {
         SPos.gs_Symbol = OrderSymbol();
      }
      else
      {
         SPos.gs_Symbol = fs_Symbol;
      }
      
      if (SPos.gs_Symbol == _Symbol)
      {
         SSym.gi_Digits = _Digits;
         SSym.gd_Pt = _Point;
      }
      else
      {
         SSym.gi_Digits = (int) MarketInfo (fs_Symbol, MODE_DIGITS);
         SSym.gd_Pt = MarketInfo (fs_Symbol, MODE_POINT);
      }
      
      if (SSym.gd_Pt == 0.0)
      {
         SSym.gd_Pt = GetPoint (fs_Symbol);
      }
   }
   
   if (fi_Ticket > 0)
   {
      GetOrderDetails (fi_Ticket);
   }
   //---- Получение текущих цен по инструменту
   RefreshRates();
   SSym.gda_Price [0] =   ND (GetTradePrice (0, RealTrade, SPos.gs_Symbol));
   SSym.gda_Price [1] = ND (GetTradePrice (1, RealTrade, SPos.gs_Symbol));
   SSym.gd_Spread = ND (SSym.gda_Price [1] - SSym.gda_Price [0]);
   //----
}

El error está en la línea:

SSym.gda_Price [0] =   ND (GetTradePrice (0, RealTrade, SPos.gs_Symbol));

Al parecer, lo mismo ocurrirá por debajo de la línea.

Entiendo que no hay ninguna celda del array donde quiero escribir el valor. Esta variable gda_Price[] se declara en la estructura así:

// =================================================_______ СВОЙСТВА СИМВОЛА _______=======================================================
struct Symbol_Properties
{
   datetime    gdt_Quote;           // Время поступления последней котировки
   double      gda_Price[];         // Текущие рыночные цены (0 - Bid, 1- Ask)
   double      gd_Spread;           // Размер спреда в пунктах
   double      gd_Swap;             // Своп
   double      gd_Comission;        // Комиссия
   double      gd_Pt;               // Величина одного пункта
   int         gi_Digits;           // Количество знаков в цене после запятой
   int         gi_StopLevel;        // Минимально-допустимый уровень стоп-лосса/тейк-профита в пунктах
   int         gi_FreezLevel;       // Уровень заморозки ордеров в пунктах
   //---- Конструктор и деструктор
   Symbol_Properties (void);
  ~Symbol_Properties (void);
};
//---- Создадим объект структуре Symbol_Properties
Symbol_Properties SSym;
//=========================================================================================================================================
// Конструктор структуры. =================================================================================================================
Symbol_Properties::Symbol_Properties (void) {
   gd_Pt = _Point;
   gi_Digits = _Digits;
}
//=========================================================================================================================================
// Деструктор структуры. ==================================================================================================================
Symbol_Properties::~Symbol_Properties (void) {
}

Todo parece estar bien...

 

Tengo una pregunta.

Tengo un programa que funciona muy bien, pero es sensible al tiempo, por lo que a veces no tengo tiempo de ejecutarlo a mano. Esto requiere una autooptimización, que cuesta entre 10.000 y 15.000 rublos.

Puedo encontrar un inversor que me habría pagado auto-optimización, y después de 2-3 semanas que habría devuelto en 2 veces más. Listo para Skype para demostrar la fiabilidad y capacidad de servicio del programa, para discutir todos los matices, el hecho de que funciona sin duda.

No tengo ninguna duda de que funciona. ¿Es posible que haya gente dispuesta a arriesgar una pequeña cantidad?

Los riesgos son mínimos, el beneficio es del 100% en 2-3 semanas, por ridículo que parezca.

 
366366:

Tengo una pregunta.

Tengo un programa que funciona muy bien, pero es sensible al tiempo, por lo que a veces no tengo tiempo de ejecutarlo a mano. Esto requiere una autooptimización, que cuesta entre 10.000 y 15.000 rublos.

Puedo encontrar un inversor que me habría pagado auto-optimización, y después de 2-3 semanas que habría devuelto en 2 veces más. Listo para Skype para demostrar la fiabilidad y capacidad de servicio del programa, para discutir todos los matices, el hecho de que funciona sin duda.

No tengo ninguna duda de que funciona. ¿Es posible que haya gente dispuesta a arriesgar una pequeña cantidad?

Los riesgos son mínimos, el beneficio es del 100% en 2-3 semanas, por ridículo que parezca.

El mejor inversor es una institución bancaria. Más de una cabeza "caliente" ya ha enfriado la inminencia del castigo por el retraso en el pago de un préstamo.
 
barabashkakvn:
El mejor inversor es una institución bancaria. Más de una cabeza "caliente" ya ha enfriado la inminencia del castigo por el retraso en el pago del préstamo.


Los riesgos son mínimos)

Estoy dispuesto a demostrar mi capacidad de trabajo a cualquiera, si sólo estuviera dispuesto.

Lamentablemente, no hay forma de pedir un préstamo.

 
366366:


Los riesgos son mínimos)

Estoy dispuesto a demostrar mi capacidad de trabajo a cualquiera, si sólo estuviera dispuesto.

Lamentablemente, no hay forma de pedir un préstamo.


Si los riesgos son mínimos, hipoteca el piso)