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

 

Debo estar perdiendo algo:

extern double LotsStep = 0.1;
       double Lots;
...

int start()
{
   ...
   
   if (NewOrder)
   { 
      if (OrdersTotal() == 0)
         Lots = LotsStep;
      else
         Lots += LotsStep;
      
      Lots = TrueLots(Lots);
      if (Lots < 0)
      {
         Alert("Не хватает денег на ", DoubleToStr(-Lots, 2), " лотов!");
         Lots = 0;
         Buy  = False;
         Sell = False;
      }
      
      NewOrder = False;
   }
      
   //Блок открытия на бай
   
   ...
}

double TrueLots(double Lots)
{
   double Free    = AccountFreeMargin();
   double One_Lot = MarketInfo(Symbol(), MODE_MARGINREQUIRED);
   
   if (Lots > Max_Lot)
   {
      Alert("...");
      Lots = Max_Lot;
   }

   if (Lots*One_Lot > Free)
      return(-Lots);
   
   return(Lots);
}

 

Un problema más, tuve un error '(' definición de la función inesperada, puse esta función " double LotSize()
".
Quiero que cada lote subsiguientese abra, pero quiero que se abra solo con series de señales de compra, y cuando vengan señales contrarias, se ponga el contador a cero y se empiece a construir la nueva pirámide, si es posible, por eso tomé este fragmento de código, porque pensé que era el responsable de este paso, pero no resultó así...

 
MaxZ:

Debo estar perdiendo algo:


Gracias. Lo probaré ahora.
 
SeALALex:
Ahí lo tienes.


Mira el trailer - corrige por ti mismo.

Archivos adjuntos:
b-lots.mqh  3 kb
 
SeALALex:

Gracias, lo probaré ahora.

También he añadido una comprobación para asegurar que se puede abrir un número determinado de Lotes. ¡Improvisa y tendrás suerte! :))


La lógica es la siguiente:

Si no hay órdenes en el mercado (aquí excluyo las órdenes pendientes), entonces asignamos el valor inicial a la variable Lots (en este caso, el propio paso).

Si ya hay órdenes en el mercado, entonces, en cada apertura, el parámetro Lots se incrementará en el valor de LotsStep.

No sé cuál es tu tarea específica, por eso he escrito "improvisar".


Romano.:


Mira el trailer - corrige por ti mismo.

Será mejor que domines todo con tus propias manos y al mismo tiempo aprenderás a codificar. :D

 
MaxZ:

Debo estar perdiendo algo:


Maxim, si tienes tiempo, echa un vistazo a este tema... :-)))

No se me ocurre un "denominador común" para todos los EAs a la vez (una opción universal)... :-(((

En mis códigos de EAs - dice sobre el desbordamiento "dabble"...

Voy a hacer una pregunta detallada con capturas de pantalla en ese hilo ...

P.D. Para algunas versiones de búhos - funciona bien, para otras no... Ahora se hace todo según el libro, incluyendo la multiplicación... Su producto también necesita ser desglosado para su enfoque universal en multiplicadores. Hice un array, como recomendaste para la variable TWR, pero hasta ahora no está funcionando para todos los EAs, para algunos EAs el tipo de datos "doble" todavía se desborda con las operaciones de hasta 1000 piezas en la historia ... cuando se calcula la f óptima final.

 
MaxZ:

Debo estar perdiendo algo:


Lo siento, no siempre lo capto.


Error de NewOrder -'NewOrder' - variable no definida, ¿dónde la nombro primero?

 
Roman.:


Maxim, si tienes tiempo, echa un vistazo a este tema... :-)))

¿Qué debo ver en el hilo del foro de ProCapital? :))


Romano.:


No puedo llegar a un "denominador común" para todos los EAs a la vez (una opción universal)... :-(((

En mis códigos de EAs - dice sobre el desbordamiento "dabble"...

Un día haré una pregunta detallada con capturas de pantalla en ese hilo...

P.D. Para algunas versiones de búhos - funciona bien, para otras no... Ahora todo se hace por libro, incluida la multiplicación... Su producto también debe desglosarse para el enfoque universal en multiplicadores. Hice un array, como recomendaste para la variable TWR, pero hasta ahora no está funcionando para todos los EAs, para algunos EAs el tipo de datos "doble" todavía se desborda con las operaciones de hasta 1000 piezas en la historia ... cuando se calcula la f óptima final.

¿En la sucursal de ProCapital? ¿Por qué allí? Publícalo, miraré las capturas de pantalla y me lo pensaré.
 
MaxZ:

¿Qué debo ver en el hilo del foro de ProCapital? :))


¿En la sucursal de ProCapital? ¿Por qué allí? Publícalo, miraré las capturas de pantalla y me lo pensaré.


Lo siento, había un enlace erróneo en el buffer - uno antiguo... :-)))

Aquí.

Ahora yo mismo en el trabajo - pregunta detallada con capturas de pantalla - publicará en el mismo hilo esta noche o mañana. :-)))

 
SeALALex:

Lo siento, no siempre lo cojo al vuelo.


Error de NewOrder -'NewOrder' - variable no definida, ¿dónde la llamo primero?

¡Con la experiencia viene la experiencia! ;)


NewOrder es una variable de tipo bool. Debe declararse al principio de la función Start(), por ejemplo. Todo depende de la estructura de su código.

Establecemos la variable NewOrder a True, cuando queremos abrir una orden.

Por ejemplo, nuestro EA trabajará con precios abiertos y el indicador de la Media Móvil:

if ((Close[2] <= MA2 && Close[1] > MA1) || (Close[2] < MA2 && Close[1] >= MA1))
{
   NewOrder = True;
   Buy = True;
}