交易策略和状态机转(三)

前面两篇文章所描述的状态机,思维的基础是:对一个订单施加动作,将委托回报或成交回报归纳为若干对此订单施加动作后的回馈,在等待动作回馈时设置此订单状态。因此,我们跟踪状态的对象是一个订单。也就是当这个订单从委托开始,对可能发生的各种情况加以跟踪和控制。这样的话,我们在各个状态就只能对一个订单的状态加以维护,然后根据这一个订单的状态变化用程序控制状态的流转。在交易信号出现频率比较低的时候,我们可以处理完一个订单,比如开仓报单之后,再等待其平仓信号的出现,然后做平仓报单的操作。然而,在交易信号出现频率比较高的情况下,往往在一个订单还没有处理完的时候,又需要下新的订单,这时候按照这种思路的状态机就难以处理了。此时,状态机就不能严格的将开平各个状态分开,比如,在单合约状态机的示例中,当订单处于可平状态时又出现了开仓信号,程序会丢失掉这个信号。

那么,在信号出现频率较高的时候,单合约的状态机应该是这样的:

也就是说,处于“可交易”状态时,不论是出现开仓条件开仓,平仓条件平仓,还是超时撤单的情况,状态都流转到自己,以便接收新的信号做出相应动作。

不过,在这样的状态机下面,同一个状态要处理的逻辑就相当多。比如,平仓信号出现时,到底有没有持仓可平?到底是开仓报单正在等待成交还是已经撤单?不同的情况,程序的控制完全不一样;没有持仓,则平仓动作要忽略;开仓报单在等待成交,则要先撤单,再平仓;开仓报单已经撤单且有成交或者完全成交的情况,则直接平仓。更重要的是,当前一个订单还没有撤单或者完全成交的时候,新的报单必须要根据前一个报单当时的具体情况,才能决定其操作,所以还需要维护前一个报单的状态。所有的程序控制都写到这个状态里,可读性会变得相当差,并且极易出错。

为了解决上述问题,可以将这部分订单处理的工作抽离出来,把所有的开仓平仓撤单的工作,以及处理的逻辑单独用一个线程来处理,这就是所谓的订单管理线程;这样,和策略管理线程分离开来,使策略管理线程的着眼点在合约上,让其状态机仅仅按照对合约持仓操作的业务逻辑来处理,而不去管业务操作下订单的具体实现。如下图:

策略管理线程按照业务逻辑给订单管理线程两个参数,一个是目标仓位,一个是达到这个目标仓位所需要的时间;订单管理线程给策略管理线程两个回馈,一个是合约的持仓情况,一个是操作完结的提示,操作完结分两种情况:一是在操作时间限制内完成了操作,二是超过了操作时间限制而撤销了操作。而至于要怎么完成业务操作,完全交给订单管理线程去做。这样的话,高频交易下的合约状态机的代码控制就变得很简单。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容