[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 39

 
hoz:
Para ser sincero, no tengo ni idea de por qué se necesita algo así. Al parecer, los desarrolladores tampoco pensaron en eso.
Está muy bien que haya cosas en las que los desarrolladores no hayan pensado. Si se juntan cosas así y se ponen juntas, se puede
 
Kobalerro:

Gracias por el consejo, pero es demasiado complicado. Y luego, en su versión, resulta que todo el trabajo, y toma 10 para comprobar la condición de entrada,

y abren sólo los cinco que fueron los primeros en tener éxito y luego, cuando uno de ellos se cierra, se abre de nuevo el primero que cumple las condiciones,

no se limita a EURUSD 1 , GBPUSD 1 , EURGBP 0.

Creo que debería haber una solución más sencilla. Como contar el número total de pedidos con una condición de limitación por un parámetro determinado.

Debería haber un límite para un símbolo o un número mágico, pero no más de uno.

Aunque, quizás, tu variante también funcione, pero cómo implementarla en el código, no se me ocurre.


Sí, eso creo. Ya le he cogido el tranquillo a esto, ¡puedo prescindir de la escritura en disco fácilmente!
Sólo estoy atando las riendas del terminal estándar a otro
Estoy atando las riendas de un terminal estándar para otro).

Perdóname, pero vamos a tener que hacerlo de todos modos.
porque como dijo Sir Freddie Mercury.
El espectáculo debe continuar.

Así que vamos a aclarar las especificaciones.
Según tengo entendido:

1. En una cuenta tengo un montón de ventanas abiertas (10 piezas) con cualquier conjunto de gráficos de pares de divisas

2. En cada gráfico se encuentra un caballo de batalla - un Asesor Experto, que hace algo.

3. La cuenta debe cumplir las siguientes condiciones:

3.1 El número total de órdenes de mercado abiertas en la cuenta no debe ser superior a 5.
Las órdenes del tipo caballo (pendientes) no deberían contarse como tales (creo que sí, pero no lo has especificado)
3.2 A partir de un conjunto de gráficos de la cuenta, se forma una determinada lista de símbolos,

Y cada uno de estos símbolos puede tener como máximo un símbolo en un momento dado.

en un momento dado no puede tener más de una orden abierta.

---------------------------------------------------------

Algo así. Compruebe si todo es correcto.
Entonces, por favor, díganos en qué idioma debe hacerse (como mq4 o mq5)
y la lista de instancias para las que negocia: ¿es fija o diferente cada vez?

Creo que debería ser una pasta corta en el texto de cada EA

(que puede más tarde si lo desea) le permitirá

decidir sobre los permisos existentes actualmente para cualquier acción ...

Me gustaría despedirme ahora ya que son las 5 de la mañana :))

madzx

 
Kobalerro:

Gracias por el consejo, pero es demasiado misterioso. Y entonces tu versión de la función funciona para todos ellos, y tarda 10 en comprobar una condición de entrada,

y abren sólo las cinco que fueron las primeras en tener éxito y luego, cuando una de ellas se cierra, se abre de nuevo la primera que cumple las condiciones,

no se limita a EURUSD 1 , GBPUSD 1 , EURGBP 0.

Creo que debería haber una solución más sencilla. Como contar el número total de pedidos con una condición de limitación por un parámetro determinado.

Y la limitación por símbolo o por mago no es más que una.

Aunque, quizás, tu variante también funcione, pero cómo implementarla en el código, no se me ocurre.



No luches en tres pinos. Bifurcar las transacciones de exp bajo magiks únicos (asignar su magik a sus órdenes de exp en los símbolos seleccionados). A continuación, utilizando el operador condicional if - else, se conecta el filtro por símbolos y símbolos mágicos, utilizando esta función de Kim I.V. con diferentes valores de entrada:

Función NumberOfOrders().

. Eso es todo.

 
hoz:


HM. No entendí lo que querías decir hasta que lo leí entero :) ¿Qué tipo de datos quiere en la salida?

Tal y como yo lo veo, la solución a esta situación es la siguiente:

1. Convertir los números int 59 y 17 a tipo cadena

2. Luego concatenamos los datos de estas cadenas.

3. los convertimos de nuevo a tipo int

Puede haber otras opciones, pero no se me ocurre ninguna otra en este momento.


Gran respuesta - simple y directa - y no necesita ninguna otra opción, porque ésta es
muy buena .... :))
 

Voy a probar suerte de nuevo.

Hola Hay un indicadorhttps://www.mql5.com/ru/code/7176

Funciona bien en la historia. En la vida real está muy deteriorado, etc.

¿Si quisiera utilizar este indicador, por ejemplo, como base para redibujar/recalcular cada barra o cada intervalo?

Por ejemplo si operas en m5 y esperas una señal puede que no llegue, estás esperando 15-20 minutos, luego cambias a cualquier otro marco de tiempo y de nuevo en m5 y resulta que tienes una señal. Cambias a otra franja horaria y de nuevo en m5 y resulta que estaba allí hace 10 minutos. ¿Cómo se puede recalcular automáticamente sin pasar a otro marco temporal?

 

Ha surgido una pregunta curiosa. Por ejemplo, decido abrir una orden de compra sobre una condición:

1. la onda rápida1 cruzó la onda lenta2 de abajo a arriba. (Lo importante no es el momento del cruce, sino que la onda rápida1 sea mayor que la onda lenta2).

2. La vela tocó el 1 rápido, así que abrimos una orden de compra.

He pensado en ello, y así entiendo que hay que crear condiciones que si el precio de la vela es aproximadamente igual al precio de la onda rápida1 aparentemente con alguna desviación especificada, ¿no?

Básicamente, ya que la vela está actualmente en la parte superior una vez que la fastmask1 cruza la slowmask1 desde la parte inferior, entonces sobre necesitamos comparar el bajo de la vela con el precio de la fastmask1?

es decir

if( iMA(fast) > iMA(slow) )
{
  if(low[0] == iMa(fast))
  OrderSend(параметры посыла ордера);
}

Pero en este caso no se tiene en cuenta que es poco probable que la vela esté exactamente en el precio de la iMA(rápida), porque el precio puede saltar rápidamente a través de ella e ir más allá o rebotar. Por lo tanto, tenemos que especificar algún rango.

¿Cómo aplicarlo correctamente?

 
Twilight:

Voy a probar suerte de nuevo.

Hola Hay un indicadorhttps://www.mql5.com/ru/code/7176

Funciona bien en la historia. En la vida real está muy deteriorado, etc.

Si quiero utilizar este indicador, por ejemplo, para cada barra o cada intervalo, ¿es posible volver a dibujarlo/calcularlo?

Por ejemplo si operas en m5 y esperas una señal puede que no llegue, estás esperando 15-20 minutos, luego cambias a cualquier otro marco de tiempo y de nuevo en m5 y resulta que tienes una señal. Cambias a otra franja horaria y de nuevo en m5 y resulta que estaba allí hace 10 minutos. ¿Cómo se puede recalcular automáticamente la señal sin cambiar de marco temporal?

¿Ha leído atentamente la descripción del autor del indicador (ver enlace)?

La única pega es que este indicador es, digamos, dinámico. Es decir, puede redibujar más de diez (!) barras. Y lo que ves como verde solía ser rojo. Y sólo se puso en verde porque la tendencia subió.

??? - ¡¡¡ya está sobregirando!!!
 
silatyt:

¿Ha leído atentamente el resumen del autor de este indicador (en el enlace)?

La única pega es que este indicador es, digamos, dinámico. Es decir, puede redibujar más de diez (!) barras. Y lo que ves como verde solía ser rojo. Y se volvió verde sólo porque la tendencia fue al alza.

??? - se recalcula de todos modos!!


Ya sé que se redibuja. Me interesa la tecnología de recálculo de cualquier indicador con cada nueva barra o un determinado intervalo.

Me interesa la tecnología de recálculo de cualquier indicador.

La pregunta es cómo recalcular en cada barra cualquier indicador sin cambiar el marco temporal manualmente.

 
Twilight:


Sé que redibuja. Me interesa la tecnología de recalcular cualquier indicador cada nueva barra o un determinado marco temporal en general.

Aunque luego haya algo más.

La pregunta suena a recalcular cualquier indicador en cada barra sin cambiar manualmente el marco temporal.

¿Has mirado alguna vez dentro de algún indicador? En general, se ve así:

int start()
  {
   int counted_bars=IndicatorCounted();
//----
   if (counted_bars < 0) return(-1);
   if (counted_bars > 0) counted_bars--; 
   int limit=Bars-counted_bars;
   for (int i=limit;i>=0;i--)
    {
    //расчёт индикатора
    }
//----
   return(0);
  }

La variable que define el número de barras que se quiere recalcular se llama límite. Puede utilizarlo como base para sus cálculos.

 
silatyt:

¿Has mirado alguna vez dentro de algún indicador? En general, se ve así:

La variable que determina el número de barras a recalcular es el límite. A partir de ahí, puedes calcularlo.


¿Quiere insertar el código del indicador en el Asesor Experto y recalcularlo allí?

¿Y si hay 5 indicadores?

¿Hay alguna otra forma de recalcularlos?

Adjunto todos los indicadores al Asesor Experto a través de iCustom

La llamada del indicador y su último valor y así en cada nueva barra, pero no se vuelve a dibujar en la ventana de símbolos negociados hasta que cambie el marco de tiempo y regrese.

Si pulsas PCM y pulsas refrescar, tampoco se redibuja, por alguna razón se redibuja sólo cuando cambias el marco temporal.

P.D. ¿Y el software PCM/refresh como se llama?

RefreshRates parece estar mal.