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
Jo
Algo así:
Hola,
¿Cómo puedo codificar una alerta en un indicador?
Por ejemplo, ¿cómo alertar cuando MACD[0]>MACD[1]?
Gracias por la ayuda.
JoJo
Algo así:
Gracias Mladen, pero ¿dónde?
Tenía los mensajes :
Rojo -If_function no definido
Red-Alert_Semicolon esperado
------------------------------------------------------------------------------------------------------------------
#property indicador_separar_ventana
#property indicator_buffers 2
#property indicator_color1 Silver
#property indicator_color2 Rojo
#property indicator_width1 2
//---- parámetros del indicador
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- búferes del indicador
double MacdBuffer[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| Función de inicialización del indicador personalizada
//+------------------------------------------------------------------+
int init()
{
//---- ajustes de dibujo
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Dígitos+1);
//---- mapeo de buffers de indicadores
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- nombre para la etiqueta de la DataWindow y la subventana del indicador
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")";
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Señal");
//---- inicialización realizada
return(0);
}
//+------------------------------------------------------------------+
//| Convergencia/Divergencia de Medias Móviles ||
//+------------------------------------------------------------------+
int inicio()
{
int límite;
int barras_contadas=IndicadorContado();
//---- la última barra contada se volverá a contar
if(counted_bars>0) counted_bars--;
limit=Barras contadas_barras;
//---- macd contada en el 1er búfer
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- línea de señal contada en el buffer 2
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- hecho
return(0);
}
//+--------------------------------------------
Justo antes del último return de tu código (así te aseguras de que se ejecute sólo cuando todo el resto del procesamiento haya terminado)
Gracias Mladen, pero ¿dónde?
Tenía los mensajes :
Rojo -If_function no definido
Red-Alert_Semicolon esperado
------------------------------------------------------------------------------------------------------------------
#property indicador_separar_ventana
#property indicator_buffers 2
#property indicator_color1 Silver
#property indicator_color2 Rojo
#property indicator_width1 2
//---- parámetros del indicador
extern int FastEMA=12;
extern int SlowEMA=26;
extern int SignalSMA=9;
//---- búferes del indicador
double MacdBuffer[];
double SignalBuffer[];
//+------------------------------------------------------------------+
//| Función de inicialización del indicador personalizada
//+------------------------------------------------------------------+
int init()
{
//---- ajustes de dibujo
SetIndexStyle(0,DRAW_HISTOGRAM);
SetIndexStyle(1,DRAW_LINE);
SetIndexDrawBegin(1,SignalSMA);
IndicatorDigits(Dígitos+1);
//---- mapeo de buffers de indicadores
SetIndexBuffer(0,MacdBuffer);
SetIndexBuffer(1,SignalBuffer);
//---- nombre para la etiqueta de la DataWindow y la subventana del indicador
IndicatorShortName("MACD("+FastEMA+", "+SlowEMA+", "+SignalSMA+")";
SetIndexLabel(0, "MACD");
SetIndexLabel(1, "Señal");
//---- inicialización realizada
return(0);
}
//+------------------------------------------------------------------+
//| Convergencia/Divergencia de Medias Móviles ||
//+------------------------------------------------------------------+
int inicio()
{
int límite;
int barras_contadas=IndicadorContado();
//---- la última barra contada se volverá a contar
if(counted_bars>0) counted_bars--;
limit=Barras contadas_barras;
//---- macd contada en el 1er búfer
for(int i=0; i<limit; i++)
MacdBuffer=iMA(NULL,0,FastEMA,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,SlowEMA,0,MODE_EMA,PRICE_CLOSE,i);
//---- línea de señal contada en el buffer 2
for(i=0; i<limit; i++)
SignalBuffer=iMAOnArray(MacdBuffer,Bars,SignalSMA,0,MODE_SMA,i);
//---- hecho
return(0);
}
//+--------------------------------------------¿Podría alguien arreglar el error de división por cero cuando se usa el timeframe como "0"?
pivot_crazy.mq4¿Podría alguien arreglar el error de división por cero al usar el timeframe como "0"?
Gracias.
Pruébalo. Ya está corregido
pivot_crazy.mq4¿Podría alguien arreglar el error de división de cero cuando se utiliza el marco de tiempo como "0" Gracias.
Gracias mladen funciona como un encanto
Pruébalo. Ya está corregido
gracias mladen funciona como un encanto
necesito ayuda con este ea su tiene la función de martingala pero no funciona propely por ejemplo si una posición su cerrado en una pérdida martingala función debe multiplie los lotes de la última posición cerrada en una pérdida, pero hay su un error en el código whitch hacer la martingala para trabajar propely aquí es el eauniversalmacrossea.mq4
Esa forma de abrir una nueva orden después de una pérdida no es una martingala + martingala funciona con posiciones abiertas
necesito ayuda con este ea su tiene la función de martingala pero no funciona propely por ejemplo si una posición su cerrado en una pérdida martingala función debe multiplie los lotes de la última posición cerrada en una pérdida, pero hay su un error en el código whitch hacer la martingala para trabajar propely aquí es el eauniversalmacrossea.mq4
¿Cómo puedo calcular el tamaño de mi lote si quiero operar con un 5% de mi dinero en cada operación?
sunshineh,
Trate de usar esta función:
{
RefreshRates();
double lots = 0;
double MinLots = NormalizeDouble(MarketInfo(symbol,MODE_MINLOT) ,2);
double MaxLots = NormalizeDouble(MarketInfo(symbol,MODE_MAXLOT) ,2);
double LotStep = NormalizeDouble(MarketInfo(symbol,MODE_LOTSTEP),2);
int LotDigit = 2;
if(MarketInfo(symbol,MODE_DIGITS)==3 || MarketInfo(symbol,MODE_DIGITS)==5) stopLossDistance *= 10.0;
//
//
//
//
//
if (LotStep==1) LotDigit=0;
if (LotStep==0.1) LotDigit=1;
if (LotStep==0.01) LotDigit=2;
if (Risk>0)
{
if (AccountBalance()>AccountFreeMargin())
lots = NormalizeDouble(AccountFreeMargin()*(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
else lots = NormalizeDouble(AccountBalance() *(Risk/100.0)/(stopLossDistance*MarketInfo(symbol,MODE_TICKVALUE)),LotDigit);
}
//
//
//
//
//
lots = NormalizeDouble(NormalizeDouble(lots/LotStep,0)*LotStep,LotDigit);
lots = MathMax(MathMin(lots,MaxLots),MinLots);
return(lots);
}¿Cómo puedo calcular mi tamaño de lote, cuando quiero comerciar con cada comercio f.e. 5% de mi dinero?