MT5の新バージョンはいつで、何が期待されているかはどこでわかりますか? - ページ 26

 

刻みの 深さの履歴をソフトウェアで判断する方法はありますか?

これを試した。

void OnStart()
  {
MqlTick ExTicks[];  
datetime tm=StringToTime("1971.01.01 00:00:00");
//--- вывод результата
ulong m=tm*1000; 
int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,m);
Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
 
  }

は2,000刻みで表示されます。ヘルプには、時間を指定しない場合は、2000個以上のダニを感染させない、と書かれています。時間はミリ秒単位で指定し、秒は1000倍する。

また、ヘルプでは、これが現在のセッションのティックであることを指定しています。では、過去のデータにはアクセスできないことが判明したのですか?

 
forexman77:

刻みの 深さの履歴をソフトウェアで判断する方法はありますか?

これを試した。

は2,000刻みで表示されます。ヘルプによると、時間を指定しない場合は、2000個以上のダニを送信しないとのことです。時間はミリ秒単位で指定し、秒は1000倍する。

また、ヘルプでは、これが現在のセッションのティックであることを指定しています。では、過去のデータにアクセスできないことが判明したのですか?

すべてのダニを取るか?:)

まず、あなたのコンピューターがこれだけの刻みを処理できるかどうかを確認します(もしあなたのコンピューターが焼き切れても、それは私の責任ではありません)。

//+------------------------------------------------------------------+
//|                                                CopyTicks_1_02.mq5|
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.031"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200000000000;  // количество запрашиваемых тиков
input datetime start=D'1971.01.01 23:59'; // с какой даты запрашивать тики
//---
MqlTick ExTicks[];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- запросим тики
   int copied=CopyTicks(_Symbol,ExTicks,COPY_TICKS_ALL,(ulong)start*1000,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   Print("Получено тиков: ",copied," код ошибки: ",GetLastError());
   if(copied>1)
     {
      Print("Тик: ",ExTicks[0].time," bid: ",ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Тик: ",ExTicks[copied-1].time," bid: ",ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");

      //datetime Start =D'2015.10.16 23:59';   // время наступления 2015 года
      //datetime End   =D'2015.10.19 00:02';   // время наступления 2015 года
      //for(int i=0;i<copied-1;i++)
      //   if(ExTicks[i].time>Start && ExTicks[i].time<End)
      //      Print("Тик: ",ExTicks[i].time," bid: ",ExTicks[i].bid," ask: ",ExTicks[i].ask," last: ",ExTicks[i].last," [i]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20," Mb");
  }
//+------------------------------------------------------------------+
ファイル:
 
Karputov Vladimir:

すべてのチックを取得したいですか?:)

まず、あなたのコンピューターがそれだけの刻みを処理できるかどうかを確認します(もしあなたのコンピューターが焼き切れても、それは私の責任ではありません)。

はい、私はどの日付からデータがあるか知る必要があります(つまり、実際のティックでテストを実行できるのはどの日付からか)。

また、コンピュータが照会するのに問題ない量は?燃え尽きるというのは大げさで、むしろフリーズする可能性が高い?

 
forexman77:

はい、私はどの日付からデータがあるのか(つまり、どの日付から実際のティックでテストを実行できるのか)を知る必要があります。

また、コンピュータが照会するのに問題ない量は?大げさに言うと、フリーズする可能性の方が高いのでは?

20000000000000 "の代わりに "20000 "と日付(1971年の任意の日付)を入れてください。とはいえ、スクリプトを複数回実行する必要がある可能性が非常に高いです。最初のリクエストでダウンロードした履歴をすべて初期化し(1971年以降の履歴を注文したため)、スクリプトが長時間応答しない場合は、利用可能なデータを与えるが、ダウンロードはさらに進むということです。そのため、2回目のリクエストでは、より深い歴史を示すことができます。
 
forexman77:

刻みの 深さの履歴をソフトウェアで判断する方法はありますか?

これを試した。

は2,000刻みで表示されます。ヘルプによると、時間を指定しない場合は、2000個以上のダニを送信しないとのことです。時間はミリ秒単位で指定し、秒は1000倍する。

また、ヘルプでは、これが現在のセッションのティックであることを指定しています。では、過去のデータにアクセスできないことが判明したのですか?

シンボルのすべてのティックが INT_MAX より大きい場合、返り値

CopyTicks関数は整数値です。そのため、部分的に入手する必要があります。

 
prostotrader:

1文字あたりの刻み数がINT_MAXより大きい場合、すべての刻み数を取得することはできませんが、戻り値として

のCopyTicks関数はintegerです。そのため、パーツで揃える必要があります。

しかし、20000(20,000)ティックを要求するだけで、ティックの開始日を得ることができます。主な点は、この日にまだティックがなかったことを保証する開始日を指定し、1971がそれに最も適合していることです。
 
Karputov Vladimir:
とはいえ、20000(2万)個のティックを要求するだけで、ティックの開始日を知ることは可能です。要は、この日にまだティックがなかったことを保証する開始日を指定するわけで、1971年が最良の方法です。

多くのデータを要求され、本当に強いブレーキがかかるようになった。

2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Size 2826 Mb
2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Тик: 2016.05.25 16:54:25 bid: 1.11497 ask: 1.11505 last: 0.0 [56999999]
2016.08.21 22:24:03.918 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:45:44 bid: 1.08206 ask: 1.08236 last: 0.0 [0]
2016.08.21 22:24:03.903 CopyTicks (EURUSD,H1)   Получено тиков: 57000000 код ошибки: 0

私のタスクでは、100ティックで十分です。とにかくありがとうございました。

2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Size 0 Mb
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:46:01 bid: 1.08206 ask: 1.08236 last: 1.08215 [99]
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Тик: 2016.01.13 09:45:44 bid: 1.08206 ask: 1.08236 last: 0.0 [0]
2016.08.21 22:36:42.234 CopyTicks (EURUSD,H1)   Получено тиков: 100 код ошибки: 0
 
Renat Fatkhullin:
はい、カスタムチャートや独自のデータフィードは近日中に利用可能になります。

レナートさん、これらの機能についての最新情報はありますか?(どこかにあったらすみません。見つけられませんでした)。

レナートさん、これらの機能についての最新情報はありますか?(他の場所にあったらごめんなさい、見つけられませんでした)。

理由: