初学者的问题 MQL5 MT5 MetaTrader 5 - 页 928

 
Juer:

什么共享文件夹?我根本不使用它。我总是以便携式模式开始。我把所有东西都放在安装文件夹里。

针对交易者的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 - 计算机中安装的所有客户终端的公共文件夹。

三个终端的例子(其中一个是用/便携开关启动的)。

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

共享的文件夹:FILE_COMMON。搜索,阅读。思考。

为什么我在测试器中使用同一个文件时出现错误5004,但在真实数据上调试时却一切正常?

 
Juer:

还有,为什么我用同一个文件在测试器中得到错误5004,而用真实数据调试却没有问题?

你没有提供完整的情况。你必须把你的信息钳制出来。

试着聪明地描述情况。提供一个可以被启动的代码。

 

使用FILE_COMMON,在真实数据和测试器中都能无误通过。

 

请告诉我如何在不使用OrderCalcMargin 的情况下计算每批成本?

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

警报(l)。

因为我的函数返回错误

 
Fast528:

我需要该指标在图表上 显示进入/退出的位置,并在它们之间画一条线,例如在今天减去1天的时间段内,就像通常在指标或机器人中做的那样?

我不明白原始问题和线条之间有什么联系。今天减去1天,可以用几种方式设定。还是不同的问题?
 
Alexey Viktorov:
我不明白原来的问题和台词之间有什么联系。今天减去1天可以分配几个选项。或者问题是不同的?

你问时间变量是干什么用的? 这里看一下如何设置 "服务器日期 "减去1-2天的计算方法

因此,当然有一个问题,完成结构的这两个选项之间有什么区别。

MqlDateTime dt;
TimeTradeServer(dt);

и

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

你问时间变量是干什么用的? 这里看一下如何设置 "服务器日期 "减去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
我做错了什么?