

小白期货CTP程序化交易开发入门(二)--一个简单的交易策略
source link: https://zhuanlan.zhihu.com/p/23132875
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

小白期货CTP程序化交易开发入门(二)--一个简单的交易策略
在前一节中有简单介绍了下Tick数据的获取,这边先介绍下策略的一些观念。
策略简单来说,就是交易的逻辑,比如开仓时机、平仓时机、持仓管理、风险管控等,一个策略就可以成为一个简单的交易系统。
对于程序化交易来说,开仓和平仓主要是靠技术指标的来实现的,指标可以是软件上常用的指标,如MACD、KDJ等,也可以自己通过一定的逻辑来制定的指标,当该指标满足某个条件,就开仓(如金叉),满足另一个条件,就做平仓(如死叉)。
持仓管理,即每次交易的仓位,有些是每次固定手数,而有些如海龟交易法则是分次加减仓。
举个简单的策略,如双均线策略,在MA5向上突破MA20的时候,买入开仓;在MA5向下击穿MA20的时候,卖出平仓。
对于信号点,都要采用数字化,这是初学者最难处理的问题,比如逻辑为突破前一次的最大值,如果看图,可能直接看出来,但是对于程序化交易来说,就要分解成,是突破过去多长时间的最大值,而这个时间是最不好定义的。
回到双均线策略,很多交易入门的人,都会看到网上,或者书上说的,金叉买入、死叉卖出,而且都是声称是必定会赚钱的方法,对于程序化交易来说,那就先来分析看看,这个策略真的能赚到钱吗?C#的判断逻辑代码如下:
注意,在每个K线未结束时,对应的指标如MA、MACD等都是一直在变动的,因此,只能针对前一K柱或更前面的K柱进行计算。在一开始接收CTP行情时,需要将数据转化为K线数据,保存到DataTable中,以便数据的即时处理。
针对rb1701合约,选择期间2016-07-20~2016-09-20期间进行回测(期间的选择要有代表性,不能选单纯的上涨行情或下跌行情,否则策略结果很好,实际可能也会很差),本次选择中7/20-8/24为上涨周期,8/25-9/20为下跌周期。
分别对1分钟和5分钟数据进行双均线系统回测,按每个点数10元,手续费每手6元(开仓+平仓),每次只开仓1手,计算如下:其中,1分钟K线交易457次,手续费为2742元;5分钟K线交易94次,手续费为564元。
可以明显看在下跌过程中,双均线系统的收益很差(本策略只考虑简单的做多,未做空,有兴趣的可以自己试试)。从细节上来分析看,在上涨过程中明显可以赚到,而在振荡或下跌过程中,则会有较多的负收益信号。(箭头向上代表买入,箭头向下代表卖出)
实际交易中,还需要考虑滑点的问题,比如说,策略是按开盘价买入,而实际的过程中,可能一开盘,价格就被拉长,只能按更高的价格去做买入,所以在程序化的策略中,要考虑如按开盘价买入,而价格一直上涨,则要先做撤单,再重新报单买入;平仓也是。关于策略问题,因本身也是小白,所以也只能是做这些简单的介绍。
Recommend
-
86
交易程序化+策略(股息率)量化的实盘,从2017-05-03开始 - 这是个人第3个投入实盘的程序,策略部分感谢集思录,感谢 @nmbzkq 的温度计, 感谢 @持有封基 等大侠讨论的股息率轮动。代码部分就靠着自己10年前的老本,用c#堆的,比不过现在年轻人用的新工具。因程序的...
-
92
咨询电话/微信:18516600808 网络直播课程,6月27日——6月29日晚上7:30——9:00,有视频回看 ...
-
10
小白期货CTP程序化交易开发入门(七)--C++自动收取所有行情数据...
-
11
小白期货CTP程序化交易开发入门(六)--C#程序自动订阅所有...
-
10
小白期货CTP程序化交易开发入门(五)--C#程序获取Tick数据小桥流水人家专注数字货币的程序化交易
-
13
小白期货CTP程序化交易开发入门(四)--关于K线的事小桥流水人家专注数字货币的程序化交易
-
11
小白期货CTP程序化交易开发入门(一)--CTP开发基础小桥流水人家专注数字货币的程序化交易
-
19
小白期货CTP程序化交易开发入门(三)--Tick数据转成K线数据小桥流水人家专注数字货币的程序化交易...
-
8
三分钟了解 Bonfida:实现链上程序化交易的 Serum 前端 Bonfida ...
-
8
量化合约程序化交易系统的开发需要遵循以下基本步骤: 明确交易策略:首先需要明确交易策略,包括投资目标、风险控制、交易品种、交易信号等。 开发交易程序:根据交易策略,开发交易程序,采用编程语言如Python、C++等编写程序,实现自动交易功能。 测...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK