2

この質問には、アルゴリズム取引と IB TWS API に関するある程度の知識が必要です。

私は現在、同時に取引される可能性のある多くの戦略の概念を実装する方法を検討しています. それらすべてを単一のクライアントでホストする必要があるのか​​ 、それとも1クライアント1アルゴアプローチを使用するべきなのか疑問に思います。唯一のクライアントで並行して実行される多くの戦略を選択した場合 (これは有益かもしれません)、どのパターンが最適な選択ですか?

現時点では、次のようなことを考えています。

1. GUI: I have i.e. buttons:
STRATEGY 1 -> start,stop,view status/details, etc.
STRATEGY 2 -> start,stop,view status/details, etc.
STRATEGY 3 -> start,stop,view status/details, etc.

各戦略は、いくつかの基本的な概念を実装するクラスです

class Strategy{ // Template method approach
public:
    void start(); // uses subscribeData(), trade()
private:
    virtual void subscribeData();
    virtual void trade();
    boost::shared_ptr<Model> model;
    boost::shared_ptr<Data> data;
    boost::shared_ptr<Statistics> stats;
};

したがって、実際の最も重要な部分はtrade()メソッドで終了し、すべての戦略クラスは、ポインターを含む IB の実装の同じ単一のインスタンス (つまり、1 つのソケット) で動作しPosixClient ます。EWrapperEPosixClientSocket

これは正しいアプローチですか?私はリスク管理システム (アルゴリズムなど) の経験はありますが、商用取引システムの実装は見たことがありません。アドバイスをいただけますか?

4

1 に答える 1

0

とても良い質問です。

独自のモジュール/クライアント/JVM ですべての戦略を開発することをお勧めします。

アルゴリズム取引フレームワーク AlgoTrader をご覧ください。

このフレームワークを使用すると、個別の JVM で互いに独立した戦略を開発、展開、開始、停止、更新できます。それらはすべてベースと呼ばれるものの上にあり、マーケット データ接続、データベースへの永続性、およびブローカーでの注文を担当します。異なるモジュール/戦略は、一般的なイベントを介して相互に通信することもできます.

AlgoTrader には 2 つのバージョンがあります。

于 2013-06-02T19:53:15.433 に答える