Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Pruébalo (ahora muestra tantas velas como deseo en mi terminal) : candlebreaker_1.mq4
Ahora me funciona bien.
Saludos.
hola a todos, tengo el problema de que mi mt4 no puede mostrar en el gráfico más velas ma, rsi, wpr su sucedió después de cuando instalé hace unos días plataformas mt de nuevo? puede alguien ayudar
Hola ProCoders,
Actualmente estoy trabajando con el indicador Autotrend Forecaster.
Escribí el código siguiente, pero el EA no abre operaciones.
¿Podría alguien echar un vistazo?
¡Gracias de antemano!MT4 sólo muestra alertas en el diario:
MT4 sólo muestra alertas en el diario:
Entonces el problema está en las condiciones que están escritas en el EA
Comprueba si las condiciones se evalúan como verdaderas
Hola codificadores,
Me siento realmente avergonzado, porque esta es la tercera vez que pregunto por una función de alerta.
Me gustaría recibir una alerta cuando el color del histograma cambia de color.
Como es normal estoy comparando los buffers de los indicadores entre sí. Pero esta vez no funciona.
Los buffers funcionan perfectamente y mi función de comparación también es correcta (a mi parecer).
Así que creo que tiene que ser algo pequeño, espero que alguien me pueda ayudar.
Gracias de antemano,
#property indicator_color1 clrGreen
#property indicator_width1 4
#property indicator_color2 clrRed
#property indicator_width2 4
#property indicator_color3 Teal
#property indicator_color4 Teal
#property indicator_color5 Black
#property indicator_minimum 0
#property indicator_maximum 0.1
extern int Amplitude = 2;
extern bool alertsOn = true;
extern bool alertsMessage = true;
extern bool alertsSound = true;
extern bool alertsNotify = true;
extern bool alertsEmail = true;
extern string soundfile = "alert2.wav";
bool nexttrend;
double minh, maxl, up[], down[], trend[], atrlo[], atrhi[];
int init () {
SetIndexBuffer(0, up);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexLabel(0, "up");
SetIndexBuffer(1, down);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexLabel(1, "down");
SetIndexBuffer (2, atrlo);
SetIndexStyle (2, DRAW_NONE);
SetIndexBuffer (3, atrhi);
SetIndexStyle (3, DRAW_NONE);
SetIndexBuffer (4, trend);
//---
SetIndexEmptyValue (0, 0.0);
SetIndexEmptyValue (1, 0.0);
SetIndexEmptyValue (4, 0.0);
nexttrend = 0;
minh = High;
maxl = Low;
return (0);
}
int start () {
double atr, ll, hh, lma, hma;
int workbar = 1;
int c = IndicatorCounted ();
if (c < 0) {
return (- 1);
}
for (int i = Bars - 1 - c; i >= workbar; i --) {
ll = iLow (Symbol (), Period (),
iLowest (Symbol (), Period (), MODE_LOW, Amplitude, i));
hh = iHigh (Symbol (), Period (),
iHighest (Symbol (), Period (), MODE_HIGH, Amplitude, i));
lma = iMA (NULL, 0, Amplitude, 0, MODE_SMA, PRICE_LOW, i);
hma = iMA (NULL, 0, Amplitude, 0, MODE_SMA, PRICE_HIGH, i);
trend = trend;
atr = iATR (Symbol (), 0, 100, i) / 2;
if (nexttrend == 1) {
maxl = MathMax (ll, maxl);
if (hma < maxl && Close < Low) {
trend = 1;
nexttrend = 0;
minh = hh;
}
}
if (nexttrend == 0) {
minh = MathMin (hh, minh);
if (lma > minh && Close > High) {
trend = 0;
nexttrend = 1;
maxl = ll;
}
}
if (trend == 0.0) { //-------------------------------------------------------------------------------------------
if (trend != 0.0) {
up = down;
up = up;
} else {
up = MathMax (maxl, up);
}
atrhi = up + atr;
atrlo = up - atr;
down = 0.0;
} else {
if (trend != 1.0) {
down = up;//-------------------------------------------------------------------------------------------
down = down;
} else {
down = MathMin (minh, down);
}
atrhi = down + atr;
atrlo = down - atr;
up = 0.0; //-------------------------------------------------------------------------------------------
}
if(alertsOn){
if((up[2]!=EMPTY_VALUE) && (down[2]!=EMPTY_VALUE) &&(up[1]!=EMPTY_VALUE)&&(down[1]==EMPTY_VALUE))lcheckalert();
if((up[2]!=EMPTY_VALUE) && (down[2]==EMPTY_VALUE) &&(up[1]!=EMPTY_VALUE)&&(down[1]!=EMPTY_VALUE))scheckalert();
}
}
return (0);
}
void lcheckalert()
{
static datetime candletime=0;
if(candletime!=Time[0])
{
string lmessage = "ZOXY is green on, this means a buy signal! Pair:"+_Symbol +" Price: "+Ask;
if (alertsMessage) Alert(lmessage);
if (alertsNotify) SendNotification(lmessage);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," Buy signal "),lmessage);
if (alertsSound) PlaySound("alert2.wav");
candletime=Time[0];
}
}
void scheckalert()
{
static datetime candletime=0;
if(candletime!=Time[0])
{
string smessage = "ZOXY is Red, this means a sell signal! Pair: "+_Symbol +" Price: "+Bid;
if (alertsMessage) Alert(smessage);
if (alertsNotify) SendNotification(smessage);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," Sell signal "),smessage);
if (alertsSound) PlaySound("alert2.wav");
candletime=Time[0];
}
}
zoxy.mq4
Entonces el problema está en tus condiciones que están escritas en el EA Comprueba si las condiciones se evalúan alguna vez a true
Hola Mladen,
gracias por tu sugerencia. Reescribí el código un poco para "forzar" las condiciones a verdadero / falso. Ahora está vendiendo, pero no comprando. Por favor, vea el código de abajo:
if(openedOrders<=0)
{
// AutoTrendForecaster
double AutoTrendup=iCustom(Symbol(),0, "AutoTrendForecaster",TMperiod,Intensity,SL_distance_pips,0,bar);
double AutoTrendup_prev=iCustom(Symbol(),0, "AutoTrendForecaster",TMperiod,Intensity,SL_distance_pips,0,bar+1);
double AutoTrenddown=iCustom(Symbol(),0, "AutoTrendForecaster",TMperiod,Intensity,SL_distance_pips,1,bar);
double AutoTrenddown_prev=iCustom(Symbol(),0, "AutoTrendForecaster",TMperiod,Intensity,SL_distance_pips,1,bar+1);
//+------------------------------------------------------------------+
//| BUY
//+------------------------------------------------------------------+
bool buyCondition = false;
if(AutoTrendup>0 && AutoTrendup!=EMPTY_VALUE){
buyCondition = true;
}
if (buyCondition)
{
AbrirCompra();
return(0);
}
//+------------------------------------------------------------------+
//| VENTA
//+------------------------------------------------------------------+
bool sellCondition = false;
if (AutoTrenddown>0 && AutoTrenddown!=EMPTY_VALUE)
{
sellCondition = true;
}
if (sellCondition)
{
OpenSell();
return(0);
}
}
¡Gracias de antemano!
Hola codificadores,
Me siento realmente avergonzado, porque es la tercera vez que pregunto por una función de alerta.
Me gustaría recibir una alerta cuando el color del histograma cambia de color.
Como es normal estoy comparando los buffers de los indicadores entre sí. Pero esta vez no funciona.
Los buffers funcionan perfectamente y mi función de comparación también es correcta (a mi parecer).
Así que creo que tiene que ser algo pequeño, espero que alguien me pueda ayudar.
Gracias de antemano,
#property indicator_color1 clrGreen
#property indicator_width1 4
#property indicator_color2 clrRed
#property indicator_width2 4
#property indicator_color3 Teal
#property indicator_color4 Teal
#property indicator_color5 Black
#property indicator_minimum 0
#property indicator_maximum 0.1
extern int Amplitude = 2;
extern bool alertsOn = true;
extern bool alertsMessage = true;
extern bool alertsSound = true;
extern bool alertsNotify = true;
extern bool alertsEmail = true;
extern string soundfile = "alert2.wav";
bool nexttrend;
double minh, maxl, up[], down[], trend[], atrlo[], atrhi[];
int init () {
SetIndexBuffer(0, up);
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexLabel(0, "up");
SetIndexBuffer(1, down);
SetIndexStyle(1,DRAW_HISTOGRAM);
SetIndexLabel(1, "down");
SetIndexBuffer (2, atrlo);
SetIndexStyle (2, DRAW_NONE);
SetIndexBuffer (3, atrhi);
SetIndexStyle (3, DRAW_NONE);
SetIndexBuffer (4, trend);
//---
SetIndexEmptyValue (0, 0.0);
SetIndexEmptyValue (1, 0.0);
SetIndexEmptyValue (4, 0.0);
nexttrend = 0;
minh = High;
maxl = Low;
return (0);
}
int start () {
double atr, ll, hh, lma, hma;
int workbar = 1;
int c = IndicatorCounted ();
if (c < 0) {
return (- 1);
}
for (int i = Bars - 1 - c; i >= workbar; i --) {
ll = iLow (Symbol (), Period (),
iLowest (Symbol (), Period (), MODE_LOW, Amplitude, i));
hh = iHigh (Symbol (), Period (),
iHighest (Symbol (), Period (), MODE_HIGH, Amplitude, i));
lma = iMA (NULL, 0, Amplitude, 0, MODE_SMA, PRICE_LOW, i);
hma = iMA (NULL, 0, Amplitude, 0, MODE_SMA, PRICE_HIGH, i);
trend = trend;
atr = iATR (Symbol (), 0, 100, i) / 2;
if (nexttrend == 1) {
maxl = MathMax (ll, maxl);
if (hma < maxl && Close < Low) {
trend = 1;
nexttrend = 0;
minh = hh;
}
}
if (nexttrend == 0) {
minh = MathMin (hh, minh);
if (lma > minh && Close > High) {
trend = 0;
nexttrend = 1;
maxl = ll;
}
}
if (trend == 0.0) { //-------------------------------------------------------------------------------------------
if (trend != 0.0) {
up = down;
up = up;
} else {
up = MathMax (maxl, up);
}
atrhi = up + atr;
atrlo = up - atr;
down = 0.0;
} else {
if (trend != 1.0) {
down = up;//-------------------------------------------------------------------------------------------
down = down;
} else {
down = MathMin (minh, down);
}
atrhi = down + atr;
atrlo = down - atr;
up = 0.0; //-------------------------------------------------------------------------------------------
}
if(alertsOn){
if((up[2]!=EMPTY_VALUE) && (down[2]!=EMPTY_VALUE) &&(up[1]!=EMPTY_VALUE)&&(down[1]==EMPTY_VALUE))lcheckalert();
if((up[2]!=EMPTY_VALUE) && (down[2]==EMPTY_VALUE) &&(up[1]!=EMPTY_VALUE)&&(down[1]!=EMPTY_VALUE))scheckalert();
}
}
return (0);
}
void lcheckalert()
{
static datetime candletime=0;
if(candletime!=Time[0])
{
string lmessage = "ZOXY is green on, this means a buy signal! Pair:"+_Symbol +" Price: "+Ask;
if (alertsMessage) Alert(lmessage);
if (alertsNotify) SendNotification(lmessage);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," Buy signal "),lmessage);
if (alertsSound) PlaySound("alert2.wav");
candletime=Time[0];
}
}
void scheckalert()
{
static datetime candletime=0;
if(candletime!=Time[0])
{
string smessage = "ZOXY is Red, this means a sell signal! Pair: "+_Symbol +" Price: "+Bid;
if (alertsMessage) Alert(smessage);
if (alertsNotify) SendNotification(smessage);
if (alertsEmail) SendMail(StringConcatenate(Symbol()," Sell signal "),smessage);
if (alertsSound) PlaySound("alert2.wav");
candletime=Time[0];
}
}
xtractalpha
Independientemente del SetIndexEmptyValue() EMPTY_VALUE no es == 0, sino 2147483647. Además tienes problemas de repintado en ese código que tienes que limpiar primero
Por favor, ¿podría alguien arreglar este indicador para que muestre flechas de alerta (ya está en) en el gráfico y también sólo debe alertar en la primera vela lo que está cerrando por encima / debajo de un ema.
candle_close_cross_ma_alert1.mq4
Por favor, alguien podría arreglar este indicador para que muestre las flechas de alerta (ya está en) en el gráfico y también sólo debe alertar en la primera vela lo que está cerrando por encima / debajo de un ema.candle_close_cross_ma_alert1.mq4
triip
Mira este : https://www.mql5.com/en/forum/general
Poner el periodo de la ma rápida en 1 y entonces será lo mismo que si el precio cruza la media móvil (la slo ma)
Muchas gracias, sin su ayuda no podría arreglarlo.
(ps. el código funciona).
¡Que tengan un buen día!