En el tester da un error:
2010.04.28 06:27:44 Core 1 Error de creación de proceso [2]
En el tester da un error:
2010.04.28 06:27:44 Core 1 Error de creación de proceso [2]
Por favor, actualice a la última versión y, a continuación, busque el archivo metatester.exe en la raíz del directorio del programa.
Gracias, funciona.
Faltan el optimizador y la visualización.
Falta el optimizador y la visualización.
El optimizador está ahí: basta con aumentar la altura de la ventana del comprobador.
La visualización llegará más tarde.
Saludos,
Mr/Mrs tsaktuo, He estudiado su código K_eSimpleMA y ha sido muy útil para entender cómo es la estructura de un EA, así como conceptos como trabajar con cruces SMA.
Te agradezco mucho que hayas compartido este artículo y te doy las gracias.
Por otro lado tengo un par de preguntas; ambas están relacionadas con la funciónSymbolInfoTick :
Lo que dice el manual de MQL5 sobreSymbolInfoTick(Symbol(),tick) es que devuelve los precios actuales de un símbolo especificado en una variable del tipo MqlTick y también dice que la función devuelve true si tiene éxito, en caso contrario devuelve false.
Según lo anterior, lo que entiendo es que se imprime el mensaje ("Failed to get Symbol info!") si no hay tick recibido,. ¿Es esto correcto ? Si no lo es, ¿podría decirme a qué se debe?
La otra pregunta es: ¿Qué pasa si el mensaje se imprime cada tick?
Gracias de nuevo.
Existe:
trReq.sl=tick.ask-_Point*sl; // Nivel de Stop Loss de la orden
trReq.tp=tick.ask+_Point*tp; // Nivel de Take Profit de la orden
necesario:
trReq.sl=tick.bid-_Point*sl; // Nivel de Stop Loss de la orden
trReq.tp=tick.bid+_Point*tp; // Nivel de Take Profit de la orden
y cambiar para VENDER en consecuencia.
La compra se realiza al precio ask, pero se cierra al precio bid.
Si desea limitar las pérdidas y ganancias, por ejemplo, a 20 puntos, entonces se deben contar exactamente 20 puntos desde el precio bid (precio de cierre) para la COMPRA y ask (precio de cierre) para la VENTA.
Por favor, ¿puede decirme cómo agregar a este código para que el comercio en la tendencia MACD sin paradas?
Largo: MACD está creciendo MA rápido cruzó MA lento de arriba a abajo
Croy Long: MACD crece rápido MA cruzó lento MA de abajo hacia arriba
Corto: MACD decreciente rápido MA cruzó el lento de arriba a abajo
Corto: MACD rápida decreciente MA cruzó la lenta de abajo hacia arriba
Lo intenté así:
//+------------------------------------------------------------------+
//|MACD&DEMA.mq5
//|Copyright 2010, AM2 Group. |
//| http://www.am2_group.net
//+------------------------------------------------------------------+
#property copyright "Copyright 2010, AM2 Group."
#property link "http://www.am2_group.net"
#property version "1.00"
//--- parámetros de entrada
input int Periods=2; // Media móvil del período 1
input int Shift=38; // Media móvil del período 2
input int SL=30; // Stop Loss
input int TP=100; // Take Profit
input int MAGIC=3072010; // Consejero de números mágicos
MqlTradeRequest trReq;
MqlTradeResult trRez;
int ma1Handle;
int ma2Handle;
int macdHandle; // Asa del indicador MACD
double ma1Val[];
double ma2Val[];
double macdVal[]; // matriz dinámica para almacenar valores numéricos MACD para barras diarias
int sl;
int tp;
//+------------------------------------------------------------------+
//| Función de inicialización experta|
//+------------------------------------------------------------------+
int OnInit()
{
//Establecer valores por defecto para todas las solicitudes de nuevos pedidos
trReq.action=TRADE_ACTION_DEAL;
trReq.magic=MAGIC;
trReq.symbol=Symbol(); // Símbolo comercial
trReq.volume=0.1; // Volumen solicitado para una operación en lotes
trReq.deviation=1; // Desviación máxima posible del precio solicitado
trReq.type_filling=ORDER_FILLING_AON; // Tipo de ejecución de la orden
trReq.type_time=ORDER_TIME_GTC; // Tiempo de ejecución de la orden
trReq.comment="MA Sample";
//fin
//Crear asa para 2 indicadores MA
ma1Handle=iMA(Symbol(),PERIOD_CURRENT,Periods,0,MODE_EMA,PRICE_CLOSE);
ma2Handle=iMA(Symbol(),PERIOD_CURRENT,Periods+Shift,0,MODE_EMA,PRICE_CLOSE);
//---Conseguir el indicador MACD
macdHandle=iMACD(NULL,PERIOD_D1,15,26,1,PRICE_CLOSE);
//fin
//los parámetros de entrada son de sólo lectura
tp=0;
sl=0;
//fin
//Suplemento de cuenta con 5 decimales
if(_Digits==5)
{
sl*=10;
tp*=10;
}
//fin
return(0);
}
//+------------------------------------------------------------------+
//| Función de desinicialización experta|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
//| Función tick experto|
//+------------------------------------------------------------------+
void OnTick()
{
MqlTick tick; //variable para información de tick
if(!SymbolInfoTick(Symbol(),tick))
{
Print("Failed to get Symbol info!");
return;
}
//Copiar los últimos valores del indicador MA en un buffer
int copied=CopyBuffer(ma1Handle,0,0,4,ma1Val);
if(copied>0)
copied=CopyBuffer(ma2Handle,0,0,4,ma2Val);
copied=CopyBuffer(macdHandle,0,0,4,macdVal);
if(copied>0)
{
//Si MAPeriod > MAPeriod + Shift -> COMPRAR
if(ma1Val[1]>ma2Val[1] && macdVal[1]>macdVal[2])
{
trReq.price=tick.bid; // SymbolInfoDouble(NULL,SYMBOL_BID);
trReq.sl=tick.bid-_Point*sl; // Nivel de Stop Loss de la orden
trReq.tp=tick.bid+_Point*tp; // Nivel de Take Profit de la orden
trReq.type=ORDER_TYPE_BUY; // Tipo de orden
OrderSend(trReq,trRez);
}
//Si MAPeriod < MAPeriod + Shift -> VENDER
else if(ma1Val[1]<ma2Val[1] && macdVal[1]<macdVal[2])
{
trReq.price=tick.ask;
trReq.sl=tick.ask+_Point*sl; // Nivel de Stop Loss de la orden
trReq.tp=tick.ask-_Point*tp; // Nivel de Take Profit de la orden
trReq.type=ORDER_TYPE_SELL; // Tipo de orden
OrderSend(trReq,trRez);
}
}
}
//+------------------------------------------------------------------+
Hola Outkast,
Soy nuevo en EA Acabo de importar el Sr. tsaktuo esimpleMA, ya que realmente no entiendo el código, veo que se ejecuta en mi gráfico, pero ¿se supone que para establecer algunos de los valores de MA, no sé necesita ayuda necesita una clase o un libro. ???
Me alegró encontrar su ejemplo de código, ya que resolvió mi problema de almacenar la MA y hacer que aparezca en un gráfico. Gracias por publicarlo.
La única pregunta que tengo es ¿cómo se toma la decisión de cerrar la orden abierta?
Gracias
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso

Asesor Experto Simple MA:
Algo para los que quieran probar el nuevo Probador de Estrategias y no tienen ningún EA.
Autor: Karlis Balcers