Question sur le conseiller multi-devises - page 6

 

Eh bien, ce n'est pas la plainte ici.

C'est comme si vous aviez vu les règles pour la première fois. .... Cette question a déjà été discutée - dans les premiers fils du championnat - voir la page d'accueil

 

Je suis en train de tester et d'optimiser mon Expert Advisor sur l'historique de Metaquotes. Au début, j'ai travaillé avec le build 208 (installation pour Alpari) - j'ai besoin de contre-points, mais le 209 ne les a pas. Plus tard j'ai testé l'Expert Advisor avec les mêmes paramètres et sur le même historique téléchargé depuis Metaquotes de la même manière dans le build 209 (installation par Metaquotes). Les résultats sont très différents. De même, le nombre de barres dans l'historique et la quantité de ticks simulés sont différents, même si les tests sont de la même qualité. S'il vous plaît, dites-moi la raison de l'algorithme de fonctionnement différent des builds 208 et 209 ou peut-être est-ce à cause des paramètres des symboles (spread, swap, dépôt, niveaux de stop, etc.) dans un cas ce sont ceux d'Alpari, dans l'autre - ceux de Metakvotes ? Ou la raison est autre ? Et comment faire pour tester et optimiser correctement les données de Metakvotes - histoire d'avoir une 208 build d'Alpari ? Où puis-je télécharger la version 208 (installation de Metakvotes) ?

J'ai téléchargé l'historique en utilisant la recette de Renat "Automated Trading Championship 2007 : Common Errors in EAs" et j'ai précédemment supprimé tous les fichiers .hst.

Rapport du testeur de stratégie
travailleur
MetaQuotes-Demo (Build 208)


Symbole EURUSD (Euro contre Dollar US)
Période 15 Minutes (M15) 1999.01.05 13:00 - 2007.09.07 22:45
Modèle Tous les ticks (basés sur toutes les plus petites périodes disponibles avec interpolation fractale de chaque tick)
Paramètres
Les bars dans l'histoire 215177 Tiques modélisées 13375536 Qualité de la modélisation 89.96%
Dépôt initial 10000.00
Bénéfice net 3484.57 Bénéfice total 14828.81 Perte totale -11344.24
Rentabilité 1.31 Gain attendu 7.20
Dégradation absolue 896.44 Abaissement maximal 1255.96 (12.12%) Abattement relatif 12.12% (1255.96)
Total des transactions 484 Positions courtes (% de gain) 249 (47.79%) Positions longues (% de gain) 235 (52.77%)
Transactions rentables (% de toutes) 243 (50.21%) Transactions à perte (% de toutes) 241 (49.79%)
Le plus grand commerce profitable 426.34 accord perdant -99.96
Moyenne opération rentable 61.02 commerce perdant -47.07
Nombre maximal gains continus (profit) 6 (466.42) Pertes continues (perte) 7 (-275.39)
Maximum Profit continu (nombre de victoires) 653.20 (4) Perte continue (nombre de pertes) -286.62 (3)
Moyenne gains continus 2 Perte continue 2

Rapport du testeur de stratégie
travailleur
MetaQuotes-Demo (Build 209)


Symbole EURUSD (Euro contre Dollar US)
Période 15 Minutes (M15) 1999.01.05 13:00 - 2007.09.07 22:45 (1970.01.01 - 2007.09.08)
Modèle Tous les ticks (basés sur toutes les plus petites périodes disponibles avec interpolation fractale de chaque tick)
Paramètres
Les bars dans l'histoire 215437 Tiques modélisées 15419309 Qualité de la modélisation 89.96%
Dépôt initial 10000.00
Bénéfice net 1882.77 Bénéfice total 13653.61 Perte totale -11770.84
Rentabilité 1.16 Gain attendu 3.82
Dégradation absolue 896.21 Abaissement maximal 1331.85 (12.52%) Abattement relatif 12.52% (1331.85)
Total des transactions 493 Positions courtes (% de gain) 263 (48.67%) Positions longues (% de gain) 230 (51.30%)
Transactions rentables (% de toutes) 246 (49.90%) Transactions à perte (% de toutes) 247 (50.10%)
Le plus grand commerce profitable 426.34 accord perdant -99.96
Moyenne opération rentable 55.50 commerce perdant -47.66
Maximum gains continus (profit) 6 (466.42) Pertes continues (perte) 7 (-275.39)
Maximum Profit continu (nombre de victoires) 522.72 (3) Perte continue (nombre de pertes) -318.74 (5)
Moyenne gains continus 2 Perte continue 2

 

Apparemment, c'est le flux de citations lui-même. Par exemple, les prix d'ouverture/fermeture des différentes versions historiques sont légèrement différents et le mouvement des prix dans une barre sera donc modélisé de manière légèrement différente ! Et avec des arrêts =40/50, cela aura déjà un impact.

De plus, ce n'est pas très clair - avez-vous fait le test les deux fois sur mt4 Alpari ? (Avec des citations différentes).

Ou la deuxième fois en utilisant mt4 MQ ? Peut-être que les écarts sont différents là-bas. Et pour 500 transactions - déjà 1 pip est "-500".

Et les échanges sont les mêmes...

 
rid:

Apparemment, c'est l'alimentation en prix elle-même. Par exemple, les prix d'ouverture/fermeture des différentes versions historiques sont légèrement différents et donc le mouvement du prix dans la barre sera modélisé légèrement différemment ! Et avec des stops =40/50, cela aura déjà un impact.

De plus, ce n'est pas très clair - avez-vous fait le test les deux fois sur mt4 Alpari ? (Avec des citations différentes).

Ou la deuxième fois en utilisant mt4 MQ ? Peut-être que les écarts sont différents là-bas. Et pour 500 transactions - déjà 1 pip est "-500".

Et les échanges sont les mêmes...


Quel est l'argumentaire ici ? Les citations sont téléchargées sur les deux terminaux à partir du centre d'histoire de Metacvotecs. Le premier terminal a été créé à partir de l'installation Alpari (build 208), le second à partir de l'installation Metakvotes (build 209). Tous deux ont à leur tour été connectés à un compte test (délivré par Metakvotes pour participer au championnat) et les citations ont été téléchargées selon la recette de Renat. Les quelque 300 premières transactions vont presque 1:1 (ce qui confirme l'identité des cotations, des spreads, des swaps...), puis différemment (voir les relevés). La qualité de la modélisation est étonnamment la même :(

Autre chose surprenante : le conseiller expert n'est pas complexe, il n'utilise qu'un seul indicateur intégré et affiche des résultats 2 à 3 fois meilleurs sur les données Alpari que sur les données du Metakvotes History Center. Et aucune optimisation ne lui permet de se rapprocher des résultats d'Alpari. Ceci malgré le fait que lorsque l'on négocie avec un lot constant de 0,1 MOL environ 35, PF = 2,5, les transactions durent parfois plusieurs jours, c'est-à-dire que TS n'est clairement pas scalper / scalper.

Dossiers :
test.zip  278 kb
 

Une autre chose que je peux deviner est ceci.

J'ai également eu des problèmes avec l'historique, lorsque j'ai connecté un terminal MT4 à différents DCs. Au début, tout semblait aller bien. Et puis j'ai dû cliquer quelque part et des morceaux de l'histoire d'une société de courtage (pour une seule et même paire) ont commencé à se glisser dans l'histoire d'une autre société. Ou les morceaux ont commencé à tomber complètement. Enfin, tout s'est tellement embrouillé que je refuse d'ouvrir des comptes de différentes sociétés de courtage sur un seul terminal.

Maintenant, j'ai quatre comptes Mt4 dans mon copm provenant de différentes sociétés de courtage, mais j'ai réglé le problème avec cette pagaille ! Essayez de le faire de la même manière.

P.S. J'ai aussi remarqué. Il existe une société de courtage Masterforex (ne considérez pas cela comme une publicité - je le dis simplement...) . Donc avec ses cotations, mes EAs pour une raison quelconque montrent d'excellents résultats sur l'historique. Mais sur Lite ou Alpari - avec les mêmes paramètres et la même qualité - un peu moins bien.

 
rid:

Une autre chose que je peux deviner est ceci.

J'ai également eu des problèmes avec l'historique, lorsque j'ai connecté un terminal MT4 à différents DCs. Au début, tout semblait aller bien. Et puis j'ai dû cliquer quelque part et des morceaux de l'histoire d'une société de courtage (pour une seule et même paire) ont commencé à se glisser dans l'histoire d'une autre société. Ou les morceaux ont commencé à tomber complètement. Enfin, tout s'est tellement embrouillé que je refuse d'ouvrir des comptes de différentes sociétés de courtage sur un seul terminal.

Maintenant, j'ai quatre comptes Mt4 dans mon copm provenant de différentes sociétés de courtage, mais j'ai réglé le problème avec cette pagaille ! Essayez d'en faire autant.


Merci, mais je suis conscient de ce problème. J'ai écrit plus haut que j'ai pris des installations propres, que je les ai installées, que j'ai supprimé tous les fichiers .hst, que j'ai connecté chacun des deux terminaux à un seul compte émis par Metacvotes, que j' ai supprimé tous les autres terminaux du dossier de configuration, afin qu'il ne puisse y avoir aucune confusion et que les morceaux d'histoire étrangers n'aient nulle part où aller. Et purement le terminal de test Alpari, sur lequel j'ai obtenu des résultats 2-3 fois meilleurs plus tôt, ne s'est jamais connecté à aucune société de courtage ni à aucun compte. Il est chargé avec les fichiers .hst d'Alpari.
 
La question reste de savoir pourquoi la même qualité de simulation est donnée pour différents nombres de barres et de ticks simulés ? Et aussi, où est la garantie que le dossier de téléchargement avec un plus grand volume d'histoire sans omissions ? Il s'avère que, l'évaluation quantitative de la qualité de la simulation donnée par le testeur ne peut être fiable ?
 

Vous ne pouvez faire confiance à personne !

Je ne pense pas que le testeur réagisse au nombre de barres.

Quant à l'évaluation de la qualité, on constate que la quantité de qualité est évaluée par les critères suivants : - Dans quelle mesure l'intervalle de temps testé est rempli par les cotations en minutes qu'il contient. S'il est plein, alors =90%. S'il n'est pas complètement rempli, la qualité est moindre.

Mais j'ai des baisses inexplicables des cotations (de septembre à octobre/novembre 2006) pour toutes les TF dans Fuy et Kiwi (au chargement). Mais le testeur ne le remarque pas et donne =90%, car toutes les autres barres de n'importe quelle période sont complètement remplies de minutes.

Et le fait que les barres manquent - le testeur ne voit pas.

Peut-être qu'il vous manque une semaine ou deux d'histoire quelque part. D'où la différence.

Z

 

La question d'un conseiller expert multi-devises est revenue sur le tapis. Il est nécessaire de faire fonctionner l'une des paires en mode prix ouvert ! J'ai trouvé un exemple d'une telle conception dans les articles. Je l'ai d'abord collé dans la version unique. Tout a fonctionné.

int start()
//ждем открытия нового бара. Если появл. новый бар - проверяем возможность сделки
 {if(Time[0] == prevtime) 
       return(0);
   prevtime = Time[0];

Je l'ai ensuite inséré dans mon Expert Advisor multi-devises de la même manière. Et toutes les paires ont fonctionné avec les prix d'ouverture. Mais je n'ai pas besoin de tous ces éléments. Il ne m'en faut qu'une - la deuxième paire. Je l'ai fait comme ça :

J'ai déclaré dans le global - static int prevtime = 0 ;

ЗАДАЕМ ВНЕШНИЕ ПАРАМЕТРЫ ПО КАЖДОЙ ПАРЕ
 static int prevtime = 0;
int init()
  {
   return(0);
  }
int deinit()
  {
   return(0);
  }
 
int start()
  {  
 int Orders=OrdersTotal ();     //получаем кол-во открытых ордеров
if (Orders<3)                 //если  открытых ордеров <3
  { 
if (выключатель 1 вкл) {РАСЧЕТ ИНДЮКОВ И ОТКРЫВАЕМ ПЕРВУЮ ПАРУ } 
if (выключатель 2 вкл) 
{
if(Time[0] == prevtime) 
       return(0);
   prevtime = Time[0]; 
 
РАСЧЕТ ИНДЮКОВ И ОТКРЫВАЕМ ВТОРУЮ ПАРУ } 
  }
//========================================================================
for (int x=0; x<OrdersTotal(); x++)                                             {
    if (OrderSelect(x, SELECT_BY_POS, MODE_TRADES)) 
{       
if (UseTrailing 1) - ТРЕЙЛИНГ ПЕРВОЙ ПАРЫ
... ... ...
if (UseTrailing 2) - Трейлинг второй пары
}
//======================================================================
   return(0);
  }

En outre, après chaque billet de la deuxième paire inséré :

ticket=OrderSend("EURUSD", OP_BUY,Lots,_ask ,3,_bid-SL_long*_point,
                       _ask +TP_long*_point,"M_4",MagicEURUSD,0,CLR_NONE);
 
                        Sleep(30000);
                       if(ticket < 0)   {
                           prevtime = Time[1];
                         }

Rien ne marche ! L'EA continue à travailler par la deuxième paire à travers tous les ticks !

J'ai essayé une autre construction. J'en ai essayé un autre.

bool isNewBar=false;
if (ExpertBars !=Bars) {ExpertBars=Bars; isNewBar=true; }
//-------------------------------------------------------
 
if (isNewBar) {

Je fixe les variables à l'avance :

int         ExpertBars;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
ExpertBars = Bars;
//----------------
   return(0);

Mais .... Même histoire. Quand je le mets au début - toutes les paires fonctionnent par les prix d'ouverture. Mais lorsque je veux l'appliquer à une paire, cela ne fonctionne pas ! Je lutte pour le troisième jour.

Je serai heureux de recevoir des conseils et des recommandations.....

 
rid:
Les noms surlignés en rouge par ME font référence à l'instrument auquel l'EA est attaché. Essayez d'utiliser iTime() au lieu de Time[].
Raison: