Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Je vous rappelle que le résultat a été obtenu avec un simple Expert Advisor, qui ne consacre pratiquement pas de temps à une quelconque analyse et n'utilise pas d'indicateurs, c'est-à-dire que les résultats auraient été encore plus tristes avec un EA fonctionnel.
Je vous rappelle que le résultat a été obtenu avec un simple Expert Advisor, qui ne consacre pratiquement pas de temps à une quelconque analyse et n'utilise pas d'indicateurs, c'est-à-dire que les résultats auraient été encore plus tristes avec un EA fonctionnel.
À titre de comparaison :
L'exécution de ce test avec 10000 transactions sur une machine Windows 7, Intel Pentium Dual-Core E5400 @ 2.70 GHz, 2038 MB (PR111) a pris 472866ms.
À la lumière de ce qui précède, il y a une certaine probabilité que certains des candidats au Championnat 2010 aient pu être injustement disqualifiés en raison de la barrière des 15 minutes et des particularités du testeur (s'il y avait beaucoup d'affaires).
** - à plusieurs reprises, le testeur n'a pas réussi à afficher le graphique des symboles avec les transactions affichées à la fin du test.
Je n'ai pas été en mesure d'écrire un "simple EA" qui montrerait de tels résultats. Voici mon code :
Voici les résultats de l'optimisation, la colonne Résultat indique le temps d'exécution en millisecondes.
Je n'ai pas été capable d'écrire un "simple EA" qui montre ces résultats. Voici mon code :
Voici les résultats de l'optimisation, la colonne Résultat indique le temps d'exécution en millisecondes.
Intéressant...
Code EA à publier.
Le Conseiller Expert est basé sur le modèle de l'article Comment écrire rapidement un Conseiller Expert pour le Championnat de Trading Automatisé 2010.
La classe CExpertAdvisor est utilisée sans aucune modification. Peut-être est-ce un effet secondaire de l'utilisation des classes ? Les résultats des tests donnent l'impression que le ralentissement commence après le dépassement d'un certain seuil. Peut-être s'agit-il d'une table de transaction d'une taille limitée, après laquelle la réallocation de la mémoire / le ramassage des déchets commence à faire effet ?
PS. Une fois de plus, je tiens à vous rappeler que l'Expert Advisor utilise la fonctionnalité du compte Alpari-Demo (marge nulle), sinon le nombre de transactions peut changer.
Je n'ai pas été capable d'écrire un "simple EA" qui montre ces résultats. Voici mon code :
Voici les résultats de l'optimisation, la colonne Résultat indique le temps d'exécution en millisecondes.
Pas de problème non plus avec la sortie vers XLSX ?
Je n'ai pas été capable d'écrire un "simple EA" qui montre ces résultats. Voici mon code :
Voici les résultats de l'optimisation, la colonne Résultat indique le temps d'exécution en millisecondes.
Tableau - Résultat de l'optimiseur : déconnexion ? Un effet secondaire de l'exploitation forestière ?
Un EA basé sur le modèle de l'article Comment écrire un EA rapide pour le championnat de trading automatisé 2010.
La classe CExpertAdvisor est utilisée sans aucune modification. Peut-être est-ce un effet secondaire de l'utilisation des classes ? Les résultats des tests donnent l'impression que le ralentissement commence après le dépassement d'un certain seuil. Peut-être s'agit-il d'une table de transaction d'une taille limitée, après laquelle la réallocation de la mémoire / le ramassage des déchets commence à faire effet ?
PS. Une fois encore, je tiens à vous rappeler que le conseiller expert utilise une fonctionnalité du compte Alpari-Demo (marge nulle), sinon le nombre de transactions peut changer.
Cette classe contient la méthode GetDealByOrder(ulong order)
qui est appelé à chaque transaction. Ainsi, à chaque fois, l'ensemble de l'historique des transactions est examiné et l'on constate un ralentissement du temps de test qui est proportionnel au carré du nombre de transactions.
Il est préférable de ne pas utiliser de telles choses dans un conseiller expert qui doit être optimisé ou testé, car les pertes de temps sont inévitables. Il est préférable de remplacer ces appels de manière algorithmique pour ces cas.
Cette classe contient la méthode GetDealByOrder(ulong order)
qui est appelé à chaque transaction. En conséquence, à chaque fois, l'ensemble de l'historique des transactions est recherché et il y a un ralentissement du temps de test, proportionnel au carré du nombre de transactions.
Il vaut mieux ne pas utiliser de telles choses dans le conseiller expert qui doit être optimisé ou testé, car les pertes de temps sont inévitables. Il est préférable de remplacer ces appels de manière algorithmique pour ces cas.
C'est-à-dire que tous ceux qui ont utilisé le modèle du conseiller expert sont "affectés"...
Qu'en est-il de XLSX ? Cela n'a rien à voir avec le code du conseiller expert, n'est-ce pas ?
Cette classe contient la méthode GetDealByOrder(ulong order)
ulong CExpertAdvisor::GetDealByOrder(ulong order) // получение тикета сделки по тикету ордера
{
PositionSelect(m_smb);
HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER));
uint total=HistoryDealsTotal();
for(uint i=0; i<total; i++)
{
ulong deal=HistoryDealGetTicket(i);
if(order==HistoryDealGetInteger(deal,DEAL_ORDER))
return(deal); // запомнили тикет сделки
}
return(0);
}
qui est appelé à chaque transaction. Par conséquent, dans ce conseiller expert, dans ces conditions spécifiées, l'historique complet des transactions est recherché à chaque fois, et le temps de test qui est proportionnel au carré du nombre de transactions, est ralenti.
Il est préférable de ne pas utiliser ces éléments dans un conseiller expert qui doit être optimisé ou testé, car les pertes de temps sont inévitables. Il est préférable de remplacer ces appels de manière algorithmique pour ces cas.
HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER)) ;
Cette méthode permet-elle de rechercher dans l'ensemble de l'historique, et pas seulement dans la partie de l'historique associée à un poste ouvert? Si je n'ai pas plus de 5 transactions liées à une position ouverte, je pense qu'il est préférable d'utiliser HistorySelectByPosition plutôt que de parcourir l'historique complet HistorySelect(0,TimeCurrent());
P.S. CExpertAdvisor n'a pas regardé
HistorySelectByPosition(PositionGetInteger(POSITION_IDENTIFIER)) ;
Cette méthode permet-elle d'examiner l'ensemble de l'histoire, et pas seulement la partie de l'histoire qui est liée à une position ouverte ? Si je n'ai pas plus de 5 transactions liées à une position ouverte, je pense qu'il est préférable d'utiliser HistorySelectByPosition plutôt que de parcourir l'historique complet HistorySelect(0,TimeCurrent());
P.S. CExpertAdvisor n'a pas regardé
Dans ce cas, nous avons des milliers de transactions dans une position, et elles ont toutes le même identifiant de position POSITION_IDENTIFIER. Par conséquent, l'appel de HistorySelectByPosition dans ce cas est équivalent à l'appel deHistorySelect(0,TimeCurrent()), l'énumération de ces transactions conduit à une recherche de toutes les transactions de l'historique.
Disons qu 'un exemple malheureux d'utilisation du modèle de l'article a été fait. C'est comme dans l'histoire des hommes sibériens et des tronçonneuses japonaises.
Qu'en est-il de XLSX ? Le code EA a-t-il quelque chose à voir avec cela ?