¿Quién quiere una estrategia? Lotes y de forma gratuita) - página 19

 
orlekino >> :

Lo he reescrito a mi gusto y color; parece algo parecido a EoM, pero los picos son incomprensibles.

//  Ease of Movement

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
extern int PeriodMA = 13;
extern int VolDivisor = 10000;
double EoMBuffer[];
double TempBuffer[];

int init()
{
   IndicatorBuffers(2);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0, EoMBuffer);
   SetIndexBuffer(1, TempBuffer);
   IndicatorShortName("EoM("+ PeriodMA+")");
   SetIndexLabel(0,"EoM("+ PeriodMA+")");
   SetIndexDrawBegin(0, PeriodMA);

   return(0); 
}

int start()
{
   int counted_bars=IndicatorCounted();
   if( counted_bars>0)
      counted_bars--;
   int limit=Bars- counted_bars;
  
   for(int i=0; i< limit-1; i++)
      TempBuffer[ i]= VolDivisor * (High[ i] - Low[ i]) * ((High[ i] + Low[ i]) / 2.0 - (High[ i + 1] - Low[ i + 1]) / 2.0) / MathMax(Volume[ i], 1);

   for( i=0; i< limit; i++)
      EoMBuffer[ i]=iMAOnArray( TempBuffer,Bars, PeriodMA,0,MODE_SMA, i);

   return(0);
}
 
zelda >> :

Interesante, pero según la idea original de Arms, el indicador debería caminar en relación a 0 y dar señales cuando se cruzan la línea cero y la SMA (que se aplican al indicador, no se suavizan inmediatamente).

¿Es posible crear una variante de este tipo? Yo mismo no sé (todavía) lo suficiente MQlng, por lo que en mi código dibuja el último tick del indicador como infinitamente subiendo (cómo arreglarlo - no sé), pero en el contexto general me conviene.

 
FOREXMASTER >> :

El comienzo no es malo, pero en este programa me gustaría ver:

1. La elección de las estrategias generadas, porque la propia máquina no puede elegir la estrategia más adecuada para cada uno, y he visto estrategas mucho mejores que el programa al final de la guarda

Tengo una idea un poco diferente, a saber, la creación de un repositorio de estrategias. Es decir, que el usuario genere 1 estrategia por instrumento y marco temporal y el ordenador la seleccione. Además, también descarga 20 estrategias del repositorio. A continuación, se realizan 20 pruebas con todas las estrategias descargadas y se crea una lista con sus características. Se pide que se elimine del repositorio la estrategia con el peor resultado y se añade en su lugar la que se acaba de generar.


Así, el usuario se queda con una lista de 21 estrategias, 20 de ellas ya probadas, de las que puede seleccionar todas las que le gusten y crear los códigos fuente de los EAs en MQL4.


De este modo se consigue un compromiso:


1. Un ordenador selecciona una estrategia de entre las generadas y no lo hace al azar, sino que tiene en cuenta determinadas características.

2. El usuario elige la estrategia de la lista, es decir, tiene derecho a hacer una elección, incluso inadecuada, subjetiva y errónea. Depende del usuario si quiere utilizar un balance recién hecho por el probador o una estrategia probada en el tiempo.


Pero lo más importante es que al hacerlo, el repositorio se filtrará constantemente y se almacenarán sólo aquellas estrategias que den los mejores resultados. Y los ajustes aleatorios serán eliminados por medio de la selección natural. Es decir, casi no hace falta hacer pruebas de avance, porque simplemente podemos mirar la lista y elegir la estrategia que más tiempo ha durado en el repositorio.


Además, de esta manera, los resultados se obtendrán utilizando la computación distribuida. En otras palabras, cada ordenador pasará sólo una parte de su tiempo generando estrategias y una proporción mucho menor de tiempo probando las estrategias.


Lamentablemente no hay posibilidad de repositorio en mi sitio anterior, porque Ucoz CMS no permite manejar bases de datos y ejecutar scripts PHP. Por lo tanto, tenemos que tomar un alojamiento separado para el sitio web de Stock Strategy Builder, sobre la base de la cual funcionará el repositorio.


Ya he completado la mayor parte del repositorio y la nueva versión del programa. Hay algunos detalles, sobre todo en cuanto a la calidad de las cotizaciones, sobre los que se generarán y probarán las estrategias. En cuanto resuelva todos estos detalles, publicaré la versión que soporta el repositorio.

 
Reshetov писал(а) >>

Tengo una idea ligeramente diferente, a saber, la creación de un repositorio de estrategias ...

... De este modo, el repositorio se filtraría constantemente y mantendría sólo las estrategias que produjeran los mejores resultados. Y los ajustes al azar serán expulsados de ella a través de la selección natural. Por lo tanto, prácticamente no es necesario realizar pruebas de avance...

... Tuve que conseguir un alojamiento separado para el sitio de Stock Strategy Builder, en base al cual funcionará el repositorio.

... Ya he realizado una parte importante del repositorio y de la nueva versión del software. Todavía quedan algunos detalles, sobre todo en cuanto a la calidad de las cotizaciones sobre las que se generarán y probarán las estrategias. En cuanto resuelva estos detalles, publicaré la versión con soporte de repositorio.

¡Gran idea! Buena suerte con la aplicación.

Pero no entiendo por qué no se necesita la prueba de avance.

 
voltair >> :

¡Gran idea! ¡Buena suerte con la aplicación!

Sólo que estoy un poco confundido en cuanto a por qué no se exigirán las pruebas de avance.

Porque sólo permanecerán en el repositorio las estrategias probadas en el tiempo, y el resto se irá eliminando poco a poco.


Está claro, si hay una estrategia, que lleva más de medio año, e incluso si muestra beneficios según las pruebas, entonces será más fiable que la recién generada.


Aunque, por supuesto, uno puede hacer pruebas adicionales por sí mismo, por si acaso.

 
Reshetov писал(а) >>

... Si usted ha descargado una estrategia del repositorio, que ha estado allí durante medio año, y aún hoy muestra un beneficio en las pruebas, entonces es más confiable que una estrategia recién generada.

Lo entiendo, las estrategias no se quedan ahí, se prueban constantemente y permanecen en el repositorio sólo si son rentables.

Pero puede ocurrir que "hoy" (en el mercado actual) "esta" estrategia sea deficitaria y mañana lo recupere todo con un beneficio importante.

¿Qué segmento de mercado se utilizará para probar las estrategias?

 
voltair >> :

Entiendo que las estrategias no sólo se almacenan allí, sino que se prueban constantemente y permanecen en el repositorio sólo si son rentables.

Sin embargo, ocurre que "hoy" (en el mercado actual) "esta" estrategia es deficitaria, y mañana lo recuperará todo con un beneficio importante.

¿En qué segmento de mercado se probará la estrategia?

Por esta razón, asumo que la sección de historia debe tener al menos 8000 barras. Es decir, el programa debería rechazar las cotizaciones con menos de 8000 barras. También debería rechazar las citas obsoletas, por ejemplo, si el archivo hst no se ha actualizado durante el último día.


Por lo tanto, los datos históricos deben ser lo suficientemente largos, a largo plazo y lo más recientes posible. Por lo tanto, la estrategia ya no es una estrategia de "un día" en este punto de la historia, ya que el resultado final será el total general de todo el período, en lugar de los trozos individuales.

 
Reshetov писал(а) >>

...supongo que la sección de historia debe tener al menos 8000 barras...

Probablemente, para los grandes plazos esto está bien. Pero probablemente no es suficiente para el minuto o M5. Aunque la pregunta es, ¿para qué plazos se mantendrán las estrategias? ¿Existe algún método probado (o experiencia) para seleccionar el número de barras para las pruebas? No suelo buscar menos de 20000 bares. Pero puede ser que esté equivocado...

 
voltair >> :

Probablemente esté bien para los plazos grandes. Pero probablemente no sea suficiente para minutos o M5. Pero mi pregunta es, ¿para qué plazos se conservan las estrategias? ¿Existe algún método probado (o experiencia) para seleccionar el número de barras para las pruebas? No suelo buscar menos de 20000 bares. Pero tal vez sea un error.

De momento me he decantado por la media de oro, es decir, por lo menos 8000 barras en datos históricos. Más es posible, menos no.

 

Si permitimos que se eliminen las estrategias del repositorio en función de los resultados negativos de las pruebas, no es del todo correcto. Porque puede haber casos en los que alguien suba cotizaciones rotas y agujereadas y después de hacer pruebas por ellas, borre todas las estrategias rentables.


Es mejor dar a cada estrategia una calificación, por ejemplo, de -100 a +100. Al colocar por primera vez una estrategia en el repositorio se le dará una calificación de cero.


Todas las estrategias se ordenarán por puntuación en orden descendente, es decir, del máximo al mínimo. El software cargará las 20 mejores estrategias con la máxima calificación y realizará pruebas con ellas. Si el resultado de la prueba es positivo y la calificación de la estrategia es inferior a 100, entonces se incrementa en 1. Si el resultado es negativo, entonces se reduce en 1. Si la calificación es inferior a -100, la estrategia se elimina del repositorio.


1. Las estrategias más antiguas que han sido probadas y demostradas a lo largo del tiempo tendrán la calificación más alta, por lo que aparecerán más arriba en el TOP-20.

2. Las estrategias de un día de duración irán bajando gradualmente en las clasificaciones y al llegar al nivel -100 serán eliminadas.

3. En caso de que el programa trabaje con comillas rotas, sólo podrá cambiar la clasificación en 1, es decir, no afectará globalmente a los resultados de la clasificación del repositorio, sino que sólo los ajustará ligeramente.

Razón de la queja: