在交易客户中,什么是正确的策略实施方式?
what can be the proper way of strategies implementation in a trading client?
这个问题需要一些算法交易和IB TWS API的知识。
我目前正在考虑如何实施许多策略的概念可以同时交易。我想知道我是否应该把他们都放在一个房间里客户机-或者可能使用一个客户机-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
的同一个单一实例上运行带EPosixClientSocket
指针的IB EWrapper
的实现套接字)。
这个方法正确吗?我有风险管理系统(即算法)的经验,但没有见过任何商业交易系统的实施。你能给点建议吗?
问得好。
我建议在自己的模块/客户端/JVM中开发每个策略。
看看算法交易框架AlgoTrader。
这个框架允许你在不同的jvm中独立地开发/部署/启动/停止/更新策略。它们都位于所谓的Base之上,Base负责市场数据连接、数据库持久化和向Broker下订单。不同的模块/策略甚至可以通过通用事件相互通信。
AlgoTrader有两个版本。
- 您可以从这里免费下载的开源版本
- 商业版本(包括支持和专业服务)可在此处获得
相关文章:
- 如何在c++中为模板函数实例创建快捷方式
- 在c代码之间共享数据的最佳方式
- 在C++中将函数压缩为两种方式
- 以螺旋方式打印矩阵的程序.(工作不好)
- C++17中的并行执行策略
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 创建引用向量的优雅方式
- Constexpr替代了新的放置方式,可以让内存中的对象保持未初始化状态
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 不同/较旧的处理器运行c++代码的方式是否不同
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 重载方法的方式会在使用临时调用时生成编译器错误
- 在reactor中存储eventHandlers的最佳方式是什么
- 如何以优化的方式同时迭代两个间距不相等的数组
- 如何使用C++以编程方式更新组策略
- 以编程方式为所有用户设置注册表软件策略键
- 在交易客户中,什么是正确的策略实施方式?
- 基于策略的设计:如何以合适的方式定制主机结构
- 通过Winapi以编程方式编辑Windows审核策略时出现权限错误