Ayuda a la codificación - página 241

 

Hola a todos,

No quiero que mi EA abra una posición si ya hay una posición que va en la misma dirección en el mismo nivel de precio ya (usando renko). Esencialmente sería algo así:

Si la dirección de la barra anterior es alcista, abre una posición larga si no hay una posición larga en el mismo nivel de precio (+-2 pips por ejemplo). Lo mismo para los cortos.

¿Es esto posible?

 

Maldita sea, tan fácil

 

Maldita sea, tan fácil

Gracias Mladen

 

Mladen, tengo un problema.

He encontrado su indicador zonas dinámicas Spearman, encontrado también otros. Pero no puedo hacer lo que quiero. Quiero en una ventana alguna correlación. ¿Me entiendes? Quiero que la computadora no se detenga, usando su indicador. Pero eso se ve como una pila de Spearman.

Pero para mí es imposible hacerlo. Superpongo los indicadores entre sí, pero sólo veo uno

Archivos adjuntos:
eurjpymh1.png  72 kb
 
Air92:
Mladen, tengo un problema.

Encontré su indicador Zonas dinámicas Spearman, encontré también otros. Pero no puedo hacer lo que quiero. Quiero en una ventana alguna correlación. ¿Me entiendes? Quiero que la computadora no se detenga, usando su indicador. Pero eso parecía como Spearman Stack.

pero a mi me es imposible hacerlo. Superpongo los indicadores entre sí, pero sólo veo uno

Aquí es cómo el indicador de este post : https://www.mql5.com/en/forum/general parece cuando lo aplico varias veces en la misma sub-ventana

Archivos adjuntos:
spearman.gif  49 kb
 

Вот как индикатор с этого поста: https://www.mql5.com/en/forum/general выглядит, когда я применяю его несколько раз в том же дополнительном окне [/ QUOTE]

Mladen, ¡gracias por nmc!

 
BlackCoq:
Hola a todos,

No quiero que mi EA abra una posición si ya hay una posición que va en la misma dirección en el mismo nivel de precio ya (usando renko). Esencialmente se vería algo como esto:

Si la dirección de la barra anterior es alcista, abre una posición larga si no hay una posición larga en el mismo nivel de precio (+-2 pips por ejemplo). Lo mismo para los cortos.

¿Es esto posible?

Tal vez bastaría con buscar el precio abierto de las últimas 15 operaciones, comprobar si alguna de ellas cae dentro de +- 2 pips del precio actual, luego comprobar si esa operación está en la misma dirección que la nueva operación prevista y si no, enviar la orden. ¿Funciona esto?

Gracias,

Axel

 
BlackCoq:
Tal vez bastaría con buscar el precio abierto de las últimas 15 operaciones así, comprobar si alguna de ellas cae dentro de +- 2 pips del precio actual, luego comprobar si esa operación está en la misma dirección que la nueva operación deseada y si no, enviar la orden. ¿Funciona esto?

Gracias,

Axel

Axel

Se puede hacer.

Simplemente habría que escanear las órdenes abiertas del tipo deseado y comparar sus precios de apertura con el nuevo precio de apertura deseado o comparar las barras en las que se abrieron con la barra que sirve de criterio de apertura

 
mladen:
Axel

Se puede hacer.

Simplemente hay que escanear las órdenes abiertas del tipo deseado y comparar sus precios de apertura con el nuevo precio de apertura deseado o comparar las barras en las que se abrieron con la barra que sirve de criterio de apertura

¿Funcionaría escribir una función como la de abajo 20 veces o así para diferentes "i=OrdersTotal()-1" y luego llamar en toda la función y compararlos con el nuevo precio de apertura?

Gracias

 

Alguien puede decirme que hice mal, el siguiente código es 2 EMA cruzado con alerts.It se niegan a work.Pls puede alguien ayudar a compilar y trabajar en mt4 construir 600 +:

#property copyright "wnk"

#property link "www.wnk.com"

#propiedad indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Lime

#property indicator_color2 Red

//--- buffers

double ExtMapBuffer1[];

double ExtMapBuffer2[];

//variable externa......

//+------------------------------------------------------------------+

//| Función de inicialización de los indicadores personalizados

//+------------------------------------------------------------------+

int init()

{

//---- indicadores

SetIndexStyle(0,DRAW_ARROW);

SetIndexArrow(0,217);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexEmptyValue(0,0.0);

SetIndexStyle(1,DRAW_ARROW);

SetIndexArrow(1,217);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexEmptyValue(1,0.0);

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de desinicialización del indicador personalizada ||

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

return(0);

}

//+------------------------------------------------------------------+

//| Función de iteración del indicador personalizada ||

//+------------------------------------------------------------------+

int inicio()

{

static datetime LastAlertTime = TimeCurrent();

int counted_bars=IndicatorCounted(),

límite;

if(counted_bars<0)

return(-1);

if(barras_contadas>0)

barras_contadas--;

limit=Barras_contadas;

while(límite)

{

double ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);

double ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);

double b4ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,1);

double b4ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);

double mom=iMomentum(NULL,0,14,PRECIO_CIERRE,0);

double b4mom=iMomentum(NULL,0,14,PRECIO_CIERRE,1);

//subir las alertas

if((LastAlertTime!=Time[0])&&(ema5>ema13)&&(ema5>b4ema5)&&(ema13>b4ema13)&&(mom>b4mom)&&(mom>98.6591))

ExtMapBuffer1[limit]=Alto[limit]+5*Punto;

ÚltimaHoraDeAlerta = Hora[0];

Alert(Symbol()," ",Period(), "M Price UP");

/alertas de venta

if((LastAlertTime!=Time[0])&&(ema5<ema13)&&(ema5<b4ema5)&&(ema13<b4ema13)&&(mom<b4mom)&&(mom<100.6872))

ExtMapBuffer2[limit]=Low[limit]-5*Point;

ÚltimaHoraDeAlerta = Hora[0];

Alert(Símbolo()," ",Periodo(), "M Precio a la baja");

}

return(0);

}

//+------------------------------------------------------------------+