実質的なクリアランスは? - ページ 4

 
Vladimir Mikhailov #:

それほどきれいなものではなく、すべてを最小限に抑えて、スピードを追求したものです。


いいアイデアが浮かんだんです。

MT5は、取引注文の執行が非常に悪かった。

そこで、トレード専用の端末を(飾り気のない)自分で開発したいと思いました。

DLL-robotsを接続する必要がありましたが、まだ完成していません。

そんな時間はないし、その資格もない。

 
ブローカーに謝る。ウィンドウ内のバー履歴が小さく、日々ずれていたため、結果的にこのような問題が発生していたことがわかりました。今、私はすべてを修正し、新しいモデルを構築し、我々は月曜日にモデルがどのように動作するかを見ることになります!!!!!!!!!!!!!。
 
Vladimir Mikhailov #:

No so pretty, everything is at the minimum, for speed.


面白くもなんともない、残念。

 
Vladimir Mikhailov #:

No so pretty, everything is at the minimum, for speed.


月1万ルーブルでダニを集めても意味がないのでは?

 
prostotrader #:

月1万ルーブルでダニを集めても意味がないのでは?

相場を集めるのは二次的な機能で、主なものは取引です。
データがどのように収集されているかを知り、見ることで、より信頼性が高まります。
また、直接接続するサードパーティ製ソフトウェアという形で、仲介者を最小限に抑えています。

MT5の履歴で取引アルゴリズムをテストすると、まるで指をくわえて見ているような結果になります。
私自身のテスターでは、収集した履歴で良好な結果が得られ、すべての取引は実際の取引の1秒間に正確に対応しています。

私の取引アルゴリズムは日中取引向けで、入力されるデータに非常に敏感です。
しかし、長期的に取引するのであれば、直結している必要はなく、履歴の要件はそれほど重要ではないかもしれません。
 
Vladimir Mikhailov #:

相場を集めるのは二次的な機能で、主なものは取引です。
データがどのように収集されているかを知り、見ることで、より信頼性が高まります。
また、直接接続する場合、サードパーティーのソフトウェアという形で中間マージンを最小限に抑えることができます。

MT5の履歴で取引アルゴリズムをテストすると、まるで指をくわえて見ているような結果になります。
私自身のテスターでは、収集した履歴で良好な結果が得られ、すべての取引は実際の取引の1秒間に正確に対応しています。

私の取引アルゴリズムは日中取引用に磨き上げられたもので、入力されるデータに対して非常に敏感です。
しかし、長期的に取引するのであれば、直接接続は必要なく、履歴の要件はそれほど重要ではないかもしれません。

同じ商品を取引していますか?

によって追加されました。

投稿されたスクリーンショットから判断すると、KVICでも問題なく動作するClassic arbitrage (GAZR-12.21 vs GAZP)に非常に似ていますね。

 
prostotrader #:

同じ商品を取引していますか?

追加

投稿されたスクリーンショットから判断すると、KVICでも問題なく動作するClassic arbitrage (GAZR-12.21 vs GAZP)に非常に似ていますね。

複数の楽器を取引している。そう、このアルゴリズムは古典的な裁定取引に基づいているのです。

 
Vladimir Mikhailov #:

複数の商品で取引している。そう、このアルゴリズムは古典的な裁定取引に基づいているのです。

スピードトレードの理由はただ一つ、ゲル化を伴う密度取引だと考えています。

それ以外の場合は、スピードは必要ありません。

しかし、この場合、解析は全く必要ありません。

でも、あなたはよく分かっているはず...。

追加

記憶が正しければ、CGateでは株価の受信は可能ですが

が、注文は出せない。

ちょっと引っかかるんですよね...。

 
prostotrader #:

スピードトレードの理由はただ一つ、ゲル化で密度からトレードすることだと思います。

それ以外の場合は、スピードは必要ありません。

しかし、この場合、解析は全く必要ありません。

でも、あなたが一番わかっているはず...。

追加

記憶が正しければ、CGateでは株価の受信は可能ですが

が、注文は出せない。

気が利いてないね。

そうなんです、1つの商品だけで取引するんです。
裁定取引に基づくアルゴリズムでありながら、取引は先物取引のみ。

 
Vladimir Mikhailov #:

そうです、取引される楽器は1つだけなのです。
裁定取引に基づくアルゴリズムでありながら、取引は先物取引のみ。

MT5が正しくクォートを送信しているのか疑わしくなりましたね。

GAZR-12.21でティックを収集しているので、先週の金曜日15.10.2021のファイルを教えてください。

不一致があれば比較したい。

5年ほど前にKVICと比較していたのですが、矛盾はありませんでした。

追加

比較はご自由に

//+------------------------------------------------------------------+
//|                                                      G_ticks.mq5 |
//|                                     Copyright 2021, prostotrader |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, prostotrader"
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
{
  MqlTick g_ticks[];
  string t_date;
  string t_time;
  string c_flags;
  int result = CopyTicksRange(Symbol(), g_ticks, COPY_TICKS_ALL, ulong(D'15.10.2021 07:00:00') * 1000, ulong(D'15.10.2021 23:50:00') * 1000);
  if(result > 0)
  {
    int f_handle=FileOpen("g_ticks.csv",FILE_WRITE|FILE_CSV); 
    if(f_handle!=INVALID_HANDLE)
    {
      FileWrite(f_handle,"Иструмент:", Symbol());
      FileWrite(f_handle,"Всего записей:", string(result));
      FileWrite(f_handle, "Номер", "Дата", "Время", "Флаги", "Цена(Last)", "Объем", "Предложение", "Спрос");
      for(int i=0;i<result;i++)
      {
        t_date = TimeToString(g_ticks[i].time, TIME_DATE);
        t_time = TimeToString(g_ticks[i].time, TIME_SECONDS) + "." + string( ulong(g_ticks[i].time_msc) - ulong(g_ticks[i].time)*1000);
        c_flags = "";
        if((g_ticks[i].flags&TICK_FLAG_BID) == TICK_FLAG_BID) c_flags += " TICK_FLAG_BID,"; 
        if((g_ticks[i].flags&TICK_FLAG_ASK) == TICK_FLAG_ASK) c_flags += " TICK_FLAG_ASK,";
        if((g_ticks[i].flags&TICK_FLAG_LAST) == TICK_FLAG_LAST) c_flags += " TICK_FLAG_LAST, ";
        if((g_ticks[i].flags&TICK_FLAG_VOLUME) == TICK_FLAG_VOLUME) c_flags += " TICK_FLAG_VOLUME,";
        if((g_ticks[i].flags&TICK_FLAG_BUY) == TICK_FLAG_BUY) c_flags += " TICK_FLAG_BUY.";
        if((g_ticks[i].flags&TICK_FLAG_SELL) == TICK_FLAG_SELL) c_flags += " TICK_FLAG_SELL,";
        int f_len = StringLen(c_flags);
        if(f_len > 1)
        {
          StringSetCharacter(c_flags, f_len - 1, ushort(" "));
          StringTrimRight(c_flags);          
        }
        if(c_flags == "")
        {
          FileWrite(f_handle, string(i + 1), t_date, t_time, string(g_ticks[i].flags), DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                      DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits()));
        }
        else FileWrite(f_handle, string(i + 1), t_date, t_time, c_flags, DoubleToString(g_ticks[i].last, Digits()), string(g_ticks[i].volume),
                      DoubleToString(g_ticks[i].ask, Digits()), DoubleToString(g_ticks[i].bid, Digits())); 
      }
      FileClose(f_handle);
    }  
  }
  return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }

//+------------------------------------------------------------------+

追加

そして多分他のプログラムも、複数のフラグを持つティックをどうにかして分離してください。


ファイル:
1_g_ticks.zip  781 kb
理由: