Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 928

 
Juer:

Какая ещё общая папка? Не использую вообще. Я всегда запускаю в режиме portable. У меня всё в папке установки.

Статья LifeHack для трейдера: Сравнительный отчет нескольких тестирований.

*** Вот пример простого скрипта Check_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));
  }
//+------------------------------------------------------------------+

Этот скрипт выводит три параметра:

  • TERMINAL_PATH — папка, из которой запущен терминал
  • TERMINAL_DATA_PATH — папка, в которой хранятся данные терминала
  • TERMINAL_COMMONDATA_PATH — общая папка всех клиентских терминалов, установленных на компьютере

Пример для трёх терминалов (один из них запущен с ключом /Portable):

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

Общая папка: FILE_COMMON. Ищем, читаем. ДУмаем.

А почему с тем же файлом я получаю ошибку 5004 в тестере, а при отладке на реальных данных всё нормально?

 
Juer:

А почему с тем же файлом я получаю ошибку 5004 в тестере, а при отладке на реальных данных всё нормально?

Вы не даёте полной картины. Из Вас приходится вытягивать клещами информацию.

Попытайтесь грамотно ОПИСАТЬ ситуацию. Предоставить КОД который можно ЗАПУСТИТЬ. 

 

С FILE_COMMON проходит без ошибки и на реалных данных, и в тестере.

 

Подскажите пожалуйста, как рассчитать стоимость одного лота без использования OrderCalcMargin?

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

     Alert(l);

а то у меня функция возвращает false

 
Fast528:

мне надо чтобы индикатор на графике отображал позиции входа/выхода и линию рисовал между ними,  на периоде Сегодня минус 1 день к примеру, как обычно делают в индикаторе или роботе?

Не понял какая связь меду изначальным вопросом и линиями. Сегодня минус 1 день можно назначить несколькими вариантами. или вопрос в другом?
 
Alexey Viktorov:
Не понял какая связь меду изначальным вопросом и линиями. Сегодня минус 1 день можно назначить несколькими вариантами. или вопрос в другом?

ты спросил для чего переменная time? вот смотрю как задать расчет "Дата сервера" минус 1-2 день

а так конечно  был вопрос и в чем разница тех двух вариантов заполнения Структуры, 

MqlDateTime dt;
TimeTradeServer(dt);

и

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

ты спросил для чего переменная time? вот смотрю как задать расчет "Дата сервера" минус 1-2 день

а так конечно  был вопрос и в чем разница тех двух вариантов заполнения Структуры, 

Ну, если только заполнение структуры, то вряд-ли будет какая-то разница.

А зачем определять время сервера через время локального компьютера? Чем не нравится TimeCurrent() и от него плясать?

 
С TimeTradeServer на выходных удобней экспериментировать с диапазонами торговли
 

Код

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

Даёт такой результат:

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
Что я делаю не так?
Причина обращения: