¿Cómo codificar? - página 334

 

Hola chicos,

No puedo dibujar envolventes en Array

Puedo dibujar la banda de Bollinger sin problemas.

Quiero dibujar las envolventes en el indicador CCI.

He dibujado con Bollingerbands con el código adjunto y funciona,

el único problema es dibujar con Envelopes en el indicador CCI.

Por favor, ayuda.

Archivos adjuntos:
cci_env.mq4  3 kb
 
luffy:
Hola chicos,

No puedo dibujar envolventes en la matriz

Puedo dibujar la banda de Bollinger sin problemas.

Quiero dibujar las envolventes en el indicador CCI.

He dibujado con Bollingerbands con el código adjunto y funciona,

el único problema es dibujar con Envelopes en el indicador CCI.

Por favor, ayuda.

luffy

No se puede hacer sin codificar las envolventes para todos y cada uno de los valores de los indicadores a los que quieras aplicar las envolventes

 
mladen:
luffy No se puede hacer sin codificar envolventes para todos y cada uno de los valores del indicador a los que quieras aplicar envolventes

Hola Mladen

Agradezco tu gran ayuda al no poder programar.

Tengo un problema con el Macd3 adjunto que solo refresca si lo edito y lo vuelvo a cerrar.

Sería de gran ayuda que se refrescara con cada barra cerrada. Espero que puedan encontrar una solución.

¡Por cierto, este es un indicador muy bueno en lo que respecta a obtener el punto de inflexión temprano!

Archivos adjuntos:
macd_3m.ex4  17 kb
macd_3m.mq4  5 kb
 
wolfsch:
Hola Mladen

Agradezco su gran ayuda al no poder programar.

Tengo un problema con el Macd3 adjunto que sólo se refresca si lo edito y lo vuelvo a cerrar.

Sería de gran ayuda que se refrescara con cada barra cerrada. Espero que puedan encontrar una solución.

¡BTW este es un indicador muy agradable en lo que respecta a obtener el punto de inflexión temprano!

wolfsch

Funciona bien en mi terminal (lo he probado en un gráfico de 1 minuto y lo ha hecho todo bien - estoy usando la versión 788)

 
wolfsch:
Hola Mladen

Agradezco su gran ayuda al no poder programar.

Tengo un problema con el Macd3 adjunto que sólo se refresca si lo edito y lo vuelvo a cerrar.

Sería de gran ayuda que se refrescara con cada barra cerrada. Espero que puedan encontrar una solución.

¡Por cierto, este es un indicador muy bueno en lo que respecta a obtener el punto de inflexión temprano!

A mi también me funciona

 
luffy:
Hola chicos,

No puedo dibujar envolventes en la matriz

Puedo dibujar la banda de Bollinger sin problemas.

Quiero dibujar las envolventes en el indicador CCI.

He dibujado con Bollingerbands con el código adjunto y funciona,

el único problema es dibujar con Envelopes en el indicador CCI.

Por favor, ayuda.

luffy

Prueba ahora : cci_env_1.mq4

Archivos adjuntos:
cci_env_1.mq4  3 kb
cci_env.gif  71 kb
 

Hola, estoy intentando configurar mi ea para que cierre automáticamente todas mis operaciones abiertas en un momento determinado. y me preguntaba si alguien podría ayudarme a arrojar algo de luz sobre este asunto... gracias.

Saludos

Ryan

 
tkuan77:
El programa de la empresa es un programa de la empresa que se encarga de la gestión de las operaciones de la empresa y de la gestión de las operaciones de la empresa.

Saludos

Ryan

Ryan

Comprueba esto : https://www.mql5.com/en/forum/177401/page2

No te preocupes por las dos advertencias del compilador al compilar el código - son benignas

 

Hola mladen, traté de introducir la parte sobre el cierre del comercio basado en el tiempo y compilar, me da la advertencia como usted menciona, sin embargo, cuando se ejecuta el código, no se cierra el comercio en el tiempo que he especificado.

No estoy muy seguro de cuál podría ser el error aquí. Espero que me pueda aclarar en qué me puedo equivocar.

Saludos

Ryan

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

//| Forex TSD - foro de forex |||

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

#property copyright "R Creation"

#property link "https://www.forex-tsd.com"

//---- parámetros de entrada

extern double TakeProfit = 200.0;

extern double Lotes = 0,1

extern double StopLoss = 200.0

extern int HoraPreferida_1ª = 5;

extern int PreferredMinute_1st = 30;

int magicNo_1st = 530;

extern bool UseCurrSymbol = False; // no estoy muy seguro de para qué sirve esto.....

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

//| función de inicialización de los expertos ||.

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

