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

 

(Parte anterior aquí)


Hola, Podría sugerir una función en mql4, que entre varias posiciones de compra abiertas, empezando por el precio más bajo, cuente el número de lotes especificado (suma) y emita el precio por debajo del cual se encuentra este número de lotes. Las órdenes son órdenes de mercado. Y lo mismo, pero para vender.

Para aclarar, todos los pedidos con diferente número de lotes. La función suma las órdenes en orden ascendente OrderOpenPrice, siempre que la condición "suma de lotes <=suma" sea verdadera.

 
pechenuga:

(La parte anterior aquí)


Hola, Podría sugerir una función en mql4, que entre varias posiciones de compra abiertas, empezando por el precio más bajo, cuente el número de lotes especificado (suma) y emita el precio por debajo del cual se encuentra este número de lotes. Las órdenes son órdenes de mercado. Y lo mismo, pero para vender.

Para aclarar, todos los pedidos con diferente número de lotes. La función suma las órdenes en orden ascendente OrderOpenPrice, siempre que la condición "suma de lotes <=suma" sea correcta.


¿Qué debería devolver esta función, el número total de lotes, la diferencia entre el total y el número de lotes dado o falso-verdadero dependiendo de si el valor real es mayor o menor que el dado?

Más concretamente, ¿de qué precio estamos hablando, del precio de apertura de la última orden si el volumen es superior o igual al especificado?

 

eso es todo... mi olla está hirviendo....

si se elimina la comprobación MEDIUM de este código, las líneas comienzan a dibujarse con claridad.

Si lo vuelves a dejar como está... ¡el EA no dibuja nada en absoluto!

¿quién ha visto un error? o la razón? por favor, dígame.

el compilador no muestra errores

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);

if ( Hour()>=10 && Hour()<20) 
   {  
      if 
        ( Ma_1>Ma_2)         
              
 { SetVLine(Blue, "", 0, 0, 1);} 

}
 
Por favor, aconseja qué Asesor Experto es el mejor para visualizar las operaciones. De nuevo, sería deseable poder utilizar diferentes TFs al mismo tiempo. Me gustaría utilizar los dos al mismo tiempo. ¡Gracias!
 
lottamer:

eso es todo... mi olla está hirviendo....

si se elimina la comprobación MEDIUM de este código, las líneas comienzan a dibujarse con claridad.

Si lo vuelves a dejar como está... ¡el EA no dibuja nada en absoluto!

¿quién ha visto un error? o la razón? por favor, dígame.

el compilador no muestra errores


Mostrar SetVLine();
 
rigonich:

Mostrar SetVLine();

//==========================
//+----------------------------------------------------------------------------+
//| Autor : Kim Igor V. alias KimIV, http://www.kimiv.ru |
//+----------------------------------------------------------------------------+
//| Versión: 02.07.2008
//| Descripción : Fijación del objeto OBJ_VLINE línea vertical |
//+----------------------------------------------------------------------------+
//| Parámetros: |
//| cl - color de la línea |
//| nm - nombre ("" - hora de apertura de la barra actual) |
//| t1 - tiempo (0 - tiempo de apertura de la barra actual) |
//| st - estilo de línea (0 - línea simple) ||
//| wd - ancho de línea (1 - por defecto) ||
//+----------------------------------------------------------------------------+
void SetVLine(color cl, cadena nm="", datetime t1=0, int st=0, int wd=1) {
if (nm=="") nm=DoubleToStr(Time[0], 0);
if (t1<=0) t1=Time[0];
if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_VLINE, 0, 0,0;)
ObjectSet(nm, OBJPROP_TIME1, t1);
ObjectSet(nm, OBJPROP_COLOR, cl);
ObjectSet(nm, OBJPROP_STYLE, st);
ObjectSet(nm, OBJPROP_WIDTH, wd);
}
 
rigonich:


¿Debe la función devolver el número total de lotes, la diferencia entre el total y el número de lotes especificado, o falso-verdadero, dependiendo de si el valor real es mayor o menor que el especificado?

Más concretamente, ¿de qué precio estamos hablando, del precio de apertura de la última orden si el volumen es mayor o igual a un volumen determinado?

La función debe devolver el precio por debajo del cual se encuentran las órdenes con el número de lotes requerido. Es decir, en cuanto el número de lotes sea mayor que "suma", la función devolverá el precio de ese último pedido
 
lottamer:

Ma_1=iMA(NULL,PERIOD_H1,30,0,MODE_SMA,PRICE_CLOSE,1) ; 
Ma_2=iMA(NULL,PERIOD_H1,60,0,MODE_SMA,PRICE_CLOSE,1);
if(TimeHour(iTime(Symbol(),0,0))>10&&TimeHour(iTime(Symbol(),0,0))<20)
   {
   if(Ma_1>Ma_2)SetVLine(Blue, "", 0, 0, 1);
}  
 
rigonich:



¡¡¡tu código no funciona!!! :)))))))))))))))) no hay líneas dibujadas.

y la hora no tiene nada que ver. La hora es correcta. La estaba imprimiendo...

Y si en lugar de comparar con las medias, se pone una comparación con los estocásticos - todo se dibuja claramente.

Stoch_1=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_MAIN,1); 
Stoch_2=iStochastic(NULL,PERIOD_M5,5,3,3,MODE_SMA,0,MODE_SIGNAL,1);


if ( Hour()>=10 && Hour()<20)  
// if ( Ma_1>Ma_2)          // убрал средние
//    {
                      
         if (Stoch_1>Stoch_2)
 { SetVLine(Blue, "", 0, 0, 1);}   
 

parece querigonich también está hirviendo :))))

Para estar seguro, he copiado todos los componentes de otro EA que funciona...

¡NO HAY SORTEO!

cambió "sorteo" por "compra y venta".

¡NO FUNCIONA!

¡parece una p*** MAGIA!

Al imprimir los promedios, ambos muestran 134, mientras que su periodo difiere en un factor de 20 (¡!).

 
lottamer:

parece querigonich también está hirviendo :))))

Para estar seguro, he copiado todos los componentes de otro EA que funciona...

¡NO HAY SORTEO!

cambió "sorteo" por "compra y venta".

¡NO FUNCIONA!

¡parece una p*** MAGIA!


¿Y dónde se comprueba, en la demo o en el probador?