初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 928

 
Juer:

共有フォルダーとは?全く使っていません。私はいつも携帯モードで起動します。インストールフォルダにあるものはすべて揃っています。

LifeHack for Traderの 記事:いくつかのテストの比較レポート

***以下は、簡単な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));
  }
//+------------------------------------------------------------------+

このスクリプトは、3つのパラメータを出力する。

  • TERMINAL_PATH - ターミナルの起動元フォルダ.
  • TERMINAL_DATA_PATH - 端末データが格納されるフォルダ.
  • TERMINAL_COMMONDATA_PATH - コンピュータにインストールされているすべてのクライアントターミナルの共通フォルダー

3端末(うち1端末は/Portable switchで起動)の場合の例。

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

また、実データでのデバッグはOKなのに、同じファイルを使ったテスターでは5004のエラーが出るのはなぜですか?

全体像が見えない。自分の中から情報を挟み込むのです。

状況を分かりやすく説明するようにする。STARTできるCODEを提供する。

 

FILE_COMMONでは、実データとテスターの両方でエラーなく通過します。

 

OrderCalcMarginを使用 せずに、ロットあたりのコストを計算する方法を教えてください。

bool l=OrderCalcMargin(ORDER_TYPE_BUY,Symbol(),Lts,SymbolInfoDouble(Symbol(),SYMBOL_ASK),Margin).となります。

アラート(l)。

私の関数はfalseを返すので

 
Fast528:

インジケーターや ロボットで通常行われるように、例えば今日から1日を引いた期間で、チャート上に エントリーポジションとイグジットポジションを表示し、それらの間に線を引くようなインジケーターが 必要なのですが。

元の質問とセリフのつながりがよくわかりません。今日からマイナス1日」は、いくつかの方法で設定することができます。
 
Alexey Viktorov:
元の質問とセリフのつながりがよくわからない。今日からマイナス1日は、いくつかのオプションで割り当てることができます。 または質問は違うのですか?

time変数が何のためにあるのか、というご質問ですが、ここでは「サーバーの日付」から1〜2日引いた値を計算するように設定する方法を見ています。

という疑問があり、「Structure」を完成させるために、この2つのオプションはどう違うのか?

MqlDateTime dt;
TimeTradeServer(dt);

и

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

time変数が何のためにあるのか、というご質問ですが、ここでは「サーバーの日付」から1〜2日引いた値を計算するように設定する方法を見ています。

という疑問があり、構造を埋めるためのこの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
私は何を間違えているのだろう?
理由: