MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1746

 
MakarFX #:

まず、確認すること。

第二に、ブローカーがそのような見積もり量を持っていない可能性があります。

いやいや、ちょっと真似して、1日から1年までの期間を試したんです。指定されたパラメータは最大値(10000000)です。

...

インジケータにデータを要求する際、要求されたタイムシリーズがまだビルドされていないか、サーバからダウンロードする必要がある場合、この関数は直ちに-1を返しますが、ダウンロード/ビルド処理自体は開始されます。

Expert Advisor またはスクリプトからデータを要求すると、端末がローカルにこれらのデータを持っていない場合はサーバーからの読み込みが 開始され、ローカル履歴からデータを構築できるがまだ準備ができていない場合は、必要な時系列の構築が開始されます。この関数は、タイムアウト時間までに準備できる量のデータを返しますが、履歴の読み込みは継続され、次の同様のリクエストではより多くのデータが返されます。

...


それは変ですね。ダウンロード自体はロードされていない履歴からコピーすれば行くと書いてありますが、、、。何も起こらない。4073エラー(繰り返すと再起動後にも発生)
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
Документация по MQL5: Доступ к таймсериям и индикаторам / Организация доступа к данным
  • www.mql5.com
Организация доступа к данным - Доступ к таймсериям и индикаторам - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ivan Butko #:

な、な、なんと、ちょっと真似して、1日~1年の期間を試したことがあるんです。指定されたパラメータは最大値(10000000)です。


不思議ですね。ロードされていない履歴からコピーすれば勝手にロードされるらしいが...。は何も起こりません。エラー4073
MT5ではMT4と同じではない
 
MakarFX #:
MT5ではMT4と同じではない


テキスト

...

インジケータにデータを要求する際、要求されたタイムシリーズがまだ構築されていないか、サーバからダウンロードする必要がある場合、この関数はすぐに-1を返しますが、ロード/構築プロセス自体は開始 されます。

Expert Advisor またはスクリプトからデータを要求すると、端末がローカルにこれらのデータを持って いない場合はサーバーからの読み込みが 開始され、ローカル履歴からデータを構築できるがまだ準備ができていない場合は、必要な時系列の構築が開始されます。この関数は、タイムアウト時間までに準備できる量のデータを返しますが、履歴の読み込みは継続され、次の同様のリクエストではより多くのデータが返されます。

...

MT4ハンドブックより引用
https://docs.mql4.com/ru/series/copytime

私の理解では、1回リクエストした後でも、履歴は
に読み込まれるはずです。
void OnStart()
  {
   datetime rates[1];
   int copied=CopyTime(Symbol(),PERIOD_CURRENT,16216,1,rates);
   if(copied<=0)
      Print("Ошибка копирования ценовых данных ",GetLastError());
   else Print("Скопировано ",ArraySize(rates)," баров");
  }
でも、読み込まない。1バーもない))
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
 
Ivan Butko #:


テキスト

MT4ハンドブックより引用
https://docs.mql4.com/ru/series/copytime

私の理解では、1回リクエストした後でも、履歴はダウンロードされるはずです
void OnStart()
  {
   datetime rates[1];
   int copied=CopyTime(Symbol(),PERIOD_CURRENT,16216,1,rates);
   if(copied<=0)
      Print("Ошибка копирования ценовых данных ",GetLastError());
   else Print("Скопировано ",ArraySize(rates)," баров");
  }
しかし、読み込みができない。1バーもない))

私が遭遇した限りでは、MT4はアーカイブから、MT5はブローカーのサーバーからロードします。

 
MakarFX #:

私が遭遇した限りでは、MT4はアーカイブからロードし、MT5はブローカーのサーバーからロードします。

彼らのアーカイブ」とはどういう意味ですか?

 
Ivan Butko #:

彼らのアーカイブ」とはどういう意味なのか、明らかにしてください。

 
MakarFX #:

あ~、なるほどね。なるほど。

えー、そのドキュメンテーションの入力が今、本当に面倒くさい

は、端末がローカルにこのデータを持って いない場合、サーバーのダウンロードを 開始します。


 

ごあいさつこのようなことが可能かどうか、またどのように可能かを教えていただけませんか?

関数に異なる数のパラメータを渡せるように書くことはできますか?

どのように、例えば、この関数では、4つまたは5つのパラメータを渡すことができます。


 
Andrey Sokolov #:

ごあいさつこのようなことが可能かどうか、またどのように可能かを教えていただけませんか?

関数に異なる数のパラメータを渡せるように書くことはできますか?

どのように、例えば、この関数では、4つまたは5つのパラメータを渡すことができます。


2.5通り。1) デフォルト値を持つパラメータを作る 2) 同じ名前で異なる引数を持つ関数を書く3)「テンプレート関数」を書く(1、2の両方を使う)

関数のユーザにとっては、関数が「4つか5つ」のパラメータを持つことや、パラメータが異なる型を取ることに似ています。

 
Maxim Kuznetsov #:

2.5通り。1) デフォルト値を持つパラメータを作る 2) 同じ名前で異なる引数を持つ関数を書く3)「テンプレート関数」を書く(1、2の両方を使う)

関数のユーザにとっては、関数に4つも5つもパラメータがあるように見えるでしょうし、パラメータが異なる型を取ることもあるでしょう。

ありがとうございます。

同じ名前の違う関数が判明。 しかも、違う数のパラメータを渡せるようにできないの?