Erreurs, bugs, questions - page 133

 
Interesting:
D'après ce que je comprends, la régularisation, comme dans la démo ou dans le testeur...
qu'est-ce que c'est ? Ré-accumulation ou accumulation
 
Dmitriy2:

Ainsi, lors de la sortie des valeurs dans le journal, une seule fois (pour la première fois) la fonction parabolique, c'est-à-dire CopyBuffer, renvoie 0 et non -1, comme cela devrait être le cas en cas d'erreur (bien que cela ne devrait pas être le cas non plus, toutes les données sont là, toutes téléchargées, pas de grands tableaux multidimensionnels, aucune erreur ne devrait se produire !) Et cela se produit SEULEMENT dans le testeur et UNE SEULE fois. A partir de là, tout fonctionne bien.

Dans le code de base, je ne me soucie pas de ce que les fonctions renvoient, éventuellement, quand il s'agit d'une demande de transaction, les valeurs reçues pour la demande sont vérifiées par la fonction universelle, et si tout est OK, nous envoyons la demande, sinon - nous attendons qu'elle soit OK ...

Essayez le code suivant dans votre fonction d'obtention de la valeur parabolique.

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]);
  }

Vous obtiendrez quelque chose comme ça dans le journal.

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

Cela expliquera pourquoi vous obtenez 0 et non -1.

Je vais le répéter pour la 3ème fois. Les données sont là, mais les valeurs des indicateurs à ce moment-là PEUVENT ne pas encore être calculées. C'est écrit dans l'aide !

 
maryan.dirtyn:
Qu'est-ce que c'est ? Re-cryptage ou accrétion
Overcritching souffre de FC, MT a eu l'accrual toute sa vie. Simple les jours ordinaires et x3 le mercredi(le jour de l'échange triple devrait être clarifié)...
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
Interesting:
FC souffre de suraccumulation, MT a eu une accumulation toute sa vie. Simple les jours normaux et x3 le mercredi(le jour du Triple Swap devrait être clarifié)...
Je ne sais pas ce que c'est... Je veux juste savoir comment ce sera aux championnats.
 
alexvd:

Essayez ce code dans votre fonction pour obtenir la valeur de la parabole.

Vous obtiendrez à peu près ce résultat dans le journal.

Cela expliquera pourquoi vous obtenez 0 et non -1.

Je vais le répéter pour la 3ème fois. Les données existent, mais les valeurs des indicateurs à ce moment-là PEUVENT ne pas avoir encore été calculées. C'est écrit dans l'aide !

Exactement, nous obtenons la valeur parabolique, pas la réponse du CopyBuffer...

ok... changer la fonction parabolique par celle que vous avez fournie (avec les empreintes).

J'ajoute les impressions dans la boucle for (elle n'a pas de protection zéro)

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);
     }

Exécutez-le dans le testeur

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

et ainsi de suite, jusqu'à ce que vous appuyiez sur "Annuler".

Conseiller expert sur le graphique

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)

aucune erreur dans le journal

regardez l'image dans l'onglet Experts ; pas de messages d'erreur non plus

vous pouvez compter les points paraboliques, tout coïncide bien, au douzième, sortez du cycle...

 

J'ai réalisé il y a longtemps que dans MQL5 à "ce moment" ou à ce... Les données ici ou là peuvent ne pas être calculées... Mais ce n'est pas bien, il faut le réparer, pas écrire des béquilles dans le code...

D'ailleurs, c'est la même chose avec tous les autres indicateurs, pas seulement avec les paraboliques.

 
maryan.dirtyn:
je ne sais pas ce qu'est le fc. j'ai juste besoin de savoir COMMENT il sera aux championnats.

FC - Forex Club et dites que son terminal est Rumus2.

Avez-vous un compte de test pour le championnat ? Essayez-le et tout sera clair...

 
Dmitriy2:

J'ai réalisé il y a longtemps que dans MQL5 à "ce moment" ou à ce... Les données ici ou là peuvent ne pas être calculées... Mais ce n'est pas bien, il faut le réparer, pas écrire des béquilles dans le code...

Vous devez le réparer, pas écrire des béquilles... D'ailleurs, c'est la même chose avec tous les autres indicateurs, pas seulement avec le parabolique.

Ne multiplions pas la discussion.

Ce sujet a été abordé à de nombreuses reprises. Elle a été revisitée il n'y a pas si longtemps(https://www.mql5.com/ru/forum/1951).

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

Assis... Je regarde...

Je ne croirai jamais que MQL5 et MQL4 ont été écrits par la même équipe.(((

MQ4 - volant...

MQ5 est un jeu d'enfant. Sans vouloir vous offenser, mais...((()

 
alexvd:

N'ayons pas de discussion.

Ce sujet a été abordé plus d'une fois. Elle a été revisitée il n'y a pas si longtemps(https://www.mql5.com/ru/forum/1951).

Je n'ai pas vu ce fil... même chose...

Le fait est que je ne vais pas faire stupidement des contrôles sur chaque ligne pour toutes les occasions, ce qui rendrait le code confus et encombrant. Si c'est hors de question, alors... des béquilles sont ajoutées, un projet assez important est finalement entièrement refait et fonctionne...

Et en général, je suis juste étonné de cette approche... Il s'avère que ce n'est pas la première fois qu'une telle question se pose (et je suis sûr que plus d'une fois à l'avenir se posera dans d'autres personnes), et chaque fois "pour la première fois" de passer beaucoup de votre temps de travail et d'autres pour expliquer ce que vous devez faire pour contourner ce bug ...

La seule chose à faire est d'ajouter dans TESTER ce qui est recommandé dans ce fil de discussion seulement UN Sleep(1000) au début de l'Expert Advisor.

Il ne doit pas être tel que le shell implique des pépins, et ces pépins doivent être évités dans le code. Et le TERMINAL fonctionne bien et correctement, il n'y a PAS D'ERREURS (dans cette situation). Mais le fonctionnement du testeur est DIFFÉRENT de celui du terminal.

ps EQU bonjour :)

Raison: