MT5 et la vitesse en action - page 76

 
Renat Fatkhullin:

Allez étudier le sujet (pendant au moins 10 ans) et ne répandez pas vos déchets dans ce fil, s'il vous plaît.

Nous discutons ici de questions concernant une formation différente et une classe différente.

Chers collègues développeurs qui ont consacré la moitié de leur vie à l'étude du sujet en question.

Veuillez répondre à une simple question d'utilisateur.

Comment un terminal pourrait-il fonctionner plus rapidement et consommer moins de ressources s'il dispose de 99 Expert Advisors ?

1. Sur le même symbole

-Utilisation de OnTick et obtention des prix actuels via SymbolInfoTick

-en utilisant OnBookEvent et en obtenant les prix actuels via MarketBookGet

2. la même chose, mais sur des symboles différents

Merci !
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Приказы на проведение торговых операций оформляются ордерами. Каждый ордер имеет множество свойств для чтения, информацию по ним можно получать с помощью функций Идентификатор позиции, который ставится на ордере при его исполнении. Каждый исполненный ордер порождает сделку, которая открывает новую или изменяет уже существующую позицию...
 
Dmi3:

Chers collègues développeurs qui ont consacré la moitié de leur vie à l'étude du sujet en question.

Veuillez répondre à une simple question d'utilisateur.

Comment le terminal fonctionnerait-il plus rapidement et consommerait-il moins de ressources s'il comportait 99 Expert Advisors ?

1. Sur le même symbole

-Utilisation de OnTick et obtention des prix actuels via SymbolInfoTick

-en utilisant OnBookEvent et en obtenant les prix actuels via MarketBookGet

2. la même chose, mais sur des symboles différents.

Merci !

Qu'est-ce qui vous fait croire que c'est une question simple ?

Cher collègue, si vous êtes un développeur, vous devez tout vérifier vous-même. Ou vous pouvez commander une étude indépendante avec une description complète et détaillée de toutes les données d'entrée.

 
Dmi3:

Comment le terminal fonctionnerait-il plus rapidement et consommerait-il moins de ressources s'il contenait 99 EA ?

2. la même chose, mais sur des symboles différents

99 tumblers à diffuser, ce n'est pas une petite quantité de flux.

 
fxsaber:

99 verres à diffuser n'est pas un mince filet.

En fait, nous en avons une douzaine de vivants sur Forts, le reste est illiquide.
 
Dmi3:
En fait, nous en avons une douzaine de vivants sur Forts, le reste est illiquide.

Exécutez ce conseiller dans différentes configurations et voyez les résultats.

 
fxsaber:

Exécutez cette EA dans différentes configurations et voyez les résultats.

Voyons le résultat (Bild 2650, Open, Real)

2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 291655 mcs.
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   [0]  76595  76598    false        696
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   [1]  76596  76598     true     150488
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   [2]  76596  76598    false        323
2020.11.09 20:12:22.910 11_test (Si-12.20,M1)   [3]  76596  76598     true     291655
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 25571 mcs.
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   [0]  76595  76598    false        663
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   [1]  76595  76597     true      97445
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   [2]  76595  76597    false        334
2020.11.09 20:12:23.290 11_test (Si-12.20,M1)   [3]  76595  76597     true      25571
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 209232 mcs.
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   [0]  76593  76596    false        659
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   [1]  76594  76596     true      33395
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   [2]  76594  76596    false        343
2020.11.09 20:12:23.920 11_test (Si-12.20,M1)   [3]  76594  76596     true     209232
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 31365 mcs.
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   [0]  76594  76597    false        342
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   [1]  76594  76596     true      66980
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   [2]  76594  76596    false        662
2020.11.09 20:12:24.572 11_test (Si-12.20,M1)   [3]  76594  76596     true      31365
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   Alert: OnTick-lag! - 340874 mcs.
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)        [bid]  [ask] [onTick] [Interval]
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   [0]  76591  76593     true       6635
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   [1]  76591  76593     true          5
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   [2]  76591  76593    false        654
2020.11.09 20:12:25.137 11_test (Si-12.20,M1)   [3]  76591  76593     true     340874
 
prostotrader:

Voir le résultat (Bild 2650, Open, Real)

Il s'agit d'une comparaison incorrecte (l'impression le montre), car le code devrait être différent si des nageoires sont présentes.

 
fxsaber:

Il s'agit d'une comparaison incorrecte (vous pouvez le voir sur l'impression), car le code devrait être différent si des ailettes sont présentes.

Voici votre programme (je n'ai rien changé) :)

Ajouté

// Возвращает bid/ask-цены из стакана.
bool GetCurrentPrices( double &bid, double &ask )
{
  MqlBookInfo Bands[];

  const bool Res = MarketBookGet(_Symbol, Bands);

  if (Res)
    for (int i = ArraySize(Bands) - 2; i >= 0; i--)
      if (Bands[i].type == BOOK_TYPE_SELL)
      {
        ask = Bands[i].price;
        bid = Bands[i + 1].price;
        
        break;
      }
  
  return(Res);
}

Fonction incorrecte, car

1. le verre peut être vide

2. Il n'y a pas de cotation de Sell dans la coupe

3. la coupe ne contient pas de citations d'achat

 
prostotrader:

Une fonction incorrecte car

Pourquoi faites-vous une nuisance ? Il n'y a pas de gestion d'erreur ou autre. Le but de ce code n'est pas d'être dans l'EA, mais de montrer qu'il y a un problème.

prostotrader:

C'est votre programme (je n'ai rien changé) :).

Par conséquent, je connais tellement la logique de ce programme que je peux affirmer l'inexactitude de ses résultats sur FORTS.

 
fxsaber:

Pourquoi faites-vous une nuisance ? Il n'y a pas encore de gestion des erreurs ou quoi que ce soit. Le but de ce code n'est pas d'être dans un Expert Advisor de combat, mais de montrer la présence du problème.

C'est pourquoi je connais tellement la logique de ce programme que je peux affirmer que ses résultats sont incorrects sur FORTS.

Ok