株式市場株式取引注文の執行速度。 - ページ 8

 
Replikant_mih #:

できないって何が(笑)最高のオファー - 10.1、私は11で買うために制限を投げる、11にカップ内のボリュームが全体のアプリケーションを満たすのに十分でない場合、または途中でどこかに停止する11にカップ全体を収集します。それがきっちり満たされることが必要なら、まあ、もっと大きなスラムを作ればいい、それだけのことです。もし、私の注文を正確に埋めてもらいたかったら、最高価格を上げて、その手前のどこかに価格を設定しなければならないだろう。一般的に、グラス全体を大きく掃引すると......私にとっては、何か悪いことをしているという信号のようなものです)))。


IOC - まあ、邪魔なものは全部実行し、あとは削除する。IOCはこれくらいにしておきます)。私は裁定取引をしないので、もしかしたら狭い範囲の仕様がわからないのかもしれません。あなたはいくつかのレベルまですべての要求を食べたい場合 - さて、あなたはそこにどのようなボリュームを見て、あなたは残りの撤退のバリアントに満足していない場合は、この多くをRosnoに投げることができます。要するに、課題が明確になっていないのです)。

私はすでに話した、そのように私はクイックで行います。

procedure TExpert.SellBuySpot;
var
  outStr, id: string;
  res: long;
  ErrCode: long;
  ErrSize: Dword;
  ErrStr: LPSTR;
  Dt: TDateTime;
begin
  FOrder:= 0;
  FTransID:= GetTransID();
  id:= IntToStr(TransID);
  case BuySell of
    1: outStr:= 'ACCOUNT=' + ExpData.SpotAccaunt + '; CLIENT_CODE=' +
               ExpData.Client + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' +
               ExpData.SpotData.ClassCode + '; SECCODE=' + ExpData.SpotData.SecCode +
               '; ACTION=NEW_ORDER; OPERATION=B' + '; PRICE=' +
               FloatToStr(ExpData.SpotData.SellPrice + 10 * ExpData.SpotData.Step) +
               '; QUANTITY=' + FloatToStr(aVol) + ';';
    2: outStr:= 'ACCOUNT=' + ExpData.SpotAccaunt + '; CLIENT_CODE=' +
               ExpData.Client + '; TYPE=L; TRANS_ID=' + id + '; CLASSCODE=' +
               ExpData.SpotData.ClassCode + '; SECCODE=' + ExpData.SpotData.SecCode +
               '; ACTION=NEW_ORDER; OPERATION=S' + '; PRICE=' +
               FloatToStr(ExpData.SpotData.BuyPrice - 10 * ExpData.SpotData.Step) +
               '; QUANTITY=' + FloatToStr(aVol) + ';';
  end;
  ErrCode:= 0;
  ErrSize:= 0;
  ErrStr:= nil;
  res:= T2QSendASyncTrans(LPSTR(AnsiString(outStr)), ErrCode, ErrStr, ErrSize);
  if(res <> TRANS2QUIK_SUCCESS) then
  begin
    FTransID:= 0;
    FTransBusy:= false;
  end else
  begin
    Dt:= now();
    FMemo.Lines.Add(DateToStr(Dt) + ' ' + FormatDateTime('hh:mm:ss.zzz', Now()) +
                              ' --> Ордер ' + ExpData.SpotData.SecCode + ' отправлен.');
  end;
end;

しかし、稀に注文がグラスに残ってしまうことがあり、その場合は

一度外して、新しいものをセットして、また見る......これでは時間がかかりすぎる。

さらに、脱ぐ前に閉まってしまうことも!?

だから、一番信頼できるのはIOCなのですが、その場にいないのです。

裁定取引では、すべてが非常にシンプルで、ある足を100単位で買ったなら、すぐに別の足を100単位で売らなければなりません(キーワードは「IMMEDIATELY」です)。

ですから、適切な価格と数量で、できるだけ早く反対売買をすることが課題です。

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

MT-5では、すべてがよりシンプルで高速になり、オプションも用意されています。

例えば、SPOTデッキを走らせ、選択した価格+過去の(最良の)価格の総量を計算した上で、最良の価格でないものを一度に取ることは問題ない。

そのため、MT-5でStockのトレード注文の実行速度が心配でした。

しかし、すべて同じように、市場が劇的に変化する保証はありませんし、価格を深く取りすぎると、裁定取引の状況から外れてしまう可能性があります

Quickでは、SPOTでのトランザクション速度は240~490ms、Pingは3~4msでした

FORTSでは、同じpingで、トランザクションは4.5msから12msになります。

残念ながら、Fortsの流動性が低いため、まず先物を売る必要があります。

 
prostotrader #:

すでにQuickではそう言っています

しかし、時には(稀にですが)注文がグラスに残ってしまうことがあり、そのため

そのため、一度外して新しいものをセットし、また見るということを繰り返さなければならず、時間がかかりすぎるのです。

さらに、脱ぐ前に閉まってしまうことも!?

だから、一番信頼できるのはIOCなのですが、その場にいないのです。

裁定取引では、すべてが非常にシンプルで、ある足を100単位で買ったなら、すぐに別の足を100単位で売らなければなりません(キーワードは「IMMEDIATELY」です)。

ですから、適切な価格と数量で、できるだけ早く反対売買をすることが課題です。

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

MT-5では、すべてがよりシンプルに、より速く、そしてオプションがあります。

例えば、SPOTデッキを走らせ、選択した価格+過去の(最良の)価格の総量を計算した上で、最良の価格でないものを一度に取ることは問題ない。

そのため、MT-5でStockのトレード注文の実行速度が心配でした。

しかし、すべて同じように、市場が劇的に変化する保証はありませんし、価格を深く取りすぎると、裁定取引の状況から外れてしまう可能性があります

Quickでは、SPOTでのトランザクション速度は240~490ms、Pingは3~4msでした

FORTSでは、同じpingで、トランザクションは4.5msから12msになります。

残念ながらフォートの流動性が低いため、まず先物を売らなければならない。


了解です。
mt5-Quikで株と先物の裁定取引をするのは現実的なのでしょうか?それとも、スピードのある仲間にどうにか対抗するための「知的」要素が必要なのだろうか。

 
Replikant_mih #:


了解です。
mt5-Quikのスピードで株と先物の裁定取引をするのは現実的なのでしょうか?それとも、スピードのある仲間に対抗するために、何か「知的」な要素が必要なのでしょうか?

ClassicだけならQuickで十分だし、スキャルピングもやってみたいので、最低でもMT-5(2端末)は必要。

 
prostotrader #:

ClassicだけならQuickで十分だし、スキャルピングもやってみたいので、最低でもMT-5(2端末)は必要。

ブローカーは、1つの端末で株式や先物を取引することはできませんので、2(Otkritieのように)またはすべてがあなたの端末の接続で動作し、何も変更する必要はありません?mt5-Quikの代わりにmt5-mt5でいいんです。

 
Replikant_mih #:

2ブローカーは、1つの端末で株式と先物の両方を取引することはできませんので(Otkritieなど)、またはすべてがあなたの端末接続で動作するので、あなたは何もやり直す必要はありません?mt5-Quikではなく、mt5-mt5となるだけです。

いや、今はクイックだけです、mt5 - mt5を書き始めました。

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

さて、これで書き上がりましたね。

さて、いつからテストができるようになるかは不明ですが...。


 
prostotrader #:

いや、今はQuickだけ、MT5〜を書き始めた。

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

さて、ここに書きました。

さて、いつテストができるようになるかは不明ですが...。


おめでとうございます。

また、どのように計画するのでしょうか。スポット先物の各ペアごとにEAを作成するのか、それとも1つのEAですべてのペアを作成するのでしょうか。

 
Andrey Miguzov #:

おめでとうございます。

スポット先物の各ペアごとに異なるEA、またはすべてのペアに対して1つのEAを計画するのでしょうか?

各ペアの自作クライアント・サーバーセット

なぜ、1つのEAからすべての先物とSPOTをトラッキングするのは頭痛の種なのでしょうか?

EAは基本的に1つ(クライアント)であり、サーバーは単なるパフォーマー、つまりSPOTを買うための松葉づえです :)

追加

アドバイザー - クライアントが自動的に必要なデータをサーバーに(から)送信(受信)します。

どのペアであっても、アドバイザーが自動的にフューチャースポットペアに調整します。

 
prostotrader #:

なぜ1つのEAからすべての先物とSPOTを追跡するのが頭痛の種なのか。

正直なところ、オトクリティーの個人口座でのスクリーンショットに大いに刺激を受け、先物株取引(スキャルピングではなく、真正面からのクラシック)のExpert Advisorをデバッグしているところなのですが、このExpert Advisorを使うことで、より効果的に先物株取引を行うことができます。

論理的なアプローチとしては、満期前に利益の大きいペアをエントリーすることです(手数料と実際の契約数を考慮します)。

したがって、実際のペアをすべて分析する必要があります。それぞれのペアにEAを設定すれば、互いに独立して動作します。

特に、あるペアのポジションをクローズして別のペアに切り替えるとき、確かに頭痛がします。それに、ペアが多いとスピードが落ちると思うんです。


ZZZ:現在のレートから考えると、近い将来、取引所が開設されれば、このような戦略の採算性はさらに高まりますね :)

動画+ご自身で書かれてるのを見ると、スキャルピング用に書かれてるんですね。平均的な入口と出口-それは平均的なEMA(リンク)ですか、それとも何か他の方法で平均化するのですか(それが秘密でないなら)。

 
Andrey Miguzov #:

平均入出力は平均EMA(リンク) なのか、それとも何か別の方法で平均化しているのか(秘密でなければ)?

特に秘密はなく、関数にアクセスするたびに平均値を計算しているだけです

exp_data.midle_enter = exp_data.midle_enter * exp_data.m_ent_cnt;
  exp_data.m_ent_cnt++;
  exp_data.midle_enter = (exp_data.midle_enter + result)/exp_data.m_ent_cnt; 

exp_data.midle_exit = exp_data.midle_exit * exp_data.m_exit_cnt;
  exp_data.m_exit_cnt++;
  exp_data.midle_exit = (exp_data.midle_exit + result)/exp_data.m_exit_cnt;

このデータは、このペアの価格水準を理解するために必要なものです。

 
prostotrader #:

特に秘密はなく、関数が呼ばれるたびに平均値を算出しているだけです。

あるペアの価格水準を把握するために、このデータが必要なのです。

なるほど、ウェービングでいうならSMA ですね。しかし、計算開始から遠ざかれば遠ざかるほど、平均値は現在の値から遠ざかっていく。

大雑把に言うと、この平均化方法は古い値を「忘れない」のです。なぜなら、exp_data.m_ent_cntは呼び出すたびにどんどん増え、新しい値が最終結果に与える影響はどんどん少なくなっていくからです。

私の観測では、平均値は日中も変化しており、かなり敏感です。

理論的にはEMAはスキャルピングに適しているはずで、コードはおよそ次のようになります。

double EMA_period = 100.0; //Период ЕМА для усреднения, тиков
double SmoothFactor = 2.0/(1.0+EMA_period);
 
if (EMA_ask<0) EMA_ask=ask; //первый тик
   else
  EMA_ask=ask*SmoothFactor+EMA_ask*(1.0-SmoothFactor);
理由: