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

 
alvlaf:
Lo probé, los primeros cinco minutos funcionó bien, luego empecé a abrir varias operaciones simultáneamente (4) y sobre el mismo par con un lote aumentado. Alexander, no me queda muy claro en tu versión, ¿cómo obtiene y cambia su valor la variable global?
Por lo tanto, empieza de forma secuencial. Primero, pruebe todas las operaciones posibles en un par, y luego ejecútelas en varios pares. (4) ¿es el número de operaciones?
Cuando se inicia el EA, la variable se asigna a 1, si no existe tal variable (en tu caso ciertamente sí, ya que se almacena durante 4 semanas). En cada tic esta variable permite o no permite nuevas operaciones - ese es su único significado. Si una operación es perdedora o no rentable, AllowNewOrders=0, si no - 1. Antes de comprobar las señales de compra/venta, se comprueba esta variable y se retira del bucle sin abrir una orden. Si se abren 4 órdenes sobre un mismo símbolo, además con un lote mayor, obviamente CountTrades no funciona. No puedo comprobarlo por mí mismo, ya que Internet es muy muy muy malo donde estoy. Y por cierto para mí en las opciones de Grand Capital en cualquier marco de tiempo un nuevo tick viene sólo con una nueva vela - es lo mismo para usted?

 
A13ksandr:
Así que se empieza secuencialmente. Primero pruebe en un par todas las operaciones posibles, y luego ejecute sólo algunas. (4) - ¿es este el número de acuerdos?
Cuando se inicia el EA, la variable se asigna a 1, si no existe tal variable (en tu caso ciertamente la hay, ya que se almacena durante 4 semanas). En cada tic esta variable permite o no nuevas operaciones - ese es su único significado. Si una operación es perdedora o no rentable, AllowNewOrders=0, si no - 1. Antes de comprobar las señales de compra/venta, se comprueba esta variable y se retira del bucle sin abrir una orden. Si se abren 4 órdenes sobre un mismo símbolo, además con un lote mayor, evidentemente CountTrades no funciona. No puedo comprobarlo por mí mismo, ya que Internet es muy muy malo donde estoy. Y por cierto para mí en las opciones de Grand Capital en cualquier marco de tiempo un nuevo tick viene sólo con una nueva vela - es lo mismo para usted?

Alexander, creo que no es correcto asignar 1 a la variable global al lanzarla, porque hay que esperar a que se abra al menos una orden. Creo que deberíamos vincular el valor de AllowNewOrders aOrdersTotal o CountTrades, para que cambie cuando se abra la primera serie. Intentaré hacerlo hoy, pero soy muy inexperto, así que si me decís cómo plantearlo correctamente en el código, os lo agradeceré mucho. En mi terminal los ticks vienen en cualquier momento de la barra actual, incluso en M1. (4) - es el número de operaciones abiertas por el bot a la vez. Y lo he probado de la manera que aconsejas.
 
trader_fx:
https://docs.mql4.com/ru/objects/objectgetdouble
https://docs.mql4.com/ru/objects/objectgetinteger

Gracias. Lo tengo. Aquí hay una pregunta. Estas funciones sirven para obtener valores de los objetos. Pero cómo obtener los valores de, digamos, las flechas,

que son visibles en el gráfico, pero no lo son en la lista de objetos. Por ejemplo, si las flechas se dibujan, por ejemplo :

SetIndexStyle(0, DRAW_ARROW);

SetIndexArrow(0, 234);

\\\\

ObjectsTotal() (y otras funciones de objetos) no ven estas flechas....

 
ilmel:

Gracias. Lo tengo. Aquí hay una pregunta. Estas funciones sirven para obtener valores de los objetos. Pero cómo obtener los valores de, digamos, las flechas,

que son visibles en el gráfico, pero no lo son en la lista de objetos. Por ejemplo, si las flechas se dibujan, por ejemplo :

SetIndexStyle(0, DRAW_ARROW);

SetIndexArrow(0, 234);

\\\\

ObjectsTotal() (y otras funciones de objetos) no ven estas flechas....

iCustom al rescate

 
¡Hola! ¿Alguien sabe qué fue el 2 de septiembre?
 

Buenas noches, me podríais decir donde está el error, he cogido el indicador del tutorial de mql4https://book.mql4.com/ru/samples/icustom. Pero quiero que el sobre esté en una ventana aparte. En la captura de pantalla en la ventana principal el indicador del tutorial, en la ventana inferior tengo

.Captura de pantalla

#property strict
#property indicator_separate_window
#property indicator_minimum 1
#property indicator_buffers 1
#property  indicator_color1 Blue

double Buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  SetIndexBuffer(0,Buf_0);
  SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,clrAqua);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i,                           // Индекс бара
       Counted_bars;                // Количество просчитанных баров 
    Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=Close[i];             // Значение 0 буфера на i-ом баре     
      i--;                          // Расчёт индекса следующего бара
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
bobrush:

Buenas noches, me podríais decir donde está el error, he cogido el indicador del tutorial de mql4https://book.mql4.com/ru/samples/icustom. Pero quiero que el sobre esté en una ventana aparte. Puede ver el indicador del libro en la ventana principal y en la ventana inferior - mi indicador


¿Por qué debo fijar el mínimo?

#property indicator_minimum 1???

¿Por qué tengo que utilizar dos colores diferentes?

Pero el principal error estaba en el estilo del buffer, el número de parámetros estaba un poco fuera de lugar.

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0,indicator_color1);

Bueno, parece que es así:

#property strict
#property indicator_separate_window
#property indicator_buffers 1
#property  indicator_color1 Blue

double Buf_0[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
  SetIndexBuffer(0,Buf_0);
  SetIndexStyle(0,DRAW_LINE,0,0,indicator_color1);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int i=rates_total-prev_calculated-1;
   if(prev_calculated>0)     i++;

   while(i>=0)                      // Цикл по непосчитанным барам
     {
      Buf_0[i]=сlose[i];             // Значение 0 буфера на i-ом баре     
      i--;                          // Расчёт индекса следующего бара
     }
   return(rates_total);
  }
 
evillive:

¿Por qué fijar el mínimo?

#property indicator_minimum 1???

Sí, y el color dos veces, ¿por qué, y diferente?

Pero el principal error está en el estilo del buffer, el número de parámetros estaba un poco fuera de lugar.

SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,0,indicator_color1);

Bueno, parece que es así:

¡Muchas gracias! Acerca de#propertyindicator_minimum1 no sé para qué sirve :) Si no es difícil de explicar... Mi experiencia en programación es de 3 EAs que han fallado

 
bobrush:Acerca de#propertyindicator_minimum1 no sé para qué sirve :) Si no es difícil de explicar...

El límite inferior de la escala de una ventana indicadora separada, todo lo que exceda este límite no se muestra en la ventana. Normalmente, el mínimo-máximo se establece cuando se necesita una escala de indicador fija y se sabe que sus valores no van más allá de este límite.
 
evillive:

El límite inferior de la escala de la ventana del indicador individual, cualquier cosa fuera de este límite no se muestra en la ventana. Normalmente, el mínimo-máximo se establece cuando se requiere una escala de indicadores fija y se sabe que sus valores no deben sobrepasar este límite.
oh, justo lo que estaba buscando, gracias)