Questions des débutants MQL5 MT5 MetaTrader 5 - page 928

 
Juer:

Quel dossier partagé ? Je ne l'utilise pas du tout. Je commence toujours en mode portable. J'ai tout dans le dossier d'installation.

LifeHack pour l' articleTrader : Rapport comparatif de plusieurs tests.

*** Voici un exemple de script simpleCheck_TerminalPaths.mq5:

//+------------------------------------------------------------------+
//|                                          Check_TerminalPaths.mq5 |
//|                        Copyright 2009, MetaQuotes Software Corp. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2009, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   Print("TERMINAL_PATH = ",TerminalInfoString(TERMINAL_PATH));
   Print("TERMINAL_DATA_PATH = ",TerminalInfoString(TERMINAL_DATA_PATH));
   Print("TERMINAL_COMMONDATA_PATH = ",TerminalInfoString(TERMINAL_COMMONDATA_PATH));
  }
//+------------------------------------------------------------------+

Ce script produit trois paramètres :

  • TERMINAL_PATH - dossier à partir duquel le terminal est lancé.
  • TERMINAL_DATA_PATH - dossier où sont stockées les données du terminal.
  • TERMINAL_COMMONDATA_PATH - le dossier commun de tous les terminaux clients installés sur l'ordinateur.

Exemple pour trois terminaux (l'un d'eux est démarré avec /Commutateur portatif) :

// Терминал запускается в основном режиме
TERMINAL_PATH 			= C:\Program Files\MetaTrader 5
TERMINAL_DATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

// Терминал запускается в основном режиме
TERMINAL_PATH 			= D:\MetaTrader 5 3
TERMINAL_DATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\0 C46DDCEB43080B0EC647E0C66170465
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

// Терминал запускается в режиме Portable
TERMINAL_PATH 			= D:\MetaTrader 5 5
TERMINAL_DATA_PATH 			= D:\MetaTrader 5 5
TERMINAL_COMMONDATA_PATH 			= C:\Users\KVN\AppData\Roaming\MetaQuotes\Terminal\Common

***

 
Vladimir Karputov:

Dossier partagé :FILE_COMMON. Cherchez, lisez. Penser.

Pourquoi est-ce que j'obtiens l'erreur 5004 dans le testeur avec le même fichier, mais quand je débogue sur des données réelles, tout va bien ?

 
Juer:

Et pourquoi est-ce que j'obtiens l'erreur 5004 dans le testeur avec le même fichier, alors que le débogage avec des données réelles est OK ?

Vous ne donnez pas une image complète. Vous devez pincer les informations pour les sortir de vous.

Essayez de décrire la situation de manière intelligente. Fournir un CODE qui peut être DÉMARRÉ.

 

Avec FILE_COMMON, il passe sans erreur tant sur les données réelles que dans le testeur.

 

Pouvez-vous me dire comment calculer le coût par lot sans utiliser OrderCalcMargin?

bool l=OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),Lts,SymbolInfoDouble(Symbol(),SYMBOL_ASK),Margin) ;

Alerte(l) ;

parce que ma fonction renvoie un faux

 
Fast528:

J'ai besoin que l'indicateur affiche les positions d'entrée/sortie sur le graphique et trace une ligne entre elles, sur une période d'aujourd'hui moins 1 jour par exemple, comme cela se fait habituellement dans un indicateur ou un robot ?

Je ne comprends pas quel est le lien entre la question originale et les lignes. Aujourd'hui moins 1 jour peut être défini de plusieurs façons. ou s'agit-il d'une autre question ?
 
Alexey Viktorov:
Je ne comprends pas le lien entre la question initiale et les lignes. Aujourd'hui moins 1 jour peut être attribué avec plusieurs options. ou la question est différente ?

vous avez demandé à quoi servait la variable de temps ? voici comment définir le calcul de la "date du serveur" moins 1-2 jours

et donc, bien sûr, il y avait une question et quelle est la différence entre ces deux options pour compléter la structure,

MqlDateTime dt;
TimeTradeServer(dt);

и

MqlDateTime tm;
TimeToStruct(TimeTradeServer(),tm);
 
Fast528:

vous avez demandé à quoi servait la variable de temps ? voici comment définir le calcul de la "date du serveur" moins 1-2 jours

et donc, bien sûr, il y avait une question et quelle est la différence entre ces deux options pour remplir la structure,

Eh bien, si ce n'est que pour remplir la structure, il est peu probable qu'il y ait une différence.

Et pourquoi déterminer l'heure du serveur par l'heure de l' ordinateur local? Pourquoi n'aimez-vous pas TimeCurrent() et ne l'utilisez-vous pas ?

 
AvecTimeTradeServer le week-end, il est plus pratique d'expérimenter les plages de trading.
 

Code

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for(int i=0;i<=21;i++)
     {
      Print("Timeframe: "+EnumToString((ENUM_TIMEFRAMES)i));
     }
  }

Donne ce résultat :

2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_CURRENT
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M1
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M2
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M3
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M4
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M5
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M6
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::7
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::8
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::9
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M10
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::11
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M12
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::13
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::14
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M15
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::16
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::17
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::18
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::19
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: PERIOD_M20
2018.09.17 00:59:59.716 CheckTF (EURUSD,H4)     Timeframe: ENUM_TIMEFRAMES::21
Qu'est-ce que je fais de mal ?
Raison: