Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 928

 
Juer:

Welcher gemeinsame Ordner? Ich benutze es überhaupt nicht. Ich beginne immer im portablen Modus. Ich habe alles in meinem Installationsordner.

LifeHack-Artikel für Gewerbetreibende: Vergleichender Bericht über mehrere Tests.

*** Hier ist ein Beispiel für ein einfaches SkriptCheck_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));
  }
//+------------------------------------------------------------------+

Dieses Skript gibt drei Parameter aus:

  • TERMINAL_PATH - Ordner, von dem aus das Terminal gestartet wird
  • TERMINAL_DATA_PATH - Ordner, in dem die Terminaldaten gespeichert werden
  • TERMINAL_COMMONDATA_PATH - der gemeinsame Ordner aller auf dem Computer installierten Client-Terminals

Beispiel für drei Terminals (eines davon wird mit /Portable switch gestartet):

// Терминал запускается в основном режиме
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:

Gemeinsamer Ordner:FILE_COMMON. Suchen, lesen. Nachdenken.

Warum erhalte ich im Testprogramm mit derselben Datei die Fehlermeldung 5004, aber bei der Fehlersuche mit echten Daten ist alles in Ordnung?

 
Juer:

Und warum erhalte ich Fehler 5004 im Tester mit der gleichen Datei, während das Debuggen mit echten Daten OK ist?

Sie geben nicht das ganze Bild wieder. Sie müssen die Informationen mit der Zange aus sich herausholen.

Versuchen Sie, die Situation verständlich zu beschreiben. Stellen Sie einen CODE zur Verfügung, der STARTEN kann.

 

Mit FILE_COMMON geht es sowohl bei echten Daten als auch im Testprogramm ohne Fehler.

 

Können Sie mir bitte sagen, wie ich die Kosten pro Los berechnen kann, ohne OrderCalcMargin zu verwenden?

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

Warnung(l);

weil meine Funktion false zurückgibt

 
Fast528:

Ich brauche den Indikator, um Einstiegs- und Ausstiegspositionen auf dem Diagramm anzuzeigen und eine Linie zwischen ihnen zu ziehen, zum Beispiel auf einer Periode von heute minus 1 Tag, wie es normalerweise in einem Indikator oder Roboter getan wird?

Ich verstehe nicht, was der Zusammenhang zwischen der ursprünglichen Frage und den Zeilen ist. Heute minus 1 Tag kann auf verschiedene Weise festgelegt werden. oder ist das eine andere Frage?
 
Alexey Viktorov:
Ich verstehe den Zusammenhang zwischen der ursprünglichen Frage und den Zeilen nicht. Heute minus 1 Tag kann mit mehreren Optionen zugeordnet werden. oder ist die Frage anders?

Sie haben gefragt, wozu die Zeitvariable dient? Hier sehen Sie, wie Sie die Berechnung des "Server-Datums" minus 1-2 Tage einstellen

und so stellte sich natürlich die Frage, was der Unterschied zwischen diesen beiden Optionen für die Vervollständigung der Struktur ist,

MqlDateTime dt;
TimeTradeServer(dt);

и

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

Sie haben gefragt, wozu die Zeitvariable dient? Hier sehen Sie, wie Sie die Berechnung des "Serverdatums" minus 1-2 Tage einstellen

und so stellte sich natürlich die Frage, was der Unterschied zwischen diesen beiden Optionen für die Befüllung der Struktur ist,

Nun, wenn es sich nur um das Auffüllen der Struktur handelt, ist es unwahrscheinlich, dass es einen Unterschied geben wird.

Und warum wird die Zeit des Servers durch die Zeit des lokalen Computers bestimmt? Warum mögen Sie TimeCurrent() nicht und verwenden es?

 
MitTimeTradeServer ist es am Wochenende bequemer, mit Handelsbereichen zu experimentieren
 

Code

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

Ergibt dieses Ergebnis:

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
Was mache ich falsch?
Grund der Beschwerde: