¿Cómo codificar? - página 198

 
arshadFX:
1, añadir la bandera bool después de que se activen los criterios de negociación

2, comprobar la bandera bool antes de realizar el pedido

3, después de realizar el pedido la bandera bool debe ser restablecida

4, restablecer la bandera en init() también

Gracias hombre

 

Guía MQL necesaria =^_^=

#property ventana_gráfica_del_indicador

#propiedad indicator_buffers 2

#property indicador_color1 Blanco

#property indicador_color2 Blanco

extern int Periodo.MA.rápido = 5;

extern int Periodo.MA.lento = 34;

extern int Señal.periodo = 5;

//---- buffers

double Buffer1[],

Buffer2[],

b2[],

b3[];

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

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

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

int init()

{

//---- indicadores

// dos buffers adicionales utilizados para el conteo

IndicatorBuffers(4);

IndicatorShortName("MA3_54");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); // abajo 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //ARRIBA 225 233 241

SetIndexBuffer(1,b3);

// Estos buffers no se trazan, sólo se usan para determinar las flechas

SetIndexBuffer (2,Buffer1);

SetIndexBuffer (3,Buffer2);

//----

return(0);

}

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

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

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

int deinit()

{

//----

return(0);

}

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

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

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

int inicio()

{

int, counted_bars=IndicatorCounted();

doble MA5,MA34;

int limit=Barras_contadas;

Print(" imprimir límite = ", límite);

if(barras_contadas>0) limit++;

// Línea principal

for(i=0; i<límite; i++)

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Periodo.MA.Lento,0,MODO_SMA,PRECIO_MEDIO,i);

Buffer1=MA5-MA34;

}

// Línea de señal

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// Flechas

for(i=0; i<limit; i++)

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = Alto+10*Punto;

if(Buffer1 Buffer2)

b3 = Bajo-10*Punto;

}

//----

return(0);

}

Me puede enseñar cómo crear EA basado en este indis ? cuando la flecha aparece en la pantalla y que es el momento EA auto entrar en posición, se puede hacer ? por favor guiarme como estoy interesado en aprender =^_^=

 

Buena referencia

liew_stanley:
#property indicator_chart_window

#property indicator_buffers 2

............guide me como estoy entusiasmado en el aprendizaje =^_^=

Ver esta guía realmente buen material MQL4 Tutorial

 

El indis se ve así

Aquí está la señal de la flecha antes mencionada, necesito que alguien me guíe en la codificación de la EA

Gracias a cualquiera por ahí =^_^=

Archivos adjuntos:
untitled.jpg  80 kb
 

¿Alguien puede ayudarme a codificar esto en un simple EA?

Hola chicos, ¿alguien puede ayudarme a codificar este indis en un EA? Solo un simple EA que entre en posición cuando las flechas aparezcan en la pantalla, muy agradecido si me pudiera ayudar en un simple EA. =^_^= gracias

#property indicator_chart_window

#property indicator_buffers 2

#property indicator_color1 Blanco

#property indicator_color2 Blanco

extern int Periodo.MA.rápido = 5;

extern int Periodo.MA.lento = 34;

extern int Señal.periodo = 5;

//---- buffers

double Buffer1[],

Buffer2[],

b2[],

b3[];

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

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

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

int init()

{

//---- indicadores

// dos buffers adicionales utilizados para el conteo

IndicatorBuffers(4);

IndicatorShortName("Oscilador de Onda de Elliott");

SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(0,242); // abajo 226 234 242

SetIndexBuffer(0,b2);

SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3);

SetIndexArrow(1,241); //ARRIBA 225 233 241

SetIndexBuffer(1,b3);

//

SetIndexBuffer (2,Buffer1);

SetIndexBuffer (3,Buffer2);

//----

return(0);

}

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

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

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

int deinit()

{

//

//----

return(0);

}

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

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

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

int inicio()

{

int, counted_bars=IndicatorCounted();

doble MA5,MA34;

int limit=Barras_contadas;

Print(" imprimir límite = ", límite);

if(barras_contadas>0) limit++;

// Línea principal

for(i=0; i<límite; i++)

{

MA5=iMA(NULL,0,Fast.MA.Period,0,MODE_SMA,PRICE_MEDIAN,i);

MA34=iMA(NULL,0,Periodo.MA.Lento,0,MODO_SMA,PRECIO_MEDIO,i);

Buffer1=MA5-MA34;

}

// Línea de señal

for(i=0; i<limit; i++)

{

Buffer2=iMAOnArray(Buffer1,Bars,Signal.period,0,MODE_LWMA,i);

}

// Flechas

for(i=0; i<limit; i++)

{

if(Buffer1 > Buffer2 && Buffer1 < Buffer2)

b2 = Alto+10*Punto;

if(Buffer1 Buffer2)

b3 = Bajo-10*Punto;

}

//----

return(0);

}

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

 

¿Código de órdenes múltiples?

¿Alguien tiene un buen código para negociar múltiples órdenes cuando se encuentra con la barrera del lote máximo?

IE Broker sólo permite lotes de 5, y usted quiere negociar 10, por lo que la función de comercio 2 x 5 órdenes de lote en su lugar.

Estoy buscando algo más que un simple bucle aquí. El problema es que un simple bucle no siempre se completará completamente, y usted podría quedarse con sólo una orden parcial abierta.

 

Cómo eliminar el error 1 de OrderModify

Hola,

¡No puedo evitar el error 1 de OrderModify : siempre aparece aunque intente controlar que los datos antes de modificar son diferentes ! También he probado con doublenormalize...no funciona...

Este es el código

if (Bid-OrderOpenPrice() >= VPoint*BreakEvenAtProfit)

{

if (OrderStopLoss() != OrderOpenPrice() + BreakEvenShift*VPoint)

{

Vresultado = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice()+ BreakEvenShift*VPoint,OrderTakeProfit(),0,Green);

¿Alguna sugerencia?

Gracias.

 
liew_stanley:
Hola chicos, ¿alguien puede ayudarme a codificar este indis en el EA? Solo un simple EA que entre en posición //+------------+

Estos aero muestran en 2 MovingAverage corssing es decir, 5-34, usted podría encontrar muchos EAs "MA's Cross EA" buscar y espero que finde uno

 

¿Cómo configuro la frecuencia de las alertas?

Soy nuevo en mq4 y estoy tratando de crear una visualización en pantalla cuando hay un cruce para el MACD. Abajo está mi código pero las alertas siguen apareciendo cada pocos minutos.

¿Cómo puedo codificar para mostrar las alertas sólo una vez cada hora? ¿O una alerta por barra?

int inicio()

{

string MACD1="";

color colt9;

double MACDM_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 0);

double MACDS_S10 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,0);

double MACDM_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_MAIN, 1);

double MACDS_S11 = iCustom(NULL, PERIOD_H1, "MACD", 8,17,9, MODE_SIGNAL,1);

if ((MACDM_S11 < MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="IN UPTREND"; colt9=LimeGreen; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 > MACDS_S10)) { MACD1="IN DOWNTREND"; colt9=Red; }

if ((MACDM_S11 > MACDS_S11 && MACDM_S10 < MACDS_S10)) { MACD1="NUEVO CRUCE ALCISTA"; colt9=Verde lima; }

if ((MACDM_S11 MACDS_S10)) { MACD1="NUEVO CRUCE ABAJO"; colt9=Rojo; }

string MACD2=";

color colt14;

double MACDM_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 0);

double MACDS_L10 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,0);

double MACDM_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_MAIN, 1);

double MACDS_L11 = iCustom(NULL, PERIOD_H1, "MACD", 12,26,9, MODE_SIGNAL,1);

if ((MACDM_L11 < MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="IN UPTREND"; colt14=LimeGreen; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 > MACDS_L10)) { MACD2="IN DOWNTREND"; colt14=Red; }

if ((MACDM_L11 > MACDS_L11 && MACDM_L10 < MACDS_L10)) { MACD2="NUEVO CRUCE ALCISTA"; colt14=Verde lima; }

if ((MACDM_L11 MACDS_L10)) { MACD2="NUEVO CRUCE BAJO"; colt14=Rojo; }

if(MACD1=="NUEVO CRUCE ALCISTA"&&MACD2=="EN TENDENCIA ALCISTA")

Alert(Symbol()," - ", "H1:"," MACD MAIN UPTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD1=="NUEVO CRUCE BAJO"&&MACD2=="EN TENDENCIA BAJA")

Alert(Symbol()," - ", "H1:"," MACD MAIN DOWNTREND MOVEMENT"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NUEVO CRUCE ALCISTA"&&MACD1=="EN TENDENCIA ALCISTA")

Alert(Symbol()," - ", "H1:"," MACD, CAMBIO DE TENDENCIA PRINCIPAL A TENDENCIA ALTA"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

if(MACD2=="NUEVO CRUCE BAJO"&&MACD1=="EN TENDENCIA BAJA")

Alert(Symbol()," - ", "H1:"," MACD, CAMBIO DE TENDENCIA A LA BAJA"," at ", Bid, " - ",TimeToStr(CurTime(),TIME_SECONDS));

return(0);

}

 

¿en qué parejas?