加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

TB中A函数实现程序化的思路——个人笔记

(2014-07-15 19:30:22)
标签:

tb

程序化

期货

a函数

TB中A函数实现程序化的思路——个人笔记
 这两周一直在用TB的A函数做程序化,记忆力越来越差,把以前做过的东西总结了一下,以备不时之需。

一、我的程序化整体思路分为三部分:

(一)入场

    出场是根据特定条件,发出进场信号,不设滑点,但有追单条件;

(二)出场

    相互独立的多条件出场条件,只要满足其中一个,即按该条件指定的价格出场,各出场条件优先顺序相同,不设滑点,但会设置未能成交后的后续操作条件;

(三)止盈、止损

    止盈采取时时挂单止盈,之所以采取这种方式而不是触发价止盈在于触发价需要价格到达触发价位才能有作用,而提前挂单,自开仓后一直有效,这样可以增加成交概率。具体止盈点数根据特定K线的波动历史波动规律指定,以一分钟K线数据为例:

1分钟k线数据收盘价的统计结果如下:

               http://s11/mw690/001Z4dUBgy6KtcNqhOa6a&690

               http://s2/mw690/001Z4dUBgy6KtcOPlDj21&690

发现差分后的数据近似正态分布,然后以样本估计10%分为点处的临界值,最后得出的结论是差分后绝对值不大于3的概率为0.93007,那么就可以针对该结论指定相应止盈策略。

但是由于采取了时时挂单止盈的思路,当出现反手指令或者出场指令时如何处理已经挂出去但未成交的止盈单就是一个问题了,本策略的解决方法是给出场、入场、止盈条件赋予不同的优先顺序,出场和入场均优先于止盈单,比如在有持仓的情况下,出现了出场指令,这时由于所有持仓均已挂着止盈单,这时,必须撤销止盈单,然后发出出场指令,在出场指令未成交的前提下,是不能发止盈指令的。而出场条件优于进场条件,即类似反手,先平后下单的意思。

另外一个值得注意的问题是何时更改止盈指令(在有持仓但无出场和入场的情况下),一开始本人选取了以每根bar的开盘时更改止盈指令,后来发现这种想法愚蠢至极,走了一段弯路,如果采取这种思路,要么知道BarsSinceEntry(自出场以来经历了多少根K线),由于这个参数是图表函数类的,因此,在用A函数时,这个值就为0了,即没有意义了,这时我想到的是将最后一个入场的单子的当日委托单数量保存起来,然后查看该单子否是成交属性,自该单子有成交开始记时,在持仓时间内,每有一个新的开盘价,则其值增加一个,那么接下来的问题是如何判断新的开盘价,也许有人认为只要判断新的k线的开盘价与前一根K线的开盘价即可,如果这样,那开盘价一样的呢。。。。于是我选择了从判断时间入手,当然以15分钟为例,在交易mod(分钟数/15)=0的时刻是K线的开盘时间,比如900915930……,这种思路非常简单,但实践起来比较繁琐,因为商品期货盘中有休盘,中午有午休,还有其他非交易时间和节假日,并且不同商品的交易时间不一样,比如有夜盘的商品、无夜盘的商品,和股指的交易时间就不一样,虽然思路简单,但真正做起来比较麻烦,这里还好,因为本人的止盈价格是当前K线开盘价的函数,即:止盈价stopPrice=functionopen),那么对于开盘价一样的K线,则可采取相同的止损价,这时就不需要从一根K线过渡到另一根K线时取消止盈,再重新发了,即只有当开盘价不同时,才有可能更新止盈价,为什么说才有可能更新,因为不同的开盘价可能通过计算获取相同的止盈价,即问题最终归结到,当计算出不同的止盈价时,才更新止盈单。最终问题通过这种最简单的途径解决:当开盘价变化时,且产生了不同的止盈单,这时,才撤销原有的止盈单,而按发送新的止盈单。(注意:相同的开盘价一定能计算出相同的止盈价,即openstopPrice是单射;不同的开盘价有可能计算出相同的止损价,即function不是一一对应的)。

最后考虑到当下单量较大无法一次完全成交时如何发送止盈指令,由于止盈指令是在只要入场条件有成交时(也许是部分成交),就按当前可平的量进行发送,如果有新的成交,则会将新的成交后可平仓发送止盈,直到全部成交为止,只要有最新的成交信息出来都会触发发送止盈单发送命令。

 

具体结构如下图所示:

                            http://s13/mw690/001Z4dUBgy6KtcScOmM0c&690

 在具体实现中,由于时间有限,还有几处没有实现,而专有人工操作,第一,二次入场,当止盈或者出场(非反手)后,将会发出警告,二次入场由操作者手动操作;第二,当指定价无法成交时,目前只完成了出场若指定价无法成交,等待反手信号出来,按市价成交,还没有完成入场无法按指定价成交时的追单部分。根据本框架思路,选取了一个策略在RM1501的1分钟和10s中K线
试:

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有