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

 
chief2000:

La cuestión ya no es cómo escribir el código, sino a nivel de una idea: ¿es posible evitar los bucles múltiples?

lo que supone una gran carga para el procesador. Por ejemplo, había una idea para seguir el número de órdenes STOP abiertas - si ha disminuido en uno, pero la orden no ha sido eliminada => abrir una orden de mercado =>.

su hora de apertura y su tipo deben colocarse en una matriz. Algo así.

Cualquier idea es bienvenida.


Sólo duplica todas las propiedades de las órdenes de mercado en arrays y las compara con las órdenes de mercado actuales. Compárelos por ticket y si no hay coincidencia por tipo de orden, significa que la orden pendiente se ha disparado, si no se encuentra en la matriz, ha pasado al historial, etc.

Puede ser útil https://www.mql5.com/ru/code/9366

 

Hola.

En realidad estoy pidiendo un código que compare los dos últimos fractales (ya sea hacia arriba o hacia abajo).

Para mí, sigue siendo un desierto.

Gracias de antemano.

 

¿CÓMO CALCULAR EL NÚMERO DE POSICIONES LARGAS RENTABLES Y POR SEPARADO EL NÚMERO DE POSICIONES CORTAS RENTABLES EN EL PROCESO DE TRABAJO DE UN EA?

La estrategia es la siguiente: si el número de posiciones largas rentables desde el inicio del EA (o mejor, a lo largo de todo el historial de la cuenta) es mayor que el número de posiciones cortas, entonces sólo se debe permitir la apertura de posiciones largas. Y viceversa.

Está claro cómo contar estas operaciones, si son cerradas por el Asesor Experto: cerrar - contar. Pero si una posición se cierra por TP o SL, entonces ... ?

¿Tal vez alguien tiene un código listo de la función?

 
splxgf:

Sólo duplica todas las propiedades de las órdenes de mercado en matrices y las compara con las órdenes de mercado actuales. Compara por ticket, si hay un desajuste por tipo de orden, significa que la orden pendiente se ha disparado, si no se encuentra en la matriz, significa que ha pasado al historial, etc.

Puede ser útil https://www.mql5.com/ru/code/9366

Gracias.

 
nemo811:

Hola.

En realidad estoy pidiendo un código que compare los dos últimos fractales (ya sea hacia arriba o hacia abajo).

Para mí, sigue siendo un desierto.

Gracias de antemano.

En el caso simple, algo así como:

      Fractal_Up[i+3]   = iFractals(NULL, 0, MODE_UPPER, i+3);
      Fractal_Down[i+3] = iFractals(NULL, 0, MODE_LOWER, i+3);


      if(Fractal_Down[i+3]>0) {
         Fractal_Sell_Low_3  = Fractal_Sell_Low_2;
         Fractal_Sell_Time_3 = Fractal_Sell_Time_2;

         Fractal_Sell_Low_2  = Fractal_Sell_Low_1;
         Fractal_Sell_Time_2 = Fractal_Sell_Time_1;

         Fractal_Sell_Low_1  = Fractal_Down[i+3];
         Fractal_Sell_Time_1 = Time[i+3];
      }


      if(Fractal_Up[i+3]>0) {
         Fractal_Buy_Up_3   = Fractal_Buy_Up_2;
         Fractal_Buy_Time_3 = Fractal_Buy_Time_2;

         Fractal_Buy_Up_2   = Fractal_Buy_Up_1;
         Fractal_Buy_Time_2 = Fractal_Buy_Time_1;

         Fractal_Buy_Up_1   = Fractal_Up[i+3];
         Fractal_Buy_Time_1 = Time[i+3];
      }
 
chief2000:

Gracias, lo investigaremos.
 
Roger:

En realidad es una tontería hacer esas preguntas a un escritor experto :) Resulta que no tienes la suficiente madurez para ser un principiante, así que si quieres comprobar si los stops calculados y las tomas están cerca del precio de apertura de la orden, probablemente aprenderás un par de cosas de China.
Pero por supuesto que no... ))) El consejo es bueno )))) ¡Pero se ha probado durante mucho tiempo! Tomas y paradas superiores a los valores mínimos permitidos... ¡Y todo funciona muy bien en el probador! ¡Pero en el modo "live" no quiere abrir posiciones! Tal vez, querido ROGER, no soy lo suficientemente maduro para ser un principiante todavía ))))) Pero al menos deberías mirar el código que escribí, si no es mucha molestia... Tal vez encuentres un error allí...
 
7sintez:
Por qué no... ))) El consejo es bueno )))) ¡Sólo que todo ha sido probado hace mucho tiempo! Tomas y paradas superiores a los valores mínimos permitidos... ¡Y todo funciona muy bien en el probador! ¡Pero en el modo "live" no quiere abrir posiciones! Tal vez, querido ROGER, no soy lo suficientemente maduro para ser un principiante todavía ))))) Pero al menos deberías mirar el código que escribí, si no es mucha molestia... Tal vez encuentres un error allí...
Tuve un bicho así en una casa de bolsa. Resulta que debemos abrir una orden con TP=0 y SL=0, y luego establecer los niveles requeridos con OrderModify(). De lo contrario, se mostraba siempre el error "Las paradas están demasiado cerca".
 
ikatsko:
Tuve un problema de este tipo con una empresa de corretaje. Resultó que tuve que abrir una orden con TP=0 y SL=0, y luego usar OrderModify() para establecer los niveles requeridos. De lo contrario, se mostraba siempre el error "Las paradas están demasiado cerca".
Gracias... Quizás este sea el problema... He buscado en todo mi código - ¡¡¡No encuentro el error!!!
 

No he encontrado una respuesta en la búsqueda

¿cómo puedo ver desde el script qué indicadores están en el gráfico, qué parámetros e indicadores, en qué subventanas se encuentran?

gracias

Razón de la queja: