Errores, fallos, preguntas - página 133

 
Interesting:
Por lo que entiendo la acumulación, como en la demo o en el tester...
¿Qué es eso? Reacumulación o devengo
 
Dmitriy2:

Así que al dar salida a los valores al registro, sólo una vez (por primera vez) la función parabólica, es decir, CopyBuffer, devuelve 0 y no -1, como debería ser en caso de error (aunque tampoco debería serlo, todos los datos están ahí, todos descargados, nada de grandes matrices multidimensionales, ¡no debería producirse ningún error!) Y esto ocurre SÓLO en el probador y SÓLO UNA vez. A partir de aquí todo funciona bien.

En el código básico no me importa lo que devuelven las funciones, finalmente cuando se trata de una solicitud de comercio, los valores recibidos para la solicitud son comprobados por la función universal, y si todo está bien enviamos la solicitud, si no - esperamos a que esté bien...

Pruebe el siguiente código en su función de obtener el valor parabólico.

double Параболик(ENUM_TIMEFRAMES период,double step,double maximum,int бар)
  {
   double ЗначениеParabolic[1];
   int Parabolic=iSAR(Symbol(),период,step,maximum);
   int cb=CopyBuffer(Parabolic,0,бар,1,ЗначениеParabolic);
   if(cb!=1) Print("BarsCalculated ",BarsCalculated(Parabolic),", CopyBuffer ", cb, ", ArrayValue ",ЗначениеParabolic[0]);
   return(ЗначениеParabolic[0]);
  }

Obtendrás algo como esto en el registro

2010.09.15 14:53:53     Core 1  2010.09.01 00:00:07   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
2010.09.15 14:53:53     Core 1  2010.09.01 00:00:07   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
2010.09.15 14:53:53     Core 1  2010.09.01 00:00:07   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
2010.09.15 14:53:53     Core 1  2010.09.01 00:00:07   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
2010.09.15 14:53:53     Core 1  2010.09.01 00:00:07   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
2010.09.15 14:53:53     Core 1    SLпоПервойТочкеПараболика=true

Esto explicará por qué obtienes 0 y no -1.

Lo repetiré por tercera vez. Los datos están ahí, pero los valores de los indicadores en ese momento PUEDEN no estar calculados todavía. Está escrito en la ayuda.

 
maryan.dirtyn:
¿Qué es? ¿Reconocimiento o acumulación?
Overcritching sufre de FC, MT ha tenido acumulación toda su vida. Sencillo en días normales y x3 en miércoles (habría que aclarar eldía de intercambio triple )...
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Interesting:
FC sufre de sobreacumulación, MT ha tenido acumulación toda su vida. Sencillo en días normales y x3 en miércoles (habría que aclarar eldía de intercambio triple )...
No sé qué es la fc... Sólo necesito saber CÓMO será en los campeonatos
 
alexvd:

Prueba este código en tu función para obtener el valor de la parabólica.

Obtendrá más o menos esta salida en el registro

Esto explicará por qué se obtiene 0 y no -1.

Lo repetiré por tercera vez. Los datos existen, pero los valores del indicador en ese momento PUEDEN no haber sido calculados todavía. Está escrito en la ayuda.

Exactamente, estamos recibiendo el valor parabólico, no la respuesta del CopyBuffer...

Vale... cambiar la función parabólica por la que has proporcionado (con las huellas).

Agrego las impresiones en el bucle for (no tiene protección de cero)

if(НапрСигнала==ORDER_TYPE_BUY)
     {
      if(SLпоПервойТочкеПараболика==true)
         for(i=0;;i=i+1)
           {
            Print("бай, параболик до иф ",Параболик(PERIOD_CURRENT,0.02,0.2,i+1));
            if(iLow(PERIOD_CURRENT,i+1,1)<Параболик(PERIOD_CURRENT,0.02,0.2,i+1))// || Параболик(PERIOD_CURRENT,0.02,0.2,i+1)<=0
              {
               Print("бай, параболик после иф ",Параболик(PERIOD_CURRENT,0.02,0.2,i+1));
               break;
              }
           }
      ЗначениеSAR=NormalizeDouble(Параболик(PERIOD_CURRENT,0.02,0.2,i)/ТИК,0)*ТИК;
      if(БИД>ЗначениеSAR) //bay
         slтики=(int)NormalizeDouble((АСК-ЗначениеSAR)/ТИК,0);
     }
   if(НапрСигнала==ORDER_TYPE_SELL)
     {
      if(SLпоПервойТочкеПараболика==true)
         for(i=0;;i=i+1)
           {
            Print("селл, параболик до иф ",Параболик(PERIOD_CURRENT,0.02,0.2,i+1));
            if(iHigh(PERIOD_CURRENT,i+1,1)>Параболик(PERIOD_CURRENT,0.02,0.2,i+1))// || Параболик(PERIOD_CURRENT,0.02,0.2,i+1)<=0
              {
               Print("селл, параболик после иф ",Параболик(PERIOD_CURRENT,0.02,0.2,i+1));
               break;
              }
           }
      ЗначениеSAR=NormalizeDouble(Параболик(PERIOD_CURRENT,0.02,0.2,i)/ТИК,0)*ТИК;
      if(БИД<ЗначениеSAR) //sell
         slтики=(int)NormalizeDouble((ЗначениеSAR-БИД)/ТИК,0);
     }

Ejecutarlo en el probador

JQ      0       Core 1  15:16:37        agent process started
NJ      0       Core 1  15:16:37        connecting to 127.0.0.1:3000
NJ      0       Core 1  15:16:39        connected
GP      0       Core 1  15:16:39        authorized (agent build 328)
LK      0       Tester  15:16:39        EURUSD,H1 (MetaQuotes-Demo): testing of Experts\Отладка.ex5 from 2010.01.01 00:00 to 2010.09.11 00:00 to be started
RH      0       Core 1  15:16:41        common synchronization completed
RS      0       Core 1  15:16:41        3124 bytes of account info loaded
RI      0       Core 1  15:16:41        3768 bytes of group info loaded
MN      0       Core 1  15:16:41        7170 bytes of tester parameters loaded
EL      0       Core 1  15:16:41        275 bytes of selected symbols loaded
IK      0       Core 1  15:16:41        expert file added: Experts\Отладка.ex5. 6597 bytes loaded
LE      0       Core 1  15:16:41        initial deposit 10000.00 USD, leverage 1:100
KO      0       Core 1  15:16:41        successfully initialized
RQ      0       Core 1  15:16:41        23 Kb of total initialization data received
KK      0       Core 1  15:16:41        performance: 72
HP      0       Core 1  15:16:41        EURUSD: symbol synchronized, 2904 bytes of symbol info received
RI      0       Core 1  15:16:43        EURUSD: load 27 bytes of history data to synchronize
MG      0       Core 1  15:16:43        EURUSD: history synchronized from 1993.05.13 to 2010.09.10
MP      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
CD      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
IK      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
ON      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
ER      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
KI      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
QL      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
GP      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
MG      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
CK      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
IN      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
OE      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
EI      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
KL      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
QS      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
GG      0       Core 1  15:16:45        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
KJ      0       Core 1  15:16:47        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0
EN      0       Core 1  15:16:47        2010.01.04 00:00:02   BarsCalculated -1, CopyBuffer -1, ArrayValue 0

y así sucesivamente, hasta que pulses cancelar

Asesor experto en el gráfico

PJ      0       Experts 15:27:14        expert Отладка (EURUSD,M20) removed
MR      0       Trades  15:27:18        '677265' : instant buy 0.10 EURUSD at 1.29697
EH      0       Trades  15:27:19        '677265' : accepted instant buy 0.10 EURUSD at 1.29697
GL      0       Trades  15:27:21        '677265' : order #1350474 buy 0.10 EURUSD at 1.29697 done
LH      0       Trades  15:27:21        '677265' : deal #1426626 buy 0.10 EURUSD at 1.29697 done (based on order #1350474)
LI      0       Experts 15:27:56        expert Отладка (EURUSD,M20) loaded successfully
IR      0       Trades  15:28:07        '677265' : instant sell 0.10 EURUSD at 1.29690 sl: 1.30136 tp: 1.29502
IM      0       Trades  15:28:08        '677265' : accepted instant sell 0.10 EURUSD at 1.29690 sl: 1.30136 tp: 1.29502
RK      0       Trades  15:28:10        '677265' : order #1350477 sell 0.10 EURUSD at 1.29690 done
RO      0       Trades  15:28:10        '677265' : deal #1426629 sell 0.10 EURUSD at 1.29690 done (based on order #1350477)

no hay errores en el diario

mira la imagen en la pestaña de Expertos; tampoco hay mensajes de error

puedes contar puntos parabólicos, todo coincide bien, en el duodécimo, salir del ciclo...

 

Hace tiempo que me di cuenta de que en MQL5 en "ese momento" o en ese... Los datos de aquí o de allá pueden no estar calculados... Pero no está bien, hay que arreglarlo, no escribir muletillas en el código

por cierto, es lo mismo con todos los demás indicadores, no sólo con los parabólicos

 
maryan.dirtyn:
no sé qué es la fc, sólo necesito saber cómo será en los campeonatos.

FC - Forex Club y decir su terminal Rumus2.

¿Tienes una cuenta de prueba para el campeonato? Pruébalo y todo se aclarará...

 
Dmitriy2:

Hace tiempo que me di cuenta de que en MQL5 en "ese momento" o en ese... Los datos de aquí o de allá pueden no estar calculados... Pero no está bien, hay que arreglarlo, no escribir muletillas en el código

Por cierto, es lo mismo con todos los demás indicadores, no sólo con los parabólicos.

No creemos nuevas discusiones.

Este tema se ha discutido muchas veces. Fue revisado no hace mucho tiempo(https://www.mql5.com/ru/forum/1951)

Тестер стратегий. Помогите разобраться с ошибкой.
Тестер стратегий. Помогите разобраться с ошибкой.
  • www.mql5.com
mq5) handle индикатора объявляется как глобальная переменная, индикатор инициализируется в OnInit() и передается в функцию.
 

Sentado... Observando...

Nunca creeré que MQL5 y MQL4 fueron escritos por el mismo equipo.(((

MQ4 - volando...

MQ5 es un juego de niños. Sin ánimo de ofender, pero...(((

 
alexvd:

No discutamos.

Este tema se ha debatido más de una vez. Fue revisado no hace mucho tiempo(https://www.mql5.com/ru/forum/1951)

No he visto este hilo... lo mismo...

La cuestión es que no voy a hacer estúpidamente comprobaciones en cada línea para todas las ocasiones, confundiendo y desordenando el código. Si eso no es posible, entonces... se añaden muletas, un proyecto lo suficientemente grande es finalmente rehecho y funcionando...

Y en general, me sorprende este enfoque... Resulta que no es la primera vez que surge una pregunta de este tipo (y estoy seguro de que más de una vez en el futuro surgirá en otras personas), y cada vez "por primera vez" para pasar un montón de su tiempo de trabajo y de los demás para explicar lo que hay que hacer para evitar este error ...

Lo único que hay que hacer es añadir en el TESTER que se recomienda en ese hilo sólo UNA DORMIDA(1000) al inicio del Expert Advisor.

No debe ser así para que el caparazón implique fallos, y esos fallos deben evitarse en el código. Y el TERMINAL está funcionando correctamente y de forma correcta, no hay ERRORES (en esta situación). Pero el funcionamiento del comprobador es DIFERENTE al del terminal.

ps EQU hola:)