Test des "CopyTicks". - page 21

 
Network 'xxx': authorized on Alpari-MT5 through mt5.nl.3 (ping: 64.15 ms)

Sur le marketwatch Alpari, presque vide, le copitix freine tout autant que sur BCS.

Sur Robo, tout est plus d'un ordre de grandeur plus rapide.

 

Résultats sur USDCHF M1, CalcLength de l'indicateur https://www.mql5.com/ru/code/16537 :

  • RoboForexEU - 23 ms (la coupe n'est pas dans l'émission, seulement bid/ask)
  • MetaQuotes-Demo - 15-30 ms (il y a une tasse avec des volumes dans la diffusion)


Les résultats sont constamment fluctuants + la règle du fil unique n'est pas respectée - sur l'un des flux sans le pick and mix pour CopyTicks, sur l'autre avec le pick. La démo n'est pas ouverte sur BCS, mais l'essentiel est qu'il n'y a pas de stacks sur RoboForex.

Code de mesure étrange. Beaucoup de choses inutiles ont été mesurées, mais pas le temps de demande de CopyTicks :

virtual void Visual( void ) const
  {
    const ulong StartTime = ::GetMicrosecondCount();

    int X0;
    int Y0;

    BARS bars(this.Chart);

    TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0);

    this.SetProperty(::OBJPROP_XDISTANCE, X0);
    this.SetProperty(::OBJPROP_YDISTANCE, Y0);

    TicksPicture.Fill(ColorBid, ::BID);
    TicksPicture.Fill(ColorAsk, ::ASK);
    TicksPicture.Fill(ColorSpread, ::AVG);

    TicksPicture.SendToResource(this.Resource);

    ::Comment("LastCalcTime = " + (string)::TimeLocal() +
              ", Ticks = " + (string)bars.GetAmountTicks() +
              ", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms.");

    ::ChartRedraw(this.Chart);

    return;
  }

Dans tous les cas, nous optimisons l'appel pour copier les ticks. Il en faut beaucoup.
Тиковый индикатор Ticks
Тиковый индикатор Ticks
  • votes : 15
  • 2016.10.14
  • //www.mql5.com/ru/users/fxsaber">
  • www.mql5.com
Показывает тиковую ценовую историю (Bid/Ask) внутри всех видимых баров.
 
Renat Fatkhullin:

Résultats sur USDCHF M1, CalcLength de l'indicateur https://www.mql5.com/ru/code/16537 :

  • RoboForexEU - 23 ms (pas de pile dans la diffusion, seulement bid/ask)
  • MetaQuotes-Demo - 15-30 ms (il y a une tasse avec des volumes dans la diffusion)

Problèmes sur Alpari Real et BCS Real. Il est très facile d'ouvrir le vrai

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Statistiques de slippage des ordres à cours limité à la bourse

pivomoe, 2016.08.25 15:15

Commencez à faire un compte démo mt5 avec bx. Vous recevrez un courriel contenant un lien vers la distribution. Au stade de la sélection du serveur, ne choisissez pas un serveur de démonstration, mais un serveur pour le trading réel. Créez un compte avec des données arbitraires. Créez un certificat. Vous disposez d'un compte réel avec un solde nul, avec des cotations et un historique réels.


Les résultats sont constamment flottants + la règle des threads uniques n'est pas respectée - sur l'un sans pile les threads (où il n'y a pas besoin de faire des sélections et des fusions pour CopyTicks), sur l'autre avec pile. La démo ne s'ouvre pas sur BCS, mais le principal est qu'il n'y a pas de flux sur Roboforex.

Code de mesure bizarre. J'ai mesuré un tas de choses supplémentaires, mais en aucun cas le timing de la demande de CopyTicks :

Ce n'est pas moi qui décide. Tout est mesuré ensemble. La seule différence est le serveur de commerce. Les freins sont donc uniquement liés aux CopyTicks.

Dans tous les cas, l'appel copyTicks est optimisé. Il en faut beaucoup.

Copyix, dans sa forme actuelle, est très peu pratique. Par exemple, il n'est absolument pas clair comment obtenir la tique qui était avant de.

Pourquoi ne pouvons-nous pas retourner l'index du tableau de base et travailler avec la base comme avec un tableau ? Il est préférable de laisser à l'utilisateur le soin d'ajouter de nouvelles données à la base de données. Laissez-le s'en occuper lui-même, si quelque chose ne va pas. Actuellement, travailler avec Copyix est, eh bien, très peu pratique. Je semble être l'une des rares personnes à l'utiliser très activement. Et je peux en parler de façon tout à fait responsable.

 
Renat Fatkhullin:

Résultats sur USDCHF M1, CalcLength de l'indicateur https://www.mql5.com/ru/code/16537 :

  • RoboForexEU - 23 ms (pas de statut dans l'émission, seulement bid/ask)
  • MetaQuotes-Demo - 15-30 ms (il y a une tasse avec des volumes dans la diffusion)


Les résultats fluctuent constamment + la règle du fil unique n'est pas respectée - il y a des fils sans pic et des fusions pour CopyTicks sur l'un d'eux, sur l'autre avec le pic. Sur BCS, la démo ne s'ouvre pas, mais le principal est que sur RoboForex, il n'y a pas de pile.

Code de mesure étrange. J'ai mesuré un tas de choses inutiles, mais en aucun cas le temps de demande de CopyTicks :

virtual void Visual( void ) const
  {
    const ulong StartTime = ::GetMicrosecondCount();

    int X0;
    int Y0;

    BARS bars(this.Chart);

    TICKSPICTURE TicksPicture(this.Chart, &bars, X0, Y0);

    this.SetProperty(::OBJPROP_XDISTANCE, X0);
    this.SetProperty(::OBJPROP_YDISTANCE, Y0);

    TicksPicture.Fill(ColorBid, ::BID);
    TicksPicture.Fill(ColorAsk, ::ASK);
    TicksPicture.Fill(ColorSpread, ::AVG);

    TicksPicture.SendToResource(this.Resource);

    ::Comment("LastCalcTime = " + (string)::TimeLocal() +
              ", Ticks = " + (string)bars.GetAmountTicks() +
              ", CalcLength = " + (string)((::GetMicrosecondCount() - StartTime) / THOUSAND) + " ms.");

    ::ChartRedraw(this.Chart);

    return;
  }

Dans tous les cas, nous optimisons l'appel pour copier les ticks. Il en faut beaucoup.

Veuillez préciser ce que vous entendez par "fil unique".

Autre question, pour que les ticks arrivent le plus vite possible, il faut que la coupe ne soit pas ouverte dans le terminal et qu'il n'y ait pas de souscription à l'événement de mise à jour de la coupe depuis l'EA/indicateur ?

De la référence :

Vitesse de sortie : le terminal stocke pour chaque symbole 4096 ticks récents dans le cache à accès rapide (65536 ticks pour les symboles avec la pile en cours), les requêtes sur ces données sont les plus rapides.

Encore une fois, pour un accès rapide, le pari doit-il être caché et il ne doit pas y avoir d'abonnement pour mettre à jour le pari par symbole ? Ou est-ce que le fait d'avoir une pile (cachée/ouverte) est déjà une garantie de ralentissement ?
 
Alexey Kozitsyn:

Veuillez préciser ce que vous entendez par "flux unique" ?

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie

Test des "CopyTicks".

fxsaber, 2016.10.13 10:18

Il y a une nuance MT avec les tiques où l'historique des tiques lui-même est écrasé rétroactivement en raison des multiples sources de tiques reçues.


 
fxsaber:
Merci, mais savez-vous ce qu'il en est du verre et de la vitesse de réception ?
 
Alexey Kozitsyn:
Merci, mais savez-vous ce qu'il en est du verre et de la vitesse de réception ?
Non, malheureusement. Renat a affirmé que le tumblr est en streaming constant pour l'ensemble du marketwatch. Mais ce n'est pas une solution rapide (gaspillage) pour la plupart des situations.
 
fxsaber:
Non, malheureusement. Renat a fait valoir que le verre est définitivement rationalisé pour l'ensemble de la surveillance du marché. Mais ce n'est pas une solution appropriée pour la plupart des situations.
Il serait plus logique d'avoir sa propre tasse par symbole.
 

C'est ainsi que vous devriez tester CopyTicks :

MqlTick ExtArr[2048];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   ulong from   =(TimeTradeServer()-1200)*1000;
   ulong ticks  =GetMicrosecondCount();
   int   records=CopyTicks(_Symbol,ExtArr,COPY_TICKS_INFO,from,2048);

   ticks=GetMicrosecondCount()-ticks;
   Print("Time: ",ticks," msc for ",records," records");
  }

Voici le résultat en microsecondes : 95 microsecondes par échantillon de 2048 ticks INFO sur les 20 dernières minutes.

2016.10.18 14:15:38.673 TEST (USDCHF,M1)        Time: 95 msc for 1206 records
C'est radicalement différent des dizaines de millisecondes que vous prétendez. C'est parce que vous n'avez pas mesuré les CopyTicks.
 
Alexey Kozitsyn:

Veuillez préciser ce que vous entendez par "fil unique".

Le flux bid/ask et le flux complet avec les volumes et les derniers prix négociés sont deux grandes différences.

De grandes différences cardinales.


Une autre question, pour que les ticks arrivent le plus vite possible, il faut que le verre ne soit pas ouvert dans le terminal et qu'il n'y ait pas d'abonnement à l'événement de mise à jour du verre depuis l'Expert Advisor/Indicator ?

L'ouverture dans le terminal ou l'abonnement dans l'EA n'a pas d'importance.

Si le symbole est dans marketwatch, alors le terminal reçoit tout le flux de tick complet avec les enjeux sans condition.


Mais surtout, les calculs de fréquence d'échantillonnage ci-dessus ne sont pas pertinents. Ils sont si maladroitement réalisés (tout sauf le temps de CopyTicks est mesuré) que c'en est même surprenant.