搞钱计划----MC 服务器出租

出租服务器的单个实例, 保证 95% 的可用性 每月20元 提供面板来进行操作。

十月 7, 2020 · 1 分钟 · r4y

vnpy 123--跑起来一个最简单的量化交易的程式

上周使用了掘金的平台来跑起来一个简单的无脑买nasdaq 的协议。 但是掘金本身是一个闭源的平台,在交易品种上面远远不比不上开源平台的vnpy 另外,vn的论坛是很活跃的所以在这里就想对vn的平台来进行探索。 准备实现最简单的交易策略,以及实现vn平台的搬转套利。 安装配置 这里在 vnpy-github已经有很好的介绍,基本已经做到了傻瓜式安装所以基本没有过多的坑,但是在 ubuntu 下面是有部分的坑。解决完成之后也是能使用的。 初步了解 关于入门的教程在 vnpy专栏 有了比较详尽的入门内容。 vn.py快速入门1 - 环境准备 vn.py快速入门3 - 数字货币BITMEX vn.py快速入门6 - 开发第一个量化策略 vn.py快速入门7 - 历史数据回测优化 vn.py快速入门8 - 策略实盘自动交易 在这里主要是来实现一个数字货币使用的一个量化程序。所以就在这里选取了这么几个章节来进行操作。量化的第一部就是获取历史数据用来进行策略的验证。之后就是来实现交易程序,回测之后再进行实盘。 数据获取 这里有一点,数据源是使用的bitmex的历史数据源。但是由于其服务是在境外的。所以连接质量不好做保障。需要使用一点科学的方法。来进行数据的访问。 https://www.vnpy.com/docs/cn/cta_backtester.html#id3 vnpy 里面已经实现了 bitmex 的数据拉取的逻辑,可以直接在 CTA回测模块里面来进行策略下载 交易策略 有了回测用的历史数据之后就就可以,来编写策略了。 这里使用的策略是使用的教程中的例示配置。 from vnpy.app.cta_strategy import ( CtaTemplate, StopOrder, TickData, BarData, TradeData, OrderData, BarGenerator, ArrayManager, ) class DemoStrategy(CtaTemplate): """演示用的简单双均线""" # 策略作者 author = "Smart Trader" # 定义参数 fast_window = 13 slow_window = 39 volume = 1 # 定义变量 fast_ma0 = 0....

九月 6, 2020 · 2 分钟 · r4y

量化交易 123 ---- 使用 掘金量化平台 来进行一次基础的回测

量化交易是指以先进的数学模型替代人为的主观判断,利用计算机技术从庞大的历史数据中海选能带来超额收益的多种“大概率”事件以制定策略,极大地减少了投资者情绪波动的影响,避免在市场极度狂热或悲观的情况下作出非理性的投资决策。 前面的话 量化交易,又名程序交易。为了防止人的非理性的交易行为,使用代码来进行操作,得到一个有理论方案支撑的收益结果。 如果经过自己的理论和实践的结合,得到一个可以持续获利的策略方式是可能的。 在大概两周之前开始了vn.py这个一个开源的量化平台,一直想玩玩,但是奈何没有win平台的设备,所以到本周末才正式的去体验了一把。虽然用的不是 vnpy ,出使用的是掘金量化的SDK,但是换汤不换药,跑出了回测的目的。所以在这里记录一下。 基础补充 看起来高达上的量化交易,实际上跑起来并不难。难点在于策略本书,而不是在于代码。 实际上可以抽象为一个事件触发,处理,再处理的过程。我这里是使用的 python 来实现的第一个能用的量化算法,叫做<无脑纳斯达克> 官方的python的快速入门手册 https://www.myquant.cn/docs/python/73? 事件驱动 前面说到,量化交易就是程序交易就是程序来帮我们来交易代码。所以交易的这个动作就需要一个触发。在 这个平台中,触发事件的类型有下面三种: 定时启动场景 数据事件驱动 时间序列数据事件驱动 第一种很好理解,就是一个周期性的触发事件,比如一周一次等等,这个后面会用到。 第二种,就是通过订阅一个数据源来触发,有一个刷新频率,理解为每一分钟,或者每一秒都来得到某只股票的当前信息 第三种,这里是在第二种的基础上,触发的传入参数内容不再是当前的信息,而是一个时间序列,比如近10个点,等等。 处理函数 定时处理的话,只需要传入函数名就会定时的去执行。具体的代码: schedule(schedule_func=algo, date_rule='1d', time_rule='14:50:00') 对于后面的两种数据驱动,是有一个系统默认的回调函数,区别在于传入的是当前的bar 还是 某个指标的 content 序列。 def on_bar(context, bars): bar = bars[0] print(bar) def on_bar(context, bars): print(context.data(symbol='SHSE.600000', frequency='1d', count=50, fields='close,bob')) Hello world 好了有了前面的知识,这里就可以来写一个简单的策略了,就是我们的《无脑纳斯达克》的策略。我们的目标是每周买入nasdaq的基金。来看看效果怎么样子。 代码如下,就这个简单的代码,就已经实现了每周买入 nasdaq 的功能。 def init(context): schedule(schedule_func=algo, date_rule='1w', time_rule='14:50:00') def algo(context): # nasdaq 的基金 symbol = 'SHSE.513100' result = order_value(symbol=symbol, value=1000, side=OrderSide_Buy , order_type=OrderType_Market , position_effect=PositionEffect_Open, price=0) def on_backtest_finished(context, indicator): print(indicator) if __name__ == '__main__': run(strategy_id='xxx, filename='main....

八月 29, 2020 · 1 分钟 · r4y