返回首页
量化投资,高频交易,程序化交易学习必备~900+个(200G+)培训视频持续更新中!!!
当前位置: 主页 > 新手入门 >

程序化交易的沙盘世界

时间:2017-11-02 08:53来源:未知 作者:admin 点击:
程序语言作为一种沙盘式的自由度很高的东西,用于 程序化交易 中可以将你的策略用具体的方式呈现出来。现在做程序的语言种类有很多,可能用python写成的程序,就用电脑运行,如果用Java写成的,就能在手机端运行了,其实不管用哪种语言去编写,总共的核心代

程序语言作为一种沙盘式的自由度很高的东西,用于程序化交易中可以将你的策略用具体的方式呈现出来。现在做程序的语言种类有很多,可能用python写成的程序,就用电脑运行,如果用Java写成的,就能在手机端运行了,其实不管用哪种语言去编写,总共的核心代码都不到一百行。国内现在比较有名的程序比如大智慧,同花顺,一年的购买使用权就要两三万。金融行业的编程水平大家都是有目共睹的,这些程序外观上跟IT行业的商业化产品相比真的就是小巫见大巫了,所以说这些程序并不复杂,只要了解了这个思路,学过高级语言的人两三个月也能搞个一模一样的程序出来,这样一年下来也能赚个两三万。

 
程序化交易的沙盘世界
做出这样一个程序首先需要注意以下几点:
 
1、免责;2、安全性;3:、可用性。
 
这是一个交易沙盘,为了避免可能出现的经济和责任纠纷,程序不会对任何账户进行自动化的操作,下单、出货等都由用户手动操作。沙盘提供的仅有数据模拟,生成报告。买进卖出的策略也是由用户来写入的,决定权在用户手里,当然责任也是由用户承担。程序化交易,就是通过软件程序,来制定规则,主动地去遵守市场的秩序,相比主观交易,带着期望,理性屈从于情绪,一点开跌就十分忐忑,一旦上涨就跟风买入。这种主观交易也是很普遍都是赔钱的原因。
 
对于程序的功能与思路通过以下几点进行讲解:
 
1、获取实时数据
 
python的函数库非常丰富,这也是很多程序化交易者愿意去用它的原因,httplib提供了获取API接口数据的功能。API返回参数是json格式的,可以用非标准库的json Parser去解析,也可以用正则表达式过滤。比如:
 
{“ticker”:{“high”:”611.97″,”low”:”561.03″,”buy”:”581.00″,”sell”:”583.98″,”last”:”583.99″,”vol”:”14246.56″}}
 
其中包含了最低价、最高价、买入价、卖出价、最新价、成交量,10秒更新一次。每个交易所的API文档都声明了如何获取这些返回值,通常最简单的是使用“GET”method(请查阅 Python 手册,详细介绍了 httplib 的用法,还包含例程)。
 
可以将 getrespond(),parser(),httpConnection()写成一个类,如:class instant_Data()。使用类的方法调用来使用这些函数。
 
2.获取同步时间
 
同样声明一个类 Timer(),使用网络同步时间,精确到秒就可以了。因为网络传输(请求)基本是以秒为单位计算的,timeapi 是个很好的选择:http://www.timeapi.org/ 各个时区的日期、秒数都可以读取。请求方式同上。用正则表达式过滤。
 
时间用于计算和记录每一笔交易的时间、为策略中的操作提供最基本的数据。选择短线策略还是中线?不同的策略会调用不同时间段内的数据,生成不一样的分析结果。一份准确的交易报告也应当包括每一笔交易下单、平仓的时间。以秒为单位符合人的手动操作精度。就沙盘来说,这个模拟精度够了。
 
3、数据报告
 
美国最主流的交易程序 Tradestation 比国内相应程序好太多了,它生成的报告很详细,参考的主要指标有几个:
 
一段时间内开盘 / 收盘价;
 
空头 / 多头的交易量;
 
历史平均价格;
 
一段时间的最高 / 最低价格.
 
当用户确定策略的时候,根据相应策略内的参数(指定交易周期、交易金额、建仓和止损位,等等),对收集到的数据做相应调整。5 分钟的开盘、收盘价,10 分钟的开盘、收盘价,就是相应计数时间的简单记录。交易量是 5 分钟、10 分钟内多、空交易量各自的总额。历史平均价格是相应时间价格加权平均数。最低、最高价格是个简单的数字排序问题。
 
简单的数据提供给程序,和 K 线给人的直观感觉是一样的。背后都是一样的数据,K 线是把它们画成图了;同样的分析,程序一样可以做到(在这些小数据操作上,Python 的响应速度根本感觉不到)。
 
当成交一笔交易,将生成相应的时间、价格、盈亏报告。
 
4、确定策略
 
程序化交易的核心是策略,何时建仓、减仓、设置止损、如何做出趋势判断,决定策略的成败。简单策略适合短线,复杂策略适合中长线,当策略稳定获得一定胜率,这个策略就在市场中有了立足之地。复杂策略涉及长期、大量的数据存储和处理,甚至包含模式匹配、换入换出,类似于一个操作系统,根据不一样的行情做出不一样的响应方式。简单策略则快进快出,只做得好短线。比如说连续两天行情大涨,你是不是会很紧张?紧张是正确的,因为随着时间和数据的推移,之前两天能够匹配的模式开始变化了。
 
模拟还包括:滑点、手续费、形态判断。
 
形态判断可能是最难的部分,我的简单程序中没有进行形态判断(牵涉价格波动、交易量变化),仅仅匹配了开盘、收盘价。对程序来说,没有必要画图,设计的时候图是画在脑袋里的。你可以包含大多数常见的形态:尖顶、圆顶、双顶、三顶、整理收敛、上升通道…针对每一个形态,设定相应最程序化的操作,通过实时测试,去修改得到最佳参数。形态是内嵌在程序中的,但用户需要决定:建仓价格、建仓方向、平仓价格、止损位置、交易周期、分析深度(包含单一时间段还是多个时间段的报告)。
 
记录每一单交易、盈亏额、胜率,调整参数,优化策略。然后就可以赚钱了。没错,赚钱并非那么容易,Tradestation建议的测试数据时间跨度是五年。靠直觉?直觉不费脑子,你还不如去买彩票。打游戏一样可以满足你的直觉需求。
 
那么如果每个人都使用程序化交易,市场会怎么样?
 
很多人可能觉得,如果每个人都使用程序化交易,会加剧市场的波动,涨时助涨,跌时助跌,很难取得超额的收益。但其实每个行业都是一样的,都要经历这样一个变革的阶段,可能最开始的时候先发现的那帮人最赚钱,但随着变革过程不断走入大众视野之中,这样的变革就会趋向于平衡,这个时候就不要去想投机取得什么超额的收益,随着未来的发展,就像农业机械化一样,它并不会带来什么粮食过剩的影响,只不过每个人都有这样一个更加便利的工具,操作起来更加顺手,更有效率。
(责任编辑:admin)
量化投资,高频交易,程序化交易学习必备~900+个(200G+)培训视频持续更新中!!!
------分隔线----------------------------
云量化商城
如果您会开发策略,请进!大量项目等待与您合作!
推荐内容
量化投资培训