Erreurs, bugs, questions - page 775

 
Neofit:

Merci d'avoir répondu.

J'écris un indicateur... malheureusement, le concept de l'indicateur suppose - qu'au moment où nous arrivons à OnCalculate, la paire optimale sera sélectionnée, ce qui semble suspect.

En général, dans la fonction OnCalculate, nous devons déjà utiliser les résultats des calculs et des analyses qui ont été effectués dans On Init.

Nous ne pouvons pas transférer ces calculs à OnCalculate, car nous n'avons pas le temps d'effectuer tous les calculs entre deux ticks voisins...

Tout se passe bien et facilement.

Déplacez l'analyse dans une fonction distincte et appelez-la depuis OnCalculate. S'il n'y a pas de données, quittez OnCalculate et attendez le prochain tick.

Le fait que l'indicateur démarre réellement après 1-2 secondes n'est pas un problème. Une autre façon de travailler avec des processus fortement dépendants et asynchrones n'est pas possible, seule l'initialisation paresseuse/à la demande.

 
Renat:

Cela fonctionne bien et facilement.

Déplacez l'analyse dans une fonction distincte et appelez-la depuis OnCalculate. S'il n'y a pas de données, quittez OnCalculate et attendez le prochain tick.

Le fait que l'indicateur démarre effectivement en 1 ou 2 secondes n'est pas un problème majeur. Une autre façon de travailler avec des processus fortement dépendants et asynchrones est impossible, seule l'initialisation paresseuse/à la demande.

Merci pour ce conseil. Je n'y ai pas pensé pour une raison quelconque. Je vais essayer d'écrire mon propre "pseudo-init", bien qu'il y ait peu d'espoir. J'ai essayé d'attendre dans OnInit, ça n'a pas marché, j'ai eu LastError 4007

ERR_ARRAY_RESIZE_ERROR

4007

Pas assez de mémoire pour redistribuer un tableau ou une tentative de redimensionner un tableau statique

Le tableau est dynamique, c'est-à-dire que la deuxième partie de la définition de l'erreur concernant"une tentative de redimensionnement d'un tableau statique" a disparu, et j'ai du mal à imaginerce que signifie " mémoireinsuffisantepour redistribuer un tableau".

for(int i=0;i<100;i++)
        {int p99=CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1);
         if(CopyBuffer(MaHandle1,0,0,n_analyzed_bars+shift_offset+2,MaBuffer1)>0)       break;
         else  
         {
           Print("Getting MA is failed! Error",GetLastError()); 
           int err=GetLastError(); 
             Sleep(500);    
           //return(0);
         } 
         
        }
  
 
papaklass:
J'ai essayé de créer un indicateur sur la base d'un autre indicateur. Le premier indicateur sélectionne une paire et le second travaille sur cette paire.

Les conseils de Renat m'ont beaucoup aidé, j'avais des problèmes avec le transfert des valeurs iMA vers les buffers personnalisés, j'ai déplacé le code de OnInit vers une autre fonction et avec des vérifications supplémentaires tout a fonctionné...maintenant je travaille dessus.

ZS Veuillez indiquer le moyen le plus pratique de suivre vos propres messages sur le forum. Où puis-je voir tous les messages qui me sont adressés (réponses à mes messages) ?

 

Cela fait longtemps que je ne suis pas les innovations de MT5, et je vais donc probablement poser une question très bête.

Je lance l'optimisation d'un Expert Advisor standard, lente (recherche complète des paramètres) mais elle limite cette recherche complète à quelques 10490.....

Le journal en est rempli : 2012.07.13 21:48:10 Core 5 genetic pass (494, 2560000) testé avec l'erreur "cannot initialize expert".

Puis 2012.07.13 21:49:26 L'optimisation génétique du testeur s'est terminée sur la passe 9353 (sur 816310000).


Quelle passe génétique ? Qu'est-ce que l'optimisation génétique ? Dépassement total, c'est ça ?

J'ai essayé la méthode d'optimisation rapide(algorithme génétique) et j'ai vu la même chose.

Quel article dois-je lire ?).

Генетические алгоритмы - это просто!
Генетические алгоритмы - это просто!
  • 2010.05.25
  • Andrey Dik
  • www.mql5.com
В статье автор расскажет об эволюционных вычислениях с использованием генетического алгоритма собственной реализации. Будет показано на примерах функционирование алгоритма, даны практические рекомендации по его использованию.
 
Figar0:

Cela fait longtemps que je ne suis pas les innovations de MT5, et je vais donc probablement poser une question très bête.

Je lance l'optimisation d'un Expert Advisor standard, lente (recherche complète des paramètres) et elle limite cette recherche complète à quelques 10490.....


Quelle passe génétique ? Qu'est-ce que l'optimisation génétique ? La force brute totale, c'est ça ?

Dans la version 32 bits, lorsque le nombre de passages dépasse 1.000.000, le mode génétique est activé. La version 64 bits a une limite de 100 000 000 pour la force brute complète. Ceci est décrit dans l'aide.

Il est fait de cette manière pour aider automatiquement les traders à ne pas faire d'erreurs évidentes.


Le journal en contient : 2012.07.13 21:48:10 Core 5 genetic pass (494, 256000000) testé avec l'erreur "cannot initialize expert".

Vous devez regarder le code - ou vous avez manqué de mémoire ou quelque chose d'autre pendant l'initialisation de l'expert.

 
Renat:

Dans la version 32 bits, si le nombre de passages dépasse 1 000 000, le mode génétique est activé. La version 64 bits a une limite de 100 000 000 pour une exécution complète. Ceci est décrit dans l'aide.

Il s'agit d'aider automatiquement les traders à ne pas commettre d'erreurs évidentes.

Merci pour votre réponse. 100 000 000 est suffisant pour moi.

Renat:

Je dois regarder le code - ou la mémoire était insuffisante, ou quelque chose d'autre pendant l'initialisation de l'Expert Advisor.

ExpertMACD standard....

 

https://www.mql5.com/ru/forum/1111/page775#comment_234266

De la part d'utilisateurs ayant des notes faibles, apparemment les bogues ne sont pas pertinents). Même chose dans la nouvelle construction.

OrderCalcProfit(ORDER_TYPE_BUY, "USDJPY", 0.01, 0.01, 0.02, profit_USDJPY_1 ) ;

OrderCalcProfit(ORDER_TYPE_BUY, "USDJPY", 0.01, 200.01, 200.02, profit_USDJPY_2 ) ;


Print("profit_USDJPY_1=", profit_USDJPY_1 ," profit_USDJPY_2=", profit_USDJPY_2 ) ;

(EURUSD,M15) profit_USDJPY_1=500.0 profit_USDJPY_2=0.05

Dans la variante croisée, cela fonctionne bien.

 

Quels dossiers doivent être nettoyés (suppression des journaux, ...etc.) pour libérer de l'espace dans le répertoire du terminal. - bien sûr laisser les scripts, indicateurs, hiboux) pour libérer de l'espace dans le répertoire du terminal ? En testant et optimisant les Expert Advisors, le répertoire du terminal est devenu 80 Gigs... Il est temps de le nettoyer.

Idéalement, nous devrions créer quelque chose de similaire à 4 - le fichier clear.bat (efface tout ce qui est superflu, y compris l'historique des cotations pour les symboles, nettoie les journaux et le met en conformité avec la version d'installation, bien sûr, tout en laissant les scripts, les indicateurs et les Expert Advisors).

Le cas échéant, pouvez-vous me donner un lien vers la description des dossiers de MT5 ?

Je peux le chercher moi-même et nettoyer le contenu des dossiers manuellement, mais de la même manière je peux écrire le même fichier batch pour MT5, juste au cas où il y aurait quelque chose de similaire...

Merci.

Dossiers :
clear.zip  1 kb
 
R0MAN:

Quels dossiers doivent être nettoyés (suppression des journaux, ...etc.) pour libérer de l'espace dans le répertoire du terminal. - bien sûr laisser les scripts, indicateurs, hiboux) pour libérer de l'espace dans le répertoire du terminal ? En testant et optimisant les Expert Advisors, le répertoire du terminal est devenu 80 Gigs... Il est temps de le nettoyer.

Idéalement, nous devrions créer quelque chose de similaire à 4 - le fichier clear.bat (efface tout ce qui est superflu, y compris l'historique des cotations pour les symboles, nettoie les journaux et le met en conformité avec la version d'installation, bien sûr, tout en laissant les scripts, les indicateurs et les Expert Advisors).

Le cas échéant, pouvez-vous me donner un lien vers la description des dossiers de MT5 ?

Je peux le chercher moi-même et nettoyer le contenu des dossiers manuellement, mais de la même manière je peux écrire les batniches pour MT5, juste au cas où il y aurait quelque chose de similaire...

Merci.


Aide de MetaTrader 5 → Démarrage → Structure des répertoires et des fichiers

 
WWer:

Aide de MetaTrader 5 → Démarrage → Structure des répertoires et des fichiers

Merci. Je vais le lire...