Discusión sobre el artículo "Arrancando el beneficio hasta el último pips" - página 18

 
fxsaber:

Cuando la expectativa de baja estera rompe el resultado.

en mi opinión, la estimación MOE no es suficiente para evaluar el TC en el futuro.

Aquí está el ZigZag MOE con un vistazo a la historia, el MOE es mucho menor https://www.mql5.com/ru/forum/221552/page1630#comment_13582832.

que en el artículo, tiene un MOE de 6,17.

Necesito algún tipo de indicador complejo, como el error de desajuste entre el gráfico de la balanza del probador y el gráfico de la balanza comercial, pero todavía no sé dónde leer tal material.

 
multiplicator:

Escribe una secuela. Sobre estos puntos.

Intenté escribir este artículo en un lenguaje sencillo. Parece que no fue entendido por los lectores (especialmente, en otros idiomas). E inesperadamente al final resultó que me alegro de tal circunstancia. Así que creo que ya es suficiente.

 
Igor Makanu:

Necesito algún tipo de indicador complejo, como el error de desajuste entre el gráfico de la balanza de comprobación y el gráfico de la balanza comercial, pero todavía no sé dónde leer ese material.

Es casi cero. El sincronizador funciona muy bien. Es sólo la comisión que se lo come.

 
fxsaber:

Es casi nulo. El sincronizador funciona muy bien. Sólo se come la comisión.

MO es MO, imho una de las evaluaciones más inútiles ever.... Bueno, esa es mi opinión :)

¿Has visto mi informe sobre ZZ? Presta atención al artículo https://www.mql5.com/es/articles/1492 y al Z-score.

Mi puntuación Z: Puntuación Z: -17,44 (99,74%).

Tu puntuación Z: -3,52.

Según el artículo "MATHEMATICS IN TRADING" tienes buenos datos en Z-Account y MO es positivo y más que ZZ, pero ZZ tiene menor MO y 5 veces mayor Z-Account (spread en el test desde el terminal que tengo).


aquí estoy buscando respuestas a mis preguntas - cómo evaluar el TS correctamente, pero como escribí anteriormente - MO no es la evaluación de la TS en absoluto, si no me equivoco, el probador Grails en ticks de MT4 tienen MO negativo? - No he mirado durante mucho tiempo, tengo que mirar en KB

 
Igor Makanu:

MO es MO, en mi opinión una de las evaluaciones más inútiles..... bueno, es mi opinión).

Así que MO solo habla de lo duro que será cuando tengas que pagar costes (comisión, deslizamiento, etc).

¿has visto mi informe ZZ? echa un vistazo al artículo https://www.mql5.com/es/articles/1492 y a la valoración de la cuenta Z

que hice. Es mirar al futuro, por lo que no entendí bien lo que necesitaba ver.

Mi puntuación Z: Puntuación Z: -17,44 (99,74%).

Tu puntuación Z: -3,52.

Según el artículo "MATHEMATICS IN TRADING" tienes buenos datos de Z-Account y MO es positiva y más que ZZ, pero ZZ tiene menor MO y 5 veces mayor Z-Account (spread en el test del terminal que tengo).

No sé muy bien por qué es necesario comparar con ZZ-TS. Al mirar dentro no debería haber ninguna desventaja. No recuerdo exactamente, creo que la MO debería ser el doble que el min knee de la ZZ.

Nunca he oído hablar de un recuento Z. He leído la definición. Tendré que ver la serie de operaciones por mí mismo.

Estoy buscando respuestas a mis preguntas - cómo evaluar un TS correctamente, pero como escribí anteriormente - MO no es una evaluación de TS en absoluto, si no me equivoco, los tester grails en ticks de MT4 tienen MO negativo? - No he mirado durante mucho tiempo, tengo que mirar en KB

MO es el beneficio medio de una posición cerrada. Para nada un criterio de optimización ni nada por el estilo. Sólo información.


Para Genética he usado algo así

sinput int inMinTrades = 0; // Número mínimo de operaciones (posiciones).

double OnTester()
{      
  return((TesterStatistics(STAT_TRADES) > inMinTrades) ? TesterStatistics(STAT_PROFIT) : 0);
}

permite filtrar mucha basura y dirigir GA a extremos más o menos interesantes.

 
fxsaber:

No sé muy bien por qué tienes que compararlo con el ZZTS. No debería haber ningún menos al mirar hacia dentro. No recuerdo exactamente, creo que la MO debería ser el doble de alta que la rodilla min. de la ZZ.

Operaciones rentables (% de todas): 12217 (99.96%) Operaciones con pérdidas (% de todas): 5 (0.04%)

no hay pérdidas allí, sólo la pérdida en el cierre - Yo era demasiado perezoso para hacerlo.

fxsaber:

Nunca he oído hablar de Z-cuenta. He leído la definición. Tengo que ver la serie de operaciones para mí.

La fórmula se describe en el artículo, así que creo que puede valer la pena calcular esta cuenta Z en línea, pero entonces tengo que tener en cuenta las estadísticas del probador para ver cómo se comporta la cuenta Z más adelante

 

fxsaber:


Esta es una imagen del resultado del TC optimizado en el intervalo rojo resaltado. No puedo reproducir exactamente como era entonces. Pero recuerdo que la imagen a la izquierda del intervalo de optimización era mucho más agradable - una línea recta. Casi un grial, que se puso en el real y ganó exactamente igual que en el Probador. Cuando después del Año Nuevo empezó la sangría sistemática, tuve suficiente ingenio o experiencia para desconectar el trading. La pérdida fue de alrededor del 10% de lo ganado antes. Lo que causó el desguace no está claro.

Lo importante de esta historia es que incluso la graalidad provoca pérdidas.


¿Quizá el proveedor amplió el diferencial? Puede descargar el historial de ticks de ese periodo y ver el tamaño medio del diferencial antes del nuevo año y después del nuevo año.
 
fxsaber:

Nunca he oído hablar de una cuenta Z. He leído la definición. Tendré que ver la serie de operaciones por mí mismo.

Visualizador

string ZToString( const double Commission = 0, const int Length = 80 )
{
  const int Size = OrdersHistoryTotal();
  string Str = NULL;
  
  StringReserve(Str, Size + Size / Length);
  
  for (int i = 0, Count = 0; i < Size; i++)
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY) && (OrderType() <= OP_SELL))
    {
      Str += (OrderProfit() + Commission> 0) ? "+" : "-";
      
      if (++Count >= Length)
      {
        Str += "\n";
        
        Count = 0;
      }
    }
    
  return(Str);
}


Para esta operación (la línea superior es sin comisión, la línea azul es con comisión).



La cuenta Z es 0,76 (55,27%) - sin comisión. Y se ve así


Obviamente, hay una dependencia de la Z-cuenta de la comisión. Yo no lo tendría en cuenta en el análisis. No he profundizado en el tema del análisis de las operaciones.

 
fxsaber:

Visualizador

¿cómo utilizarlo? - ¡realmente lo necesito!

fxsaber:

Z-cuenta es de 0,76 (55,27%) - sin comisión. Y se ve así

Bueno, creo que has confirmado mi suposición de que no se trata de una baja MO, sino de una baja correlación entre operaciones, es decir, la entrada+salida de una operación depende poco del par de entrada+salida anterior y siguiente. Es decir, tu TS muy probablemente encontró una correlación aleatoria con el gráfico de precios de forma experimental (GA del probador) y esta correlación se mantuvo durante algún tiempo.

estos son mis pensamientos, si son correctos, entonces es necesario volver a optimizar tales TS más a menudo, y TS con mayor correlación entre las series de ganancias / pérdidas deben ser re-optimizado con menos frecuencia..... pero parece que aquí también es necesario controlar los cambios en la cuenta Z.


ZY: Me gustaría ver el informe completo del probador del artículo, las operaciones no son interesantes, el sombrero es interesante, me gustaría compararlo con ZZ, si no te importa, por favor compártelo.

 
multiplicator:

¿Quizá el proveedor ha ampliado el diferencial? Puede descargar el historial de ticks de ese periodo y ver el tamaño medio del diferencial antes y después del nuevo año.

Aquí tienes el diferencial medio ponderado por semanas (en puntos).

2018.06.04 00:05:09   33.21
2018.06.11 00:05:11   41.86
2018.06.18 00:05:01   36.99
2018.06.25 00:05:19   45.40
2018.07.02 00:05:20   41.26
2018.07.09 00:05:21   39.09
2018.07.16 00:05:14   40.79
2018.07.23 00:05:19   36.06
2018.07.30 00:05:04   33.86
2018.08.06 00:05:17   33.03
2018.08.13 00:05:04   37.92
2018.08.20 00:06:08   40.94
2018.08.27 00:05:04   39.02
2018.09.03 00:05:13   37.99
2018.09.10 00:05:11   40.37
2018.09.17 00:05:16   42.10
2018.09.24 00:05:12   38.52
2018.10.01 00:05:13   32.12
2018.10.08 00:05:12   30.94
2018.10.15 00:05:16   35.96
2018.10.22 00:05:18   32.76
2018.10.29 00:05:02   36.59
2018.11.05 00:05:14   30.08
2018.11.12 00:05:09   30.41
2018.11.19 00:05:14   30.16
2018.11.26 00:05:32   34.95
2018.12.03 00:05:07   26.41
2018.12.10 00:05:15   25.50
2018.12.17 00:05:15   28.62
2018.12.24 00:05:13   33.06
2018.12.31 00:05:09   78.09
2019.01.07 00:05:11   49.78
2019.01.14 00:05:03   33.54
2019.01.21 00:05:20   43.68
2019.01.28 00:05:07   45.67
2019.02.04 00:05:12   44.24
2019.02.11 00:05:10   40.00
2019.02.18 00:05:20   40.66
2019.02.25 00:05:20   46.09
2019.03.04 00:05:15   41.78
2019.03.11 00:05:10   43.28
2019.03.18 00:05:03   44.42
2019.03.25 00:09:06   47.47
2019.04.01 00:05:12   44.14
2019.04.08 00:05:12   47.25
2019.04.15 00:05:09   45.61
2019.04.22 00:05:13   56.57
2019.04.29 00:05:19   48.09
2019.05.06 00:28:42   49.82
2019.05.13 00:05:13   58.00
2019.05.20 00:05:13   58.75
2019.05.27 00:05:12   60.43

Represéntalo en Excel. A ojo, parece haber aumentado. Esa parece ser la razón.


// Diferencial medio ponderado en el tiempo (en pips) para cada semana. Ejecutado en el Probador en ticks reales.
#define  MACROS(A, B)               \
  int Time##A( const datetime dt ) \
  {                                \
    MqlDateTime mdts;              \
                                   \
    TimeToStruct(dt, mdts);        \
                                   \
    return(mdts.B);                \
  }                                \
                                   \
  int A() { return(Time##A(TimeCurrent())); }

  MACROS(Day, day)
  MACROS(Month, mon)
  MACROS(Year, year)
  MACROS(DayOfYear, day_of_year)
  MACROS(DayOfWeek, day_of_week)
#undef  MACROS

void OnTick()
{
  static double SumSpread = 0;
  static long SumInterval = 0;  
  
  static MqlTick PrevTick = {0};
  static int PrevDay = 0;  
    
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick) && (Tick.time - PrevTick.time) < 60)
  {
    const long Interval = Tick.time_msc - PrevTick.time_msc;
    
    SumSpread += (PrevTick.ask - PrevTick.bid) * Interval / _Point;
    SumInterval += Interval;    
  }

  const int Day = DayOfWeek();
  
  if (Day < PrevDay)
  {    
    if (SumInterval)
      Print(DoubleToString(SumSpread / SumInterval, 2));
      
    SumSpread = 0;
    SumInterval = 0;        
  }
  
  PrevTick = Tick;  
  PrevDay = Day;
}