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

 
ViktorF:

¡Hola!

Pregunta sobre el probador:

Cuando se prueban los EAs, el probador deja de procesar los precios después de un incumplimiento de s/l. ¿Qué debo hacer para evitarlo? ¿Qué debo hacer si quiero que el probador continúe probando el EA después de superar el stop?


Tal vez tenga un script, no un EA))))), pero ¿qué período de prueba establece?

Si todo está bien, publica el EA, alguien te dirá qué hacer.

 
gheka:


Tal vez usted tiene una secuencia de comandos, no un EA)) y lo que el período de prueba se establece?

Si tu plazo está bien, publica el EA, alguien te dirá.


Principalmente 30 minutos.

Lo más interesante es que cuando paso por encima de los stop-loss por cierre forzado, los precios se siguen procesando y la curva del gráfico se sigue dibujando. Pero si cierro la misma orden en un stop (cambio el código del EA un poco) - la prueba se detiene después de una ruptura del stop... ¿Tal vez deberías cambiar algunos parámetros en la configuración del probador?

 
gheka:

¿Existe una función que devuelva el valor de una pérdida fija en pips para cerrar una orden?

Sé que hay un OrderStopLoss, pero es un precio perdedor.

Sé que hay un OrderStopLoss - pero es un valor del precio a pérdida, pero no he encontrado nada, ayúdame

Busca aquí... :)

 
ViktorF:


La mayoría de los 30 minutos.

Lo más interesante: cuando paso por alto las paradas mediante el cierre forzado, los precios se siguen procesando y la curva del gráfico se sigue dibujando. Pero si cierro la misma orden por un stop (cambio un poco el código del Asesor Experto) - las pruebas se detienen después de la ruptura de un stop... ¿Tal vez debería cambiar algunos parámetros en la configuración del probador?

 
ViktorF:


La mayoría de los 30 minutos.

Lo más interesante: cuando paso por alto las paradas mediante el cierre forzado, los precios se siguen procesando y la curva del gráfico se sigue dibujando. Pero si cierro la misma orden por un stop (cambio un poco el código del Asesor Experto) - las pruebas se detienen después de la ruptura de un stop... ¿Tal vez debería cambiar algunos parámetros en la configuración del probador?

Lo más probable es que sea un error en el código del EA y que deje de abrir nuevas posiciones después de cerrar en un stop
 

¡Hola!

Pregunta sobre el probador de la estrategia: Al probar en el probador de la revista no hay resultados con los registros en el archivo de registro, en los registros de error de registro terminal también no ..... al final de la barra de carga, en el probador, hay un chirrido desagradable. asesor se encuentra en la carpeta de expertos todas las casillas de verificación se establecen cien ayuda plz?

 
artmedia70:

Busca aquí... :)


¡¡¡gracias!!!
 
artmedia70:
Lo más probable es que sea un error en el código del EA y que después de cerrar en un stop deje de abrir nuevas posiciones

Creo que he descubierto el error: la casilla no cambia de valor tras el cierre de la orden por el stop (es decir, no por el propio EA). ¿Cómo puedo evitarlo?
 
ViktorF:

Creo que he descubierto el error: la bandera no cambia el valor después del cierre de la orden por el stop (es decir, no por el Asesor Experto). ¿Cómo se puede evitar eso de forma inteligente?

En el EA, comprueba si la orden está cerrada en un stop. Y si es así, cambia el valor de tu bandera.

Puede utilizar la función preparada por Igor Kim para determinar si la última posición cerrada fue cerrada por un stop.

O puedes hacerlo tú mismo. En cualquier caso, puede ser un buen ejemplo para empezar:

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.05.2008                                                     |
//|  Описание : Возвращает флаг закрытия последней позиции по стопу.           |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любая позиция)                  |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//+----------------------------------------------------------------------------+
bool isCloseLastPosByStop(string sy="", int op=-1, int mn=-1) {
  datetime t;
  double   ocp, osl;
  int      dg, i, j=-1, k=OrdersHistoryTotal();

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderCloseTime()) {
                t=OrderCloseTime();
                j=i;
              }
            }
          }
        }
      }
    }
  }
  if (OrderSelect(j, SELECT_BY_POS, MODE_HISTORY)) {
    dg=MarketInfo(sy, MODE_DIGITS);
    if (dg==0) if (StringFind(OrderSymbol(), "JPY")<0) dg=4; else dg=2;
    ocp=NormalizeDouble(OrderClosePrice(), dg);
    osl=NormalizeDouble(OrderStopLoss(), dg);
    if (ocp==osl) return(True);
  }
  return(False);
}
 
artmedia70:

En el EA, comprueba si la orden está cerrada en un stop. Y si es así, cambia el valor de tu bandera.

Puede utilizar la función preparada por Igor Kim para determinar si la última posición cerrada fue cerrada por un stop.

O puedes hacerlo tú mismo. En cualquier caso, será un buen ejemplo para empezar:


Gracias. Lo intentaré)