El autor - página 4

 
He solucionado la sincronización. Por favor, avise si hay una forma de congelar el terminal (para que no acepte cotizaciones) durante el tiempo del script o del Expert Advisor.
 
ivandurak:
He solucionado la sincronización. Por favor, indique si hay una manera de congelar el terminal (para que no acepte cotizaciones) mientras el script o el Asesor Experto está trabajando.

Esto es una tontería.

¿Para qué es eso?

 
her.human:

Esto es una tontería.

¿Por qué es necesario?

El probador multidivisa que se puede meter dentro de un indicador o script de EA está prácticamente terminado, espero. El principal problema era la sincronización de las diferentes herramientas de negociación en presencia de agujeros en el historial. Por ejemplo, si analizamos las acciones del euro y de Gazprom, es evidente que el horario de negociación es diferente, y por lo tanto hay muchas lagunas en Gazprom en comparación con el euro, incluidos los fines de semana y los días festivos. De la posición salió un conjunto ejemplar de horarios de apertura en una franja horaria seleccionada, sin lagunas en la parte seleccionada de la historia. A continuación, se compara la hora de apertura de una matriz ejemplar con la hora de apertura de un instrumento de negociación, y cuando la hora coincide, se memoriza el número de barra del instrumento de negociación, y este número se transmite a la ST. Ahora tenemos unos cuantos instrumentos de negociación y durante su recálculo la siguiente barra puede empezar en la última, como resultado la barra que fue devuelta para los cálculos resulta estar desplazada con todo lo que ello implica. La solución es la posibilidad de corregir el número de barra permanentemente, pero esto supone una gran complicación del código. Podemos devolver la hora de apertura de una barra en lugar de su número, como has sugerido, pero en ese caso complicaría el código para un usuario (de momento me inclino por esta variante). Así que pensé, el probador incorporado no dará un nuevo valor de precio hasta que el Deinit no funciona, tal vez hay una manera de frenar el terminal hasta que el programa funciona.
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства позиций - Документация по MQL5
 
ivandurak:
Para devolver al TS no el número de bar, sino la hora de apertura del bar, pero entonces es una complicación para el usuario
CopyTime("EURUSD",0,Время,Количество_Баров,Time);
CopyOpen("EURUSD",0,Время,Количество_Баров,OpenEU);
No parece haber ninguna complicación.
 

Pues aquí está el primer trago de la multidivisa . Debo advertirte de entrada que ni siquiera es una versión, el código no está optimizado y no está totalmente depurado y seguro que hay fallos. Si no es difícil mirar y expresar sus deseos, escupe aún demasiado pronto.

El comprobador está diseñado para la comprobación multidivisa de una pieza seleccionada de la historia . Todas las funciones comerciales se toman de 4 . Instrucciones detalladas tras la finalización .

Me olvidé de añadir debe ser abierto todos los gráficos de interés en los mismos plazos

Archivos adjuntos:
Tester.mqh  61 kb
 

Primera publicación

Buenos días a usted una clase para escribir un probador multidivisa dentro de los scripts, indicadores o Asesores Expertos .La prueba se realiza mediante la apertura de precios .

Métodos de clase

void Initialization() ;// Este método realiza la puesta a cero de las variables.

void AddSymbol(string Symb) ;// método que añade un símbolo bajo prueba al probador el símbolo debe ser cargado y el terminal debe mostrar un gráfico sobre el período bajo prueba .

bool SetBeginEnd( int Begined, int Ended) ;// establece el comienzo y el final del historial bajo prueba . La indexación empieza por el final según la norma. Por eso la barra de inicio del historial que se comprueba es mayor que la barra de final.

void Visualisation(true); // Habilitar la visualización de las operaciones .

voidPrinting(true) ;//la salida de los resultados de las operaciones al diario está desactivada por defecto.

bool Start(datetime &IndexInstrum[]) este método comprueba el final del periodo que se está probando, y devuelve la matriz de horas de inicio de barra para los instrumentos que se están probando . Esto es necesario para sincronizar las pruebas de los diferentes instrumentos si hay lagunas .

int GetBarsNambe(string GSimb,datetime TimeOpen);//devuelve el número de barra por el símbolo seleccionado y la hora de apertura de la barra.

void Vedenie_v() es el método principal en el que comprobamos todas las órdenes establecidas para su activación, cierre en el stop o en el beneficio.

