Preguntas sobre el MQL5 Wizard y la biblioteca estándar de clases comerciales - página 14
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
Por ejemplo, veamos las señales del MACD. Se describen un total de 5 señales de compra y 5 de venta (inversión, cruce con la línea de señal, etc.). ¿Hay alguna forma de obtener el valor de estas señales en un momento dado? Es decir, formar un vector de 10 elementos para cada barra, donde cada elemento corresponde a la señal, 1 indica su presencia, y 0 - ausencia? ¿Qué método de la clase CSignalMACD se puede utilizar para obtener los valores correspondientes?
Lamentablemente, esta funcionalidad no está disponible de forma estándar.
Hola, ayúdenme con esto. He creado un robot (mi primer robot). Inmediatamente después de iniciar se apaga con el mensaje Expert initializing of robot (EURUSD,H1) failed. No puedo encontrar más información al respecto.
Aquí está su código:
--------------------------------------
//+------------------------------------------------------------------+
//| robot.mq5 |
//| Copyright 2012, MetaQuotes Software Corp.
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2012, MetaQuotes Software Corp.
#enlace de propiedad "http://www.mql5.com"
#versión de la propiedad "1.00"
//+------------------------------------------------------------------+
//| Incluir |
//+------------------------------------------------------------------+
#include <Experto.mqh>
//--- señales disponibles
#include <Expert\robot\\\Nde.mqh>
//--- disponible al final
#include <Expert\Trailing\TrailingNone.mqh>
//--- gestión del dinero disponible
#include <Expert\Money\MoneyFixedLot.mqh>
//+------------------------------------------------------------------+
//| Entradas |
//+------------------------------------------------------------------+
//--- entradas para el experto
input string Título_de_experto ="robot"; // Nombre del documento
ulong Número_de_la_Magia =24553; //
bool Expert_EveryTick =false; //--- entradas para la señal principal
//--- entradas para la señal principal
input int Signal_ThresholdOpen =10; // Valor del umbral de la señal a abrir [0...100]
input int Umbral_de_señal_de_cierre =10; // Valor del umbral de la señal a cerrar [0...100]
input double Nivel_de_precio_de_señal =0.0; // Nivel de precio para ejecutar una operación
input double Signal_StopLevel =50.0; // Nivel de Stop Loss (en puntos)
input double Signal_TakeLevel =50.0; // Nivel de ganancia (en puntos)
input int Señal_Expiración =4; // Vencimiento de las órdenes pendientes (en barras)
input int Signal_MaCross_FastPeriod=13; // My_MA_Cross(13,MODE_SMA,21,...) Periodo de la MA rápida
input ENUM_MA_METHOD Signal_MaCross_FastMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Método de MA rápido
input int Signal_MaCross_SlowPeriod=21; // My_MA_Cross(13,MODE_SMA,21,...) Periodo de la MA lenta
input ENUM_MA_METHOD Signal_MaCross_SlowMethod=MODE_SMA; // My_MA_Cross(13,MODE_SMA,21,...) Método de MA lento
input double Señal_MaCross_Peso =1.0; // My_MA_Cross(13,MODE_SMA,21,...) Peso [0...1.0]
//--- entradas por dinero
input double Porcentaje_de_lote_dinero =10.0; // Porcentaje
input double Money_FixLot_Lots =0.1; // Volumen fijo
//+------------------------------------------------------------------+
//| Objeto experto global |
//+------------------------------------------------------------------+
CExpert ExtExpert;
//+------------------------------------------------------------------+
//| Función de inicialización del experto |||
//+------------------------------------------------------------------+
int OnInit()
{
//--- Inicialización del experto
if(!ExtExpert.Init(Symbol(),Period(),Expert_EveryTick,Expert_MagicNumber))
{
//--- falló
printf(__FUNCTION__+": error al inicializar el experto");
ExtExpert.Deinit();
return(-1);
}
//--- Creación de la señal
CExpertSignal *señal=nueva CExpertSignal;
if(signal==NULL)
{
//--- falló
printf(__FUNCTION__+": error al crear la señal");
ExtExpert.Deinit();
return(-2);
}
//---
ExtExpert.InitSignal(señal);
signal.ThresholdOpen(Signal_ThresholdOpen);
signal.ThresholdClose(Signal_ThresholdClose);
signal.PriceLevel(Signal_PriceLevel);
signal.StopLevel(Signal_StopLevel);
signal.TakeLevel(Signal_TakeLevel);
signal.Expiration(Signal_Expiration);
//--- Creación del filtro MA_Cross
MA_Cross *filtro0=nuevo MA_Cross;
if(filter0==NULL)
{
//--- falló
printf(__FUNCTION__+": error al crear el filtro0");
ExtExpert.Deinit();
retorno(-3);
}
signal.AddFilter(filter0);
//--- Establecer los parámetros del filtro
filter0.FastPeriod(Señal_MaCross_FastPeriod);
filter0.FastMethod(Señal_MaCross_FastMethod);
filter0.SlowPeriod(Señal_MaCross_SlowPeriod);
filter0.SlowMethod(Señal_MaCross_SlowMethod);
filter0.Peso(Señal_MaCross_Peso);
//--- Creación del objeto de arrastre
CTrailingNone *trailing=nuevo CTrailingNone;
if(trailing==NULL)
{
//--- falló
printf(__FUNCTION__+": error al crear el trailing");
ExtExpert.Deinit();
retorno(-4);
}
//--- Añadir el final al experto (se borrará automáticamente))
if(!ExtExpert.InitTrailing(trailing))
{
//--- falló
printf(__FUNCTION__+": error al inicializar la cola");
ExtExpert.Deinit();
retorno(-5);
}
//--- Establecer los parámetros finales
//--- Creación del objeto dinero
CMoneyFixedLot *money=nuevo CMoneyFixedLot;
if(dinero==NULL)
{
//--- falló
printf(__FUNCTION__+": error al crear dinero");
ExtExpert.Deinit();
retorno(-6);
}
//--- Añadir dinero al experto (se borrará automáticamente))
if(!ExtExpert.InitMoney(money))
{
//--- falló
printf(__FUNCTION__+": error al inicializar el dinero");
ExtExpert.Deinit();
retorno(-7);
}
//--- Establecer los parámetros del dinero
money.Percent(Money_FixLot_Percent);
money.Lots(Money_FixLot_Lots);
//--- Comprobar todos los parámetros de los objetos comerciales
if(!ExtExpert.ValidationSettings())
{
//--- falló
ExtExpert.Deinit();
retorno(-8);
}
//--- Ajuste de todos los indicadores necesarios
if(!ExtExpert.InitIndicators())
{
//--- falló
printf(__FUNCTION__+": error al inicializar los indicadores");
ExtExpert.Deinit();
retorno(-9);
}
//--- ok
return(0);
}
//+------------------------------------------------------------------+
//| Función de desinicialización del experto |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
ExtExpert.Deinit();
}
//+------------------------------------------------------------------+
//| Función de manejo de eventos "Tick" |
//+------------------------------------------------------------------+
void OnTick()
{
ExtExpert.OnTick();
}
//+------------------------------------------------------------------+
//| Función de manejo de eventos "Comercio" |
//+------------------------------------------------------------------+
void OnTrade()
{
ExtExpert.OnTrade();
}
//+------------------------------------------------------------------+
//| Función de manejo de eventos "Timer" |
//+------------------------------------------------------------------+
void OnTimer()
{
ExtExpert.OnTimer();
}
//+------------------------------------------------------------------+
Cuál podría ser el problema. Ni siquiera sé dónde buscar primero.
Gracias de antemano.
Hola, ayúdenme con esto. He creado un robot (mi primer robot). Inmediatamente después de iniciar se apaga con el mensaje Expert initializing of robot (EURUSD,H1) failed. No puedo encontrar más información al respecto.
No tengo suficiente información.
Necesita
#include <Expert\robot\robot.mqh>
Necesito parámetros de inicio (probador/terminal, servidor, par, plazo, etc.)
PS El código fuente es mejor adjuntarlo como archivo
Preguntas sobre el Asistente MQL5:
1) //--- entradas para el dinero
input double Porcentaje_de_lote_de_dinero =10.0; // Porcentaje
input double Lote_de_dinero =0.1; // Volumen fijo
¿Qué significan estos parámetros? ¿Y cómo se relacionan?
2) ¿Puedo generar un EA que coloque órdenes pendientes? Si es así, ¿cómo?
3) ¿Qué significa la variable Signal_Expiration? ¿Cómo lo utilizo?
Preguntas sobre el Asistente MQL5:
1) //--- entradas de dinero
input double Porcentaje_de_lote_de_dinero =10.0; // Porcentaje
input double Lote_de_dinero =0.1; // Volumen fijo
¿Qué significan estos parámetros? ¿Y cómo se relacionan?
2) ¿Puedo generar un EA que coloque órdenes pendientes? Si es así, ¿cómo?
3) ¿Qué significa la variable Signal_Expiration? ¿Cómo se utiliza?
1) El parámetro Money_FixLot_Percent se utiliza para establecer el nivel de "parada forzada". No lo toques.
El parámetro Money_FixLot_Lots establece un volumen fijo (lote), con el que su Asesor Experto entrará en el mercado.
Estos parámetros no están relacionados de ninguna manera.
2) Cualquier Asesor Experto generado por el Asistente puede operar con órdenes pendientes. Para ello se utiliza el parámetro ..._NivelDePrecio. Dependiendo del valor de este parámetro, el Asesor Experto se comportará de la siguiente manera:
0 - la entrada al mercado será al precio actual;
>0 - la entrada en el mercado se hará utilizando órdenes pendientes de límite (mejor que el precio actual por el valor de este parámetro);
<0 - la entrada en el mercado se hará utilizando órdenes pendientes de Stop (peor que el precio actual por el valor del parámetro);
3) El parámetro Signal_Expiration establece la duración de una orden pendiente (en barras del marco temporal actual).
Si genero un EA en el MQL5 Wizard, ¿cuántas órdenes puede abrir dicho EA simultáneamente? ¿Cómo se regula esto?
Si genero un EA en el MQL5 Wizard, ¿cuántas órdenes puede abrir dicho EA simultáneamente? ¿Cómo se controla esto?
1 pedido. No está regulado.
El Asistente está diseñado para probar la estrategia. Si quieres más, tienes que "limar" (escribir a mano).
2) Cualquier EA generado por el Asistente puede operar con órdenes pendientes. Para ello se utiliza el parámetro ..._NivelDePrecio. Dependiendo del valor de este parámetro, el Asesor Experto se comportará de la siguiente manera:
0 - la entrada al mercado será al precio actual;
>0 - la entrada en el mercado se hará utilizando órdenes pendientes de límite (mejor que el precio actual por el valor de este parámetro);
<0 - la entrada al mercado se hará utilizando órdenes de stop pendientes (peor que el precio actual por el valor del parámetro);
¿En qué unidades se mide el parámetro PriceLevel? ¿En puntos? Por ejemplo, si quiero establecer una orden de stop pendiente 20 pips más alta que el precio actual,
¿Debo establecer este parámetro PriceLevel =-0.0020?