[¡Archivo!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. No puedo ir a ningún sitio sin ti - 4. - página 100

 

¡¡¡Hola a todos!!! Ayuda para entender el ejemplo de HELPA

//--------------------------------------------------------------------
//obviousexpert.mq4
// Destinado a ser utilizado como ejemplo en el Tutorial MQL4.
//--------------------------------------------------------------- 1 --
#property copyright "Copyright © Book, 2007"
#enlace de propiedad "http://AutoGraf.dp.ua"
//--------------------------------------------------------------- 2 --
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//--------------------------------------------------------------- 3 --
#include <Variables.mqh> //Descripción de las variables
#include <Check.mqh> // Comprobación de la legalidad del programa.
#include <Terminal.mqh> // Contabilidad de órdenes
#include <Events.mqh> // Seguimiento de eventos, actualizado.
#include <Inform.mqh> // Función de información
#include <Trade.mqh> // Función de comercio
#include <Open_Ord.mqh> // Apertura de una sola orden de un tipo especificado
#include <Close_All.mqh> // Cierre de todas las órdenes de un tipo especificado
#include <Tral_Stop.mqh> // Modificación del StopLoss de todas las órdenes de un tipo especificado
#include <Lot.mqh> // Cálculo del número de lotes
#include <Criterio.mqh> // Criterios comerciales
#include <Errors.mqh> // Función de manejo de errores.
//--------------------------------------------------------------- 4 --
int init() // Función especial init
{
Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );//distancia mínima
Terminal(); // Función de pedido
return; // Salir de init()
}
//--------------------------------------------------------------- 5 --
int start() // Función especial start
{
if(Check()==false) // Si las condiciones de uso.
return; // ...no se cumplen, exit.
PlaySound("tick.wav"); // En cada tick
Terminal(); // Función de contabilidad de pedidos
Eventos(); // Información de los eventos
Comercio(Criterio()); // Función de comercio
Inform(0); // Para recolorear los objetos
return; // Exit()
}
//--------------------------------------------------------------- 6 --
int deinit() // Función especial deinit()
{
Inform(-1); // Para eliminar objetos
return; // Salir deinit()
}
//--------------------------------------------------------------- 7 --

2) ¿Sólo en el lugar de almacenamiento? o también en el diseño del código?

Las preguntas son: 1) ¿Cuál es la diferencia entre los archivos de inclusión (#include<...> y #include "..."), 3) Y cuál es la diferencia entre las funciones importadas (#import) y la directiva #include?

El ejemplo de HELPA de usualexpert.mq4 ilustra el Asesor Experto, que fue construido en los archivos de inclusión, a juzgar por los corchetes <> en su directorio #include.

Preguntas: Se incluye el archivo #include <Variables.mqh> // Una descripción de las variables, cuando se crean según el ejemplo:

//--------------------------------------------------------------------
// Variables.mqh
// Destinado a ser utilizado como ejemplo en el tutorial de MQL4.
//--------------------------------------------------------------- 1 --
// Descripción de las variables globales
extern double Lotes =0.0; // Número de lotes
extern int Porcentaje =0; // Porcentaje de los fondos asignados
extern int StopLoss =100; // StopLoss para nuevas órdenes (puntos)
extern int TakeProfit =40; // TakeProfit para nuevas órdenes (puntos)
extern inttern TralingStop=100; // TralingStop para órdenes de mercado (puntos)
//--------------------------------------------------------------- 2 --
int
Level_new, // Nuevo valor de la distancia mínima
Level_old, // valor anterior de la distancia mínima
Mas_Tip[6]; // Matriz de tipos de orden
// [] tipo de órdenes: 0=B,1=S,2=BL,3=SL,4=BS,5=SS
//--------------------------------------------------------------- 3 --
doble
Lots_New, // Número de lotes para nuevos pedidos
Mas_Ord_New[31][9], // Matriz de pedidos actuales .
Mas_Ord_Old[31][9]; // .
// índice 1 = número de pedido
// [][0] no está definido
// [][1] precio de la orden abierta (valor absoluto)
// [][2] Orden de StopLoss (valor absoluto)
// [][3] Orden TakeProfit (valor de la tasa abs.)
// [][4] número de pedido
// [][5] número de lotes de la orden. (tasa abs.)
// [][6] Tipo de orden 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] número mágico de la orden
// [][8] 0/1
//--------------------------------------------------------------- 4 --

La compilación da un error -- '\end_of_program' - no hay función definida ¿qué significa y debo añadir algo al final de este ejemplo?

Y los archivos incluidos deben tener este aspecto o deben añadirse a la cabecera:

#property copyright "Copyright © 2004, MetaQuotes Software Corp.
#enlace de propiedad "http://www.metaquotes.net/"
#Biblioteca de propiedades
//+------------------------------------------------------------------+
//| devolver la descripción del error |
//+------------------------------------------------------------------+

Por ejemplo, como parte de ( usualexpert.mq4 // destinado a ser utilizado como ejemplo en el tutorial de MQL4. ) Hay #include <Check.mqh> // Comprobación de la legitimidad de los programas utilizados. Sin este sombrero, genera un error (Función de inicio no encontrada y no se puede ejecutar). ¿Todo está bien?

O bien, los archivos de inclusión contienen sólo descripciones de funciones personalizadas ubicadas en la biblioteca de funciones en la dirección (bibliotecas). ¿Si ya existe en el archivo del Asesor Experto?

 
Las-tochka:

¡¡¡Hola a todos!!! Ayúdame a entender un ejemplo de HELPA

//--------------------------------------------------------------------
// usualexpert.mq4
// Diseñado para ser utilizado como ejemplo en el tutorial de MQL4.
//--------------------------------------------------------------- 1 --
#property copyright "Copyright © Book, 2007"
#property link "http://AutoGraf.dp.ua"
//--------------------------------------------------------------- 2 --
#include <stdlib.mqh>
#include <stderror.mqh>
#include <WinUser32.mqh>
//--------------------------------------------------------------- 3 --
#include <Variables.mqh> //Descripción de variables
#include <Check.mqh> // Verificar la legalidad del uso del programa
#include <Terminal.mqh> // Contabilidad de pedidos
#include <Events.mqh> // Función de seguimiento de eventos, actualizada
#include <Inform.mqh> // Función de información
#include <Trade.mqh> // Función de comercio
#include <Open_Ord.mqh> // Abrir una sola orden de un tipo especificado
#include <Close_All.mqh> // Cerrar todas las órdenes de un tipo especificado
#include <Tral_Stop.mqh> // Modificación del StopLoss de todas las órdenes de un tipo determinado
#include <Lot.mqh> // Cálculo del número de lotes
#include <Criterion.mqh> // Criterios de negociación
#include <Errors.mqh> // Función de gestión de errores.

//--------------------------------------------------------------- 4 --
int init() // Función especial init
{
Level_old=MarketInfo(Symbol(),MODE_STOPLEVEL );// Dist. mínima
Terminal(); // Función de recuento de órdenes
return; // Salir de init()
} //--------------------------------------------------------------- 5 --
int start() // Función especial start
{
if(Check()==false) // Si condiciones de uso.
return; // ..no se cumplen, salir
PlaySound("tick.wav"); // En cada tick
Terminal(); // Función de contabilidad de órdenes
Events(); // Información de eventos
Trade(Criterion()); // Función de comercio
Inform(0); // Para recolorear objetos
return; // Salir de start()
}
//--------------------------------------------------------------- 6 --
int deinit() // Función específica deinit() function deinit()
{
Inform(-1); // Para borrar objetos
return; // Salir deinit()
}
//--------------------------------------------------------------- 7 --

2) ¿Sólo en el lugar de almacenamiento? ¿O también en el diseño del código?

Las preguntas son: 1) ¿Cuál es la diferencia entre los archivos de inclusión (#include<...> y #include "..."), 3) Y cuál es la diferencia entre las funciones importadas (#import) y la directiva #include?

El ejemplo de HELPA, en particular, ilustra el Asesor Experto, que fue construido en base a los archivos incluidos ubicados en su directorio #include, a juzgar por los corchetes <>.

Preguntas: Include\file #include <Variables.mqh> //Descripción de las variables, cuando son creadas por el ejemplo:

//--------------------------------------------------------------------
// Variables.mqh
// Diseñado para ser utilizado como ejemplo en el tutorial de MQL4.
//--------------------------------------------------------------- 1 --
// Descripción de las variables globales
extern double Lots =0.0; // Número de lotes
extern int Percent =0; // Porcentaje asignado
extern int StopLoss =100; // StopLoss para nuevas órdenes (pips)
extern int TakeProfit =40; // TakeProfit para nuevas órdenes (pips)
extern int TralingStop=100; // TralingStop para órdenes de mercado (pips)
//--------------------------------------------------------------- 2 --
int
Level_new, // Nuevo valor de distancia mínima
Level_old, // Valor de distancia mínima anterior
Mas_Tip[6]; // Matriz de tipo de orden
// [] tipo de orden 0=B,1=S,2=BL,3=SL,4=BS,5=SS
//--------------------------------------------------------------- 3 --
double
Lots_New, // Número de lotes para las nuevas órdenes
Mas_Ord_New[31][9], // Matriz de órdenes actual ..
Mas_Ord_Old[31][9]; // ... y old
// 1er índice = número ordinal de la orden
// [][0] no puede ser definido
// [][1] precio de la orden abierta (tasa abc)
// [][2] orden StopLoss (tasa abc)
// [][3] orden TakeProfit (tasa abc)
// [][4] número de orden
// [][5] número de lotes una orden (tasa abc). (Tarifa Abc)
// [][6] Tipo de pedido 0=B,1=S,2=BL,3=SL,4=BS,5=SS
// [][7] número mágico de orden
// [][8] 0/1 hecho de comentario
//--------------------------------------------------------------- 4 --

Al compilar da un error -- '\end_of_program' - no hay función definida lo que significa y si es necesario añadir algo al final de este ejemplo

Y los archivos de inclusión deben tener este aspecto o deben añadirse a la cabecera

#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property library
//+------------------------------------------------------------------+
//| return error description |
//+------------------------------------------------------------------+

Por ejemplo, como parte de ( usualexpert.mq4 // destinado a ser utilizado como ejemplo en el tutorial de MQL4. ) Hay #include <Check.mqh> // Comprobación de la legalidad de los programas utilizados. Sin este sombrero, genera un error (Función de inicio no encontrada y no se puede ejecutar). ¿Está todo bien?

O bien, los archivos de inclusión sólo contienen descripciones de funciones personalizadas, que se encuentran en la biblioteca de funciones en la dirección (bibliotecas). ¿Si ya existe en el archivo del Asesor Experto?

Lee bien el ejemplo del libro de texto, está todo ahí... Los Includes son secciones de programa incluidas (denominadas estructuralmente según su contenido, en función de la tarea que realiza cada una de ellas) - no es necesario compilarlas. El experto los copia y las inclusiones se colocan en el archivo *.ex4 de forma secuencial, dependiendo de cómo los haya escrito en el texto del programa. Por eso la descripción personalizada #include <Variables.mqh> //Variables es la PRIMERA del bloque 3 del programa. Intente moverlo al final de este bloque y compilar el Asesor Experto - vea cuántos errores habrá.
 
alsu:
.......

Una forma mejor de calcular la moda es construir una función de distribución empírica (que no debe confundirse con la distribución de frecuencias), luego interpolarla de lineal a trozos a suave, y finalmente buscar el punto de máxima derivada. Este algoritmo no presenta los inconvenientes mencionados anteriormente y funciona con bastante eficacia incluso con muestras de pequeño tamaño. Al menos, tuve que resolver sólo la tarea de buscar modos en muestras de 50-100 elementos con un número comparable de intervalos utilizando MQL - y todo estaba bien. La única desventaja es que la velocidad de cálculo suele disminuir considerablemente cuando se utilizan interpolaciones, por supuesto, si queremos suavizarla cualitativamente.

Alexey, muchas gracias.... El principio general de esta función es claro para mí))))
 
Hola, ¿podríais decirme qué significa Comment(""), qué salida tendrá la función en este caso?
 
Chuma:
Hola, ¿podríais decirme qué significa Comment(""), qué salida tendrá la función en este caso?
Un cuadro con el texto entre comillas
 
Comment() muestra el texto no en la caja sino en la esquina superior izquierda del gráfico
 
Me he encontrado con una discrepancia, hay un indicador que trabaja a precios de apertura y hay un EA en el que el TF en el que opera se establece utilizando señales de este indicador. He puesto 15 min en el EA y en el tester - abriendo precios, obtengo algún resultado. Pero si establecemos por ejemplo 1 minuto en el Probador de Estrategias - a precios abiertos el resultado no es demasiado radical, pero cambia. No entiendo qué está pasando. ¿Resulta que el precio de apertura del minuto no coincide con el precio de apertura de la hora? ¿O es un error del probador? ¿Puede decirme dónde está enterrado el perro?
 
moskitman:
el cuadro con el texto entre comillas

Me refería a cuando sólo hay comillas entre paréntesis: Comment("")

 
Chuma:

Me refería a cuando sólo hay comillas entre paréntesis: Comment("")

Borra los comentarios anteriores.
 
gogent:
Comment() muestra el texto no en la caja sino en la esquina superior izquierda del gráfico
Sí, así es.
Razón de la queja: