取引ロボット開発:StockSharpプロジェクトの歴史

私たちのブログでは、株式市場に関連する技術について多くのことを書いています(たとえば、関連するデータ転送プロトコル-one、 twothree )。 膨大な量の交換ソフトウェアがあり、作成プロセスは非常に興味深いものです。 以前、 SmartXトレーディングターミナルの開発について話しましたが、今日は、 StockSharpトレーディングロボットを作成するプロジェクトの開発者の歴史を紹介します。







この記事では、長年にわたって作成してきたStockSharp製品について説明します。 なぜこれを行うのか、誰がそれを必要とするのか、どのような利点があり、どのような見込みがあるのか​​。 この記事は別々のセクションに分かれていますが、順番に読むことをお勧めします。



背景と理由



プロジェクトは2009年末に開始されます。 その瞬間、すでに取引とアルゴリズム取引の両方のための非常に多くの異なるプログラムがありました。 しかし、作成された製品の圧倒的な数の際立った特徴は、完全自動化の可能性を実際に完全に無視しています。 次の項目は、ほとんどのプログラムにないか、低レベルで実行されています。



  1. 入札履歴を保存しています。
  2. 独自の取引操作を保存します。
  3. 市場データの2つ以上のソースを接続します。
  4. 同時に複数のアカウント/ブローカーに接続します。
  5. 独自のタイプのグラフとインターフェースを作成します。
  6. システムログとエラーアラート。
  7. 標準バックテスターの機能の拡張(アプリケーションを実行するためのシステムは統一されておらず、電子プラットフォームとブローカーの両方に依存しています)。
  8. 共同プロジェクトで2人以上と作業するためのツールの不足。
  9. 通常のコードエディタ(およびWindows 3.1のレベルではなく、対応する機能を備えたもの)。


アルゴリズム取引の通常の作業に必要な50ポイントを追加することもできます。 しかし、意味は変わりません。 大衆に提示される製品は、アルゴリズムの取引(狭いニッチのため)に向けられておらず、通常の機能を持つことはありません。 これらの製品の自動化機能は、非常に短時間で実現されます。 これらはほんの数ヶ月であり、アルゴリズム取引の計画が残りの寿命の長さである場合、それらを費やすことは意味がありません。



状況を修正するための2つのオプションがあります。



  1. または、アルゴリズム取引とチームワークに焦点を当てた製品を購入します。 そして、これは月に数万ドルです(誇張なし)。 現在のレートでは、初心者のアルゴトレーダーにとっては完全に曇っています。
  2. または、ゼロから実行します。 エクスチェンジでコネクタを作成し、バックテスターを作成します(たとえば、 Pythonで )。 そして、これは彼ら自身のスケジュール、警告システムなどを書くことを必要とします。


高価なものと長いものとの選択は、悪いものと非常に悪いもののように見えます。



ターミナル間の基本的な自動化とアルゴリズム取引用のプロフェッショナルプラットフォーム間のギャップを埋め、消費者がアクセスできるようにするためでした( GitHubからダウンロードしたオープンソース製品よりも手頃な価格になる可能性があります)。プラットフォームを作成しました—StockSharp 。



建築



StockSharpは、洗練されたソフトウェア開発の古典的なモデルを中心に構築されています。 最初に、特定のフレームワークが作成され(この例ではS#.API )、すでにそれとともに高レベルのアドインが作成されています。 今日の状況は次のとおりです。







S#.API専用に作成された多くの製品をすでに作成しています。 たとえば、グラフィカル環境はS#.Studio現在ベータ版)またはS#.Data / Hydraです。



当日は、アルゴリズム取引の完全な複合体を作成しました。 履歴データを収集および保存するシステムがあります(インターネット経由で機能し、サーバーとしてデータを配布できます)。 歴史のためのテストシステムがあります。 いくつかのグラフィカルコンポーネントがあります。



すべての主要な機能(アルゴリズム、外部ソースへのコネクタなど)はすべて外部コントラクト(インターフェイス)によって標準化されているため、コードで簡単に使用できます。 同意します。必要なデータをファイルにダウンロードし、このファイルを監視する別のプログラムを作成するスクリプトでトレーディングターミナルにコードを書き込むよりも、ライブラリを接続してVisual Studioでメソッドを呼び出す方が便利で高速です。



実際、1日で取引に接続し、グラフィカルな情報を表示し、作成された戦略を履歴でテストするための完全に機能するモジュールを作成できます。







これは、WPFブロックで行われます。 画面上のすべてのグラフィックコンポーネントは、S#.XAMLからすぐに使用できます。



しかし、ビジネスはどうですか?



もちろん、オープンソースのみでビジネスを行うことは喜びです。 しかし、オープンソースと適切なビジネスモデルでビジネスを行うのはさらに楽しいことです(「 親切な言葉と銃を使えば、親切な言葉以上のものを達成できます 。」(C)A.K.)。



プラットフォームをできる限り広く民間トレーダーに配布していますが、企業には有料ソリューションを提供しています。 これは、エクスチェンジへの追加の直接接続コネクタを介して行われます 。 このモデルは、接続のタイプ自体がクライアントを分離するという事実によって正当化されます(通常の企業は企業にとって役に立たず、直接アクセスコネクタはプライベートトレーダーやミニチームにとって役に立たない)。



すべてに加えて、一度も行ったことのない人のためにトレーディングロボットを作る方法を教えるコースを提供しています。



これらのすべてのサービスを組み合わせることで、StockSharpプラットフォームをさらに開発する機会が得られますが、プライベートトレーダーがアクセスできるように維持しながら、プロフェッショナルなソリューションの機能も備えています。



結論の代わりに



巨大な計画は実現しない傾向があるため、比較的短期間でかなり均等な手順があります。



タスク番号1は、ローカライズを完了することです。 すでに、このプロジェクトでGitHubを使用している英語を話すユーザーの数は、ロシア語を話す視聴者と同程度です。 これは、これまでのところ、コード内のすべてのコメントがロシア語であるという事実にもかかわらずです。



私は地域の支配から抜け出し、それがどのようであり、私たちがどのように良く/悪くなるかを見たいです。 黄金の夢-ブルームバーグの代わりにウォール街を持つ企業は、StockSharpを使用し始めています。



All Articles