ダニの話 - ページ 2

 
Oleg Tsarkov:
ブローカーに深い正史を期待することはできない。彼らは5分単位で分単位を時間単位にすることを学んでおり、これに文句を言うと、ギガバイト単位の過去データでサーバーに負荷をかける余裕がないと言われます。どんなダニがいるのか・・・。
カスタムヒストリーがサポートされないうちは、ティックやクォート全般について話す意味はありません。ちなみに、将来的に自分自身の履歴をダウンロードすることも発表されています。
 
Renat Fatkhullin:

ティックの新しい点は、クライアント端末への一般的なデータ配信プロトコルに完全に組み込まれていることです。つまり、ディープティック履歴のフルアクセスおよび同期。次に、このティック履歴をストラテジーテスターで 使用します。

変更点・改善点のリストは長いので、近日中に公開します。発売は来週の金曜日です。

参考文献より

コピーチケット

この関数は、現在の作業セッション中にクライアント端末が蓄積した ticks_array を取得する。

CopyTicks()関数が以前の作業セッションのティックを返すことができるようになったということですね。

 

MT5サーバーのティック履歴は 常に最初から蓄積され、無効化されません。

また、サーバー内のティック履歴データを取り込み、同期させる強力な機能を追加しました。もちろん、ブローカーに質的な役割を担ってもらう努力も必要でしょう。特に、この作業は既存の機能によって大きく促進されるからです。

 
Tapochun:

ヘルプより

CopyTicks()関数が以前の作業セッションのティックを返すようになったということですね。

はい、もちろんです。
 
Renat Fatkhullin:
はい、もちろんです。
それはとても興味深いですね...。テストしてみよう...
 
Tapochun:

ヘルプより

CopyTicks()関数が以前の作業セッションのティックを返すようになったということですね。

200000ティックも頼める!?

//+------------------------------------------------------------------+
//|                                                    CopyTicks.mq5 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2014, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//--- input parameters
input int      ticks=200000;  // количество запрашиваемых тиков
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- массив для приема тиков
   MqlTick tick_array[];
//--- запросим тики
   int copied=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,0,ticks);
//--- если тики получены, то выведем на график значения Bid и Ask  
   if(copied>0)
     {
      string comment="#  Time       Bid        Ask        copied\r\n";
      //--- сформируем содержимое комментария      
      for(int i=0;i<24;i++)
        {
         MqlTick tick=tick_array[i];
         string tick_string=StringFormat("%d: %s  %G  %G  %d:",
                                         i,
                                         TimeToString(tick.time,TIME_DATE|TIME_MINUTES|TIME_SECONDS),
                                         tick.bid,
                                         tick.ask,copied);
         comment=comment+tick_string+"\r\n";
        }
      //--- выводим комментарий на график        
      Comment(comment);
     }
   else // сообщим об ошибке при получении тиков
     {
      Comment("Не удалось загрузить тики. GetLastError()=",GetLastError());
     }
  }
//+------------------------------------------------------------------+
 
Renat Fatkhullin:

...もちろん、ブローカーにきちんと自分の仕事をやってもらう努力も必要でしょう。特に、この作業は既存の機能によって大きく促進されるからです。

無理強いしなければね。ブローカーは品質履歴に興味がなく、ほとんどのクリッカーもそれを必要としていないからです。品質履歴を取得する」ボタンを作っても、やはりクリックされない。
 
開発者への提案: MqlTick構造 体にもっと正確な時間フォーマットを導入し、各ティックがミリ秒の数値を持つようにする。
 
Karputov Vladimir:

20万ティックも頼めるのか!?

可能ですが、すべてのティックで そうするのは避けたほうがいいでしょう :)
 
Karputov Vladimir:

20万ティックも頼めるのか!?

本当にデータが入ってきているのか?