这个问题需要一些算法交易和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()
方法结束
策略类在我的PosixClient
的同一单个实例上运行
IB EWrapper
的实现,其中带有EPosixClientSocket
指针(所以一个
插座)。
这是正确的做法吗?我有风险管理系统(Algorithmics ie)的经验,但没有看到任何商业交易系统实施。你能提一些建议吗?