Creemos un símbolo personalizado con la distribución de ticks adecuada y escribamos un TC grial. Hagamos un backtest y posteemos el resultado.
// Ejemplo de creación de un personaje personalizado a partir de ticks generados#property script_show_inputsinputstring SymbName = "TESTER";
#include <fxsaber\ThirdPartyTicks\CustomSymbol.mqh> // https://www.mql5.com/es/code/20225// Generación del historial de ticks con la propiedad requerida - ejemplo técnicoint GetTicks( MqlTick &Ticks[], constint Amount = 1 e5 )
{
staticconstMqlTick NullTick = {0};
constint Size = ArrayResize(Ticks, Amount);
long time = (TimeCurrent() - 7 * 24 * 3600) * 1000;
for (int i = 0; i < Size; i++)
{
Ticks[i] = NullTick;
constdouble Price1 = NormalizeDouble(MathRand() / 1000.0, 3);
constdouble Price2 = NormalizeDouble(MathRand() / 1000.0, 3);
Ticks[i].bid = MathMin(Price1, Price2);
Ticks[i].ask = MathMax(Price1, Price2);
time += MathRand();
Ticks[i].time_msc = time;
Ticks[i].time = (datetime)(time / 1000);
}
return(Size);
}
voidOnStart()
{
CUSTOMSYMBOL Symb(SymbName); // Creado un símboloif (Symb.IsCustom())
{
Symb.SetProperty(SYMBOL_TRADE_STOPS_LEVEL, 0);
// Hacer que la moneda del símbolo sea la moneda de la cuenta
Symb.SetProperty(SYMBOL_CURRENCY_PROFIT, AccountInfoString(ACCOUNT_CURRENCY));
Symb.SetProperty(SYMBOL_CURRENCY_MARGIN, AccountInfoString(ACCOUNT_CURRENCY));
Symb.SetProperty(SYMBOL_CURRENCY_BASE, AccountInfoString(ACCOUNT_CURRENCY));
// Para calcular el beneficio// Symb.SetProperty(SYMBOL_TRADE_TICK_VALUE, 1);// Symb.SetProperty(SYMBOL_TRADE_TICK_SIZE, Symb.GetProperty(SYMBOL_POINT));MqlTick Ticks[];
GetTicks(Ticks); // Formado un historial de garrapatasif ((Symb.AddTicks(Ticks) > 0) && (Symb.DataToSymbol() > 0) && Symb.On()) // Enviar el historial de ticks al símboloChartOpen(Symb.Name, PERIOD_CURRENT); // Abierto el gráfico
}
}
En este script necesitamos escribir sólo nuestro propio GetTicks. Basándonos en el historial generado, tendremos un símbolo (personalizado) casi completo disponible para operar en el Probador.
Otro escenario de uso de símbolos personalizados (no necesariamente con la ayuda de esta biblioteca).
Es posible automatizar completamente el backtest regular del Asesor Experto en datos históricos frescos y transferir los resultados de la prueba al Asesor Experto de combate para sincronizar la imagen real con el probador. Esto le permite implementar dicha lógica de negociación sin escribir su propio probador
Otra posibilidad de utilizar este esquema:
Se toma una versión demo gratuita del Asesor Experto del Mercado y se persigue en el tester por cotizaciones frescas, el copiador toma los datos del resultado del tester. En consecuencia, la versión de pago no es necesario.
Tal vez sea necesario prohibir el backtest de los Asesores Expertos de Mercado en símbolos personalizados....
// Incluir el día actual en el backtest#property script_show_inputs#include <Symbol.mqh> // https://www.mql5.com/es/code/18855inputint Offset = -24 * 7; // Desplazamiento en horas#define HOUR 3600voidOnStart()
{
const SYMBOL Symb(_Symbol + "_Offset" + (string)Offset); // Creado un símboloif (Symb.IsExist()) // Si se crea el símbolo
{
Symb.CloneProperties(); // Copiar las propiedadesMqlRates Rates[];
// Tiempos de barra desplazadosfor (int i = CopyRates(_Symbol, PERIOD_M1, 0, (int)SeriesInfoInteger(_Symbol, PERIOD_M1, SERIES_BARS_COUNT), Rates) - 1; i >= 0; i--)
Rates[i].time += Offset * HOUR;
// Symb.CloneTicks(Ticks);// Registre las barras de desplazamiento e incluya el símbolo en la Observación del Mercadoif ((Symb.CloneRates(Rates) > 0) && Symb.On())
ChartOpen(Symb.Name, PERIOD_CURRENT); // Abrir un nuevo gráfico de símbolos
}
}
Dos formas de establecer deslizamientos en el Probador
Inserte pseudo-ticks (precios degradados por el valor del deslizamiento) entre los ticks reales. Entonces los ticks impares - análisis, los pares - trading.
Análisis por un símbolo real, trading - por uno personalizado. Personalizado - degradación del real por el valor de deslizamiento.
Gracias. Como siempre, un poco más complicado de lo que me gustaría ;)
Tus códigos tienen una ventaja innegable: se pueden coger y utilizar. Pero es bastante difícil retocar algo en ellos, eso es una desventaja.
Es muy conveniente que con una línea creo una copia totalmente lista de un símbolo personalizado, pero:
¡dime cómo crear su propio símbolo utilizando su biblioteca, pero no para copiar los datos históricos - Quiero modificar OHLC, y no quiero estropear su código ))), gracias de antemano!
Viktar Dzemikhau: ¿Y por qué se necesitan símbolos personalizados? ¿Si los símbolos reales disponibles en DC se negocian?
Desarrollo el pensamiento de dickfix, como "no siempre es posible utilizar cualquier símbolo para el comercio automático, si el EA no funciona en este símbolo, tal vez necesita otro símbolo o utilizar gráficos personalizados".
Estoy desarrollando el pensamiento de dickfix, como "que no siempre es posible utilizar cualquier símbolo para el comercio automático, si el EA no funciona en este símbolo, tal vez necesita otro símbolo o utilizar gráficos personalizados".
hay un cierto razonamiento en ello.
;)
Esto es basura. ¿Qué más da el símbolo? Si el símbolo es real, se puede acceder a él. Tengo mi propia clase de símbolo. El único miembro necesario de la clase es el nombre del instrumento negociado. Tú introduces otro instrumento, y yo obtengo todos los datos necesarios. Así que me pregunté, después de haber entrado en este hilo, ¿por qué un símbolo personalizado? Si se puede negociar, su nombre es tal y cual, y si no se puede negociar... ¿cómo que no?
Viktar Dzemikhau: Si se puede operar, su nombre es fulano de tal, y si no se puede operar... ¿cómo que no se puede operar?
¿Por qué no se puede negociar? El Asesor Experto trabajará en el probador de estrategias, por lo que puede utilizar el optimizador... lo que significa que puedes buscar patrones.
Como se suele decir, cada uno tiene su propio camino - si usted piensa que puede almacenar los datos en una clase, adelante, es más fácil para mí para la salida de datos en un símbolo personalizado y, a continuación, utilizar indicadores en este gráfico.
aqui esta el spread EURUSD - GBPUSD de mis sintes.
es muy cómodo que puedas ver visualmente el gráfico y analizar el tiempo de las barras, y además están todos los TFs y puedes ejecutar una estrategia en el probador de estrategias, y no es un problema volver a los símbolos reales.
¿por qué no? en el probador de estrategias el Asesor Experto funcionará, por lo que podrá utilizar el optimizador... lo que significa que puedes buscar patrones.
Como se suele decir, cada uno tiene su propio camino - si usted piensa que los datos se pueden almacenar en una clase, adelante, es más fácil para mí para la salida de datos en un símbolo personalizado y luego utilizar indicadores en este gráfico.
Por supuesto que sí. Después de todo, en 5 puedes acceder a diferentes herramientas en cualquier momento. Y escribir una clase para cada herramienta es redundante. Es como si hay formas, y no vamos a utilizar la forma de clase base, y siempre escribir uno nuevo. No estoy criticando, por supuesto. fxsaber escribe cosas muy competentes a veces. Y él sabe mejor, al parecer lo necesita. Pero creo que es innecesario.
Igor Makanu:
¿por qué no se puede? un Asesor Experto trabajará en el probador de la estrategia, por lo que puede utilizar el optimizador ... lo que significa que puede buscar patrones
Como se suele decir, cada uno tiene su propio camino - si usted piensa que los datos se pueden almacenar en una clase, adelante, es más fácil para mí para la salida de datos en un símbolo personalizado y luego utilizar indicadores en este gráfico.
Aquí está un bosquejo del spread EURUSD - GBPUSD de mis sintéticos.
Es muy cómodo que puedas ver visualmente el gráfico y analizar el tiempo de las barras, y además están todos los TFs y puedes ejecutar una estrategia en el probador de estrategias, y no es un problema volver a símbolos reales.
Si hubiera sabido lo que daría, quizás hubiera apoyado esta idea. Pero tal y como está...)))
¡por favor dime como crear tu propio simbolo usando tu libreria, pero no copiar datos historicos - quiero modificar OHLC, y no quiero estropear tu codigo ))), gracias de antemano!
Foro sobre negociación, sistemas automatizados de negociación y prueba de estrategias de negociación
Machine learning en trading: teoría y práctica (trading y no sólo)
fxsaber, 2018.04.15 16:31
Creemos un símbolo personalizado con la distribución de ticks adecuada y escribamos un TC grial. Hagamos un backtest y posteemos el resultado.
En este script necesitamos escribir sólo nuestro propio GetTicks. Basándonos en el historial generado, tendremos un símbolo (personalizado) casi completo disponible para operar en el Probador.
Otro escenario de uso de símbolos personalizados (no necesariamente con la ayuda de esta biblioteca).
Es posible automatizar completamente el backtest regular del Asesor Experto en datos históricos frescos y transferir los resultados de la prueba al Asesor Experto de combate para sincronizar la imagen real con el probador. Esto le permite implementar dicha lógica de negociación sin escribir su propio probador
Otra posibilidad de utilizar este esquema:
Se toma una versión demo gratuita del Asesor Experto del Mercado y se persigue en el tester por cotizaciones frescas, el copiador toma los datos del resultado del tester. En consecuencia, la versión de pago no es necesario.
Tal vez sea necesario prohibir el backtest de los Asesores Expertos de Mercado en símbolos personalizados....
MT5 Build 1880 - funciona hasta ahora.
Dos formas de establecer deslizamientos en el Probador
gran biblioteca, pero, y cito.
Gracias. Como siempre, un poco más complicado de lo que me gustaría ;)
Tus códigos tienen una ventaja innegable: se pueden coger y utilizar. Pero es bastante difícil retocar algo en ellos, eso es una desventaja.
Es muy conveniente que con una línea creo una copia totalmente lista de un símbolo personalizado, pero:
¡dime cómo crear su propio símbolo utilizando su biblioteca, pero no para copiar los datos históricos - Quiero modificar OHLC, y no quiero estropear su código ))), gracias de antemano!
¿Y por qué se necesitan símbolos personalizados? ¿Si los símbolos reales disponibles en DC se negocian?
Desarrollo el pensamiento de dickfix, como "no siempre es posible utilizar cualquier símbolo para el comercio automático, si el EA no funciona en este símbolo, tal vez necesita otro símbolo o utilizar gráficos personalizados".
hay un cierto razonamiento en ello.
;)
Estoy desarrollando el pensamiento de dickfix, como "que no siempre es posible utilizar cualquier símbolo para el comercio automático, si el EA no funciona en este símbolo, tal vez necesita otro símbolo o utilizar gráficos personalizados".
hay un cierto razonamiento en ello.
;)
Si se puede operar, su nombre es fulano de tal, y si no se puede operar... ¿cómo que no se puede operar?
¿Por qué no se puede negociar? El Asesor Experto trabajará en el probador de estrategias, por lo que puede utilizar el optimizador... lo que significa que puedes buscar patrones.
Como se suele decir, cada uno tiene su propio camino - si usted piensa que puede almacenar los datos en una clase, adelante, es más fácil para mí para la salida de datos en un símbolo personalizado y, a continuación, utilizar indicadores en este gráfico.
aqui esta el spread EURUSD - GBPUSD de mis sintes.
https://charts.mql5.com/18/849/spread-h1-alpari-international-limited.png
es muy cómodo que puedas ver visualmente el gráfico y analizar el tiempo de las barras, y además están todos los TFs y puedes ejecutar una estrategia en el probador de estrategias, y no es un problema volver a los símbolos reales.
¿por qué no? en el probador de estrategias el Asesor Experto funcionará, por lo que podrá utilizar el optimizador... lo que significa que puedes buscar patrones.
Como se suele decir, cada uno tiene su propio camino - si usted piensa que los datos se pueden almacenar en una clase, adelante, es más fácil para mí para la salida de datos en un símbolo personalizado y luego utilizar indicadores en este gráfico.
Por supuesto que sí. Después de todo, en 5 puedes acceder a diferentes herramientas en cualquier momento. Y escribir una clase para cada herramienta es redundante. Es como si hay formas, y no vamos a utilizar la forma de clase base, y siempre escribir uno nuevo. No estoy criticando, por supuesto. fxsaber escribe cosas muy competentes a veces. Y él sabe mejor, al parecer lo necesita. Pero creo que es innecesario.
¿por qué no se puede? un Asesor Experto trabajará en el probador de la estrategia, por lo que puede utilizar el optimizador ... lo que significa que puede buscar patrones
Como se suele decir, cada uno tiene su propio camino - si usted piensa que los datos se pueden almacenar en una clase, adelante, es más fácil para mí para la salida de datos en un símbolo personalizado y luego utilizar indicadores en este gráfico.
Aquí está un bosquejo del spread EURUSD - GBPUSD de mis sintéticos.
https://charts.mql5.com/18/849/spread-h1-alpari-international-limited.png
Es muy cómodo que puedas ver visualmente el gráfico y analizar el tiempo de las barras, y además están todos los TFs y puedes ejecutar una estrategia en el probador de estrategias, y no es un problema volver a símbolos reales.
Si hubiera sabido lo que daría, quizás hubiera apoyado esta idea. Pero tal y como está...)))
¡por favor dime como crear tu propio simbolo usando tu libreria, pero no copiar datos historicos - quiero modificar OHLC, y no quiero estropear tu codigo ))), gracias de antemano!
Arriba hay un código corto. Hay comentarios detallados allí.