int init()

{

//----

//----

return(0);

}

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

//| función de desinicialización experta ||

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

int deinit()

{

//----

//----

return(0);

}

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

//| función de inicio experto ||

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

datetime newbar;

double pBid, pAsk;

int inicio()

{

if(newbar==Time[0])return(0);

si no, newbar=Time[0];

int ticket, total;

if(Bares<100)

{

Print("barras inferiores a 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit menos de 10");

return(0); // comprobar TakeProfit

}

double Fast_MA, Slow_MA;

Fast_MA = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);

Slow_MA = iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,0);

total = OrdersTotal(); // comprueba el número total de operaciones abiertas actualmente

if(total < 1)

{

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA > Slow_MA)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"Mi EA",magicNo_1st,0,Verde);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de COMPRA abierta : ",OrderOpenPrice());

}

else Print("Error al abrir la orden de COMPRA : ",GetLastError());

return(0);

}

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA < Slow_MA)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"Mi EA",magicNo_1st,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de venta abierta : ",OrderOpenPrice());

}

else Print("Error al abrir la orden de VENTA : ",GetLastError());

return(0);

}

return(0);

}

if(total > 1) //para cerrar las órdenes en función del tiempo... aún no resuelto.

{

if (Hour()==7 && Minute()==0 && Seconds()==0)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

if (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red);

}

}

}

}

}

}

return(0);

}

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

 
tkuan77:
Hola mladen, he intentado introducir la parte del cierre de la operación basada en el tiempo y compilar, me da la advertencia que mencionas, sin embargo, cuando ejecuto el código, no cierra la operación en el tiempo que he especificado.

No estoy muy seguro de cuál podría ser el error aquí. Espero que pueda aclararme dónde puedo estar equivocado.

Saludos

Ryan

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

//| Forex TSD - foro de forex |||

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

#property copyright "R Creation"

#property link "https://www.forex-tsd.com"

//---- parámetros de entrada

extern double TakeProfit = 200.0;

extern double Lotes = 0,1

extern double StopLoss = 200.0

extern int HoraPreferida_1ª = 5;

extern int PreferredMinute_1st = 30;

int magicNo_1st = 530;

extern bool UseCurrSymbol = False; // no estoy muy seguro de para qué sirve esto.....

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

//| función de inicialización de los expertos ||.

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

int init()

{

//----

//----

return(0);

}

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

//| función de desinicialización experta ||

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

int deinit()

{

//----

//----

return(0);

}

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

//| función de inicio experto ||

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

datetime newbar;

double pBid, pAsk;

int inicio()

{

if(newbar==Time[0])return(0);

si no, newbar=Time[0];

int ticket, total;

if(Bares<100)

{

Print("barras inferiores a 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit menos de 10");

return(0); // comprobar TakeProfit

}

double Fast_MA, Slow_MA;

Fast_MA = iMA(NULL,0,7,0,MODE_EMA,PRICE_CLOSE,0);

Slow_MA = iMA(NULL,0,30,0,MODE_EMA,PRICE_CLOSE,0);

total = OrdersTotal(); // comprueba el número total de operaciones abiertas actualmente

if(total < 1)

{

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA > Slow_MA)

{

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,1,Ask-StopLoss*Point,Ask+TakeProfit*Point,

"Mi EA",magicNo_1st,0,Verde);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de COMPRA abierta : ",OrderOpenPrice());

}

else Print("Error al abrir la orden de COMPRA : ",GetLastError());

return(0);

}

if (Hour()==PreferredHour_1st && Minute()==PreferredMinute_1st && Seconds()==0 && Fast_MA < Slow_MA)

{

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,1,Bid+StopLoss*Point,Bid-TakeProfit*Point,

"Mi EA",magicNo_1st,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("Orden de venta abierta : ",OrderOpenPrice());

}

else Print("Error al abrir la orden de VENTA : ",GetLastError());

return(0);

}

return(0);

}

if(total > 1) //para cerrar las órdenes en función del tiempo... aún no resuelto.

{

if (Hour()==7 && Minute()==0 && Seconds()==0)

{

for (int i=OrdersTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

if (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

if (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red);

}

}

}

}

}

}

return(0);

}

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

Esta parte

if(newbar==Time[0])return(0);

si no, newbar=Time[0];

int ticket, total;

if(Bares<100)

{

Print("barras menos de 100");

return(0);

}

if(TakeProfit<10)

{

Print("TakeProfit menos de 10");

return(0); // comprobar TakeProfit

}

Esta impidiendo que el ea cierre las ordenes a cierta hora si no es un primer tick de una nueva barra y si el beneficio no es > 10 pips