Preguntas sobre el MQL5 Wizard y la biblioteca estándar de clases comerciales - página 14

 
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 manera 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?
 
IvanSD:

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, no existe esta funcionalidad en la entrega estándar.
 
uncleVic:
Lamentablemente, esta funcionalidad no está disponible de forma estándar.
Gracias por su respuesta.
 

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.

Automated Trading and Strategy Testing
Automated Trading and Strategy Testing
  • www.mql5.com
MQL5: language of trade strategies built-in the MetaTrader 5 Trading Platform, allows writing your own trading robots, technical indicators, scripts and libraries of functions
 
pasha191:

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?

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
evrika:

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?

Собери свой торговый советник в Мастере MQL5
Собери свой торговый советник в Мастере MQL5
  • 2011.01.14
  • MetaQuotes Software Corp.
  • www.mql5.com
Знание языков программирования теперь не является обязательным условием для создания торговых роботов. Если раньше это действительно служило непроходимым препятствием для реализации своих торговых стратегий, то появление Мастера MQL5 в корне изменило ситуацию. Начинающие трейдеры могут перестать тревожиться из-за отсутствия опыта программирования - с новым визардом, позволяющим быстро генерировать код советника, он не понадобится.
 
evrika:

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).

 
uncleVic:

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?