Las pruebas se basan en las reglas de Mql4, es decir, cada orden tiene su propia vida, por lo que podemos bloquear y abrir órdenes opuestas.

Todas las funciones de negociación también están tomadas de Mql4. Esto se hizo para permitir una fácil adaptación de los EAs escritos en este lenguaje.

Tenga en cuenta que el método OrderClose_v cierra completamente la posición seleccionada.

OrderCloseBy falta .

double OrderProfit_v( ) calcula el beneficio sin apalancamiento, el apalancamiento puede ser diferente para diferentes símbolos probados .

El resto del código no se modifica, véase la documentación.

Orden de solicitud

Primero viene la inicialización . A continuación, seleccionamos la historia bajo prueba . A continuación, añadimos los instrumentos que se están probando. Habilitar la visualización si es necesario . Habilitar la salida de informes si es necesario .

La prueba en sí tiene lugar dentro del bucleDo -While .

Primero viene el método obligatorio

aaa=Test.Start(timeopen) ; Devuelve el final de la prueba y la matriz de tiempos de apertura de barra para los instrumentos bajo prueba . La dimensión de timeopen debe coincidir con el número de instrumentos bajo prueba. Si, por ejemplo, timeopen[0] < 0, es señal de que falta en el historial, véase el ejemplo .

Después, el propio sistema de trading tiene un número ilimitado de barras. nambebars=Test.GetBarsNambe(Symbol(),timeopen[0]) ; donde symbol y bar open time son co-symbols. De acuerdo con este número, se pueden calcular los valores de los indicadores y establecer la señal de negociación de acuerdo con la lógica de TS.

Al final debe ir método Vedenie_v .

Tras el final de la prueba (salida del ciclo), todo el historial de operaciones está disponible para todas las órdenes. Ver la descripción y el foro de Mql4

También necesita el archivo HeadTester.mqh para superponer completamente el formato de las funciones de comercio de Mql4.

Buena suerte y prosperidad .

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства сделок - Документация по MQL5
Archivos adjuntos:
Tester.mqh  69 kb
 
ivandurak:

Primera publicación

...

Buena suerte y prosperidad .

Gracias. ¿Tal vez podrías escribir un artículo? Inmortalizarlo, por así decirlo. )))
 

Señores PLZ. En algún lugar estoy frenando muy intensamente. La pregunta se refiere a SOM. Si es posible en un ejemplo concreto .

Supongamos que tenemos un mapa formado por 50X60 neuronas (células rectangulares). Tomemos un vector de entrenamiento aleatorio, su dimensión x1={x1,x2,x3,x4,x5}, supongamos que la longitud total de la muestra de entrenamiento es de 5000 vectores. Supongamos que la neurona más cercana al vector de entrada tiene el índice 25,30 - la encontré y mi hijo ya está estudiando geometría en la escuela. Y entonces mi red neuronal ya no está optimizada. En realidad, más allá de un montón de preguntas.

1 Cómo calcular los índices de las neuronas a entrenar en el paso 1.

2 Cómo calcular los índices de las neuronas a entrenar en el segundo paso.

3 Cuántos pasos de entrenamiento totales debe haber para el vector de entrada X1.

4 Si me quedo con la regla de aprendizaje de Kohonen, preguntaré más.

PS He leído el artículo, leer la literatura adicional, miró a los códigos, la conclusión requiere un pendel.

 

Creo que he resuelto la vecindad de la neurona ganadora dentro de la cual se produce el aprendizaje. Ahora la siguiente pregunta es.

¿Existe un criterio de cuántas veces hay que entrenar a las neuronas de la vecindad? Esta pregunta está mal descrita, no puedo entender si la enseñamos una vez y luego tomamos el siguiente vector. O entrenar hasta que el error medio se reduzca, por ejemplo, al 5%.

 

Se necesita un algoritmo para colorear el mapa de Kohonen. Hay un gran deseo de no pintar todos los mapas, sino de hacer con uno, respectivamente, cada grupo debe asignar su propio color. Cómo hacerlo mente no es.En la figura se muestra el mapa que tengo. El principio de la coloración es que un vector con mayor longitud se pinta con el color más claro. Aunque no es correcto los vectores X1 = (1,1) y X2 = (-1,-1) tienen la misma longitud pero pertenecen a zonas diferentes.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Стили рисования - Документация по MQL5
Razón de la queja: