ダニの話 - ページ 19

 
Karputov Vladimir:

MqlTicks構造体の flagsフィールドには、しばしば "24"(表示モード "all ticks")の値が格納される。

- この値は何を意味するのでしょうか?

前のティックからデータが変化したかどうかにかかわらず、各ティックのすべてのパラメータが常に埋められます。これにより、ティック履歴で過去の値を調べることなく、常に任意の瞬間に現在の価格状況を把握することができます。例えば、ティックでは買値のみが変更されるかもしれませんが、構造には新しい価格に加えて、以前の売値、出来高など他のパラメータが含まれます。現在のティックでどのデータが変化したかを知るには、そのフラグを分析する。

  • TICK_FLAG_BID - 目盛りが買値を変更した。
  • TICK_FLAG_ASK - ティックがアスク価格を変更しました。
  • TICK_FLAG_LAST - チックによって最後の取引の価格が変更されました。
  • TICK_FLAG_VOLUME - ティックのボリュームが変更されました。
  • TICK_FLAG_BUY - 買い取引の結果、ティックが発生しました。
  • TICK_FLAG_SELL - 売りの取引でティックが発生しました。
Список изменений в билдах MetaTrader 5 Client Terminal
Список изменений в билдах MetaTrader 5 Client Terminal
  • www.mql5.com
Автоматическое обновление доступно через систему LiveUpdate:. - Страница 18 - Категория: общее обсуждение
 
Andrey Khatimlianskii:

OnInit()でこれらのコードを出力するEAを添付します。

   Print(TICK_FLAG_BID," - тик изменил цену бид");
   Print(TICK_FLAG_ASK,"  - тик изменил цену аск");
   Print(TICK_FLAG_LAST," - тик изменил цену последней сделки");
   Print(TICK_FLAG_VOLUME," - тик изменил объем");
   Print(TICK_FLAG_BUY," - тик возник в результате сделки на покупку");
   Print(TICK_FLAG_SELL," - тик возник в результате сделки на продажу")

と結果が出ました。

2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     2 - тик изменил цену бид
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     4  - тик изменил цену аск
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     8 - тик изменил цену последней сделки
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     16 - тик изменил объем
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     32 - тик возник в результате сделки на покупку
2015.10.23 15:12:33.274 CopyTicks_1_5_0 (USDCAD,M5)     64 - тик возник в результате сделки на продажу

結果の中に「24」の数値はありません。

 
Karputov Vladimir:

その結果、"24 "という値は存在しない。

8 || 16 = 24

 
Karputov Vladimir:

OnInit()でこれらのコードを出力するEAを添付します。

と結果が出ました。

その結果、値「24」は存在しない。

ビット毎OR演算

Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
Документация по MQL5: Основы языка / Операции и выражения / Побитовые операции
  • www.mql5.com
Основы языка / Операции и выражения / Побитовые операции - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Clear - パラメータは、MqlTick構造体の どのパラメータがティックの到着とともに変更されたかに応じて、加算されることがあります。
 

方法論の投稿から インジケータをテストできる人はいますか?

トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム

ダニ歴

カルプトフ ウラジミール さん 2015.10.22 15:07

理解することができます。でも、交換にはどれくらいの時間がかかるのでしょうか?上記の例では、50ティックのリクエストで、ティックをすぐに読み込まない場合は、30秒かかります。

さらに悪いことに500ティックのリクエストを出すと、ほぼ瞬時にティックがロードされ(この量を先にリクエストしたからだと思います)、次に5000のリクエストを出すと、すでに4分経過していますが、5000のうち2000ティック弱がロードされ、この数は増えません。


 
Renat Fatkhullin:

...

テスターでは、次のリリースでストラテジーテスターのティックの完全統合が完了するまで、ティックのダウンロードは行われません。

ビルド1200が出ました。テスターではティックはダウンロードされませんが、Market Watchのテスターではティックが本物のティックのように表示されます。

テスターです。マーケットレビュー

 

特定の日付からダニを取得する方法を考え出した。簡単なことで、時間をミリ秒単位で指定するのです。

//+------------------------------------------------------------------+
//|                                                CopyTicks_1_03.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.03"
#property description "Получение тиков с определённой даты"
//--- покажем окно входных параметров при запуске скрипта
#property script_show_inputs
input int  ticks=200;  // количество запрашиваемых тиков
input datetime start=D'2015.10.16 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("Из заказанных ",ticks," самый старый тик: ",ExTicks[0].time," bid: ",
            ExTicks[0].bid," ask: ",ExTicks[0].ask," last: ",ExTicks[0].last," [0]");
      Print("Из заказанных ",ticks," самый молодой тик: ",ExTicks[copied-1].time," bid: ",
            ExTicks[copied-1].bid," ask: ",ExTicks[copied-1].ask," last: ",ExTicks[copied-1].last," [",copied-1,"]");
     }
   Print("Size ",((long)copied*sizeof(MqlTick))>>20," Mb");
  }
//+------------------------------------------------------------------+
ファイル:
 

ビルド1200CopyTicksを呼び出すインジケータがチャートに添付されています。すべてがうまくいく。しかし、接続を解除した後

2015.10.26 09:58:06.721 Network '1783501': connection to MetaQuotes-Demo lost

で、接続が回復すると、CopyTicksは頑なにティックを返すのを拒否します。そして、50ティックか500かです。

削除済み  
Karputov Vladimir:

ビルド1200CopyTicksを呼び出すインジケータがチャートに添付されています。すべてがうまくいく。しかし、接続を解除した後

で、接続が回復すると、CopyTicksは頑なにティックを返すのを拒否します。そして、50ティックか500かです。

その後、別のサーバーに接続すると?または、ネットワークを再スキャンして、同じネットワークに接続しますか? エラーは残りますか?