日志技术分享
首先,你要有一套明确可量化的期货交易策略
然后,要把这个交易策略写成程序
其次,用程序化交易软件(比如TB)进行历史回测,优化参数(警惕过度优化风险)并模拟运行
最后,用程序化交易软件自动交易,你盯盘就好,不要干涉,如果出现问题,及时修正
一、合约标准化
期货市场交易的对象是期货合约,期货合约对标的物的数量、质量等级和交割等级及替代品升贴水标准、交割地点、交割时间等条款都是标准化的,交易双方不需对交易的具体条款进行协商,便利了期货合约的连续买卖,具有很强的市场流动性,极大地简化了交易过程,降低了交易成本。
二、保证金制度
期货交易实行保证金制度,也即交易者在期货交易时需缴纳少量的保证金,一般为所买卖期货合约价值的一定比例(通常为5%-10%),就可以完成数倍乃至数十倍的合约交易。由于期货交易能够以少量资金进行较大价值额的投资,具有杠杆效应,使期货交易具有高收益高风险的特点。
三、双向交易和对冲机制
双向交易,也就是期货交易者既可以买入期货合约作为期货交易的开端(称为买入建仓),也可以卖出期货合约作为交易的开端(称为卖出建仓),也就是通常所说的“买空卖空”。与双向交易的特点相联系的还有对冲机制。在期货交易中大多数交易者并不是通过合约到期时进行实物交割来履行合约,而是通过与建仓时的交易方向相反的交易来解除履约责任。具体说就是买入建仓之后可以通过卖出相同合约的方式解除履约责任,卖出建仓后可以通过买人相同合约的方式解除履约责任。期货交易的双向交易和对冲机制的特点吸引了大量期货投机者参与交易,因为在期货市场上,投机者有双重的获利机会:期货价格上涨时,可以通过低买高卖来获利;价格下降时,可以通过高卖低买来获利,并且投机者可以通过对冲机制免除进行实物交割的麻烦。投机者的参与大大增加了期货市场的流动性。
四、当日无负债结算制度
期货交易所实行当日无负债结算制度,又称“逐日盯市”,是指每日交易结束后,交易所按当日结算价格对交易者当天的盈亏状况进行结算,如果交易者严重亏损,保证金账户资金不足时,要求交易者必须在下一日开市前追加保证金,以做到“每日无负债”。客户如果不能按时追加保证金的,期货公司会将客户部分或全部持仓强行平仓,直至保证金余额能够维持剩余头寸。
五、涨跌停板制度
涨跌停板制度是指期货合约在一个交易日中的交易价格不得高于或低于规定的涨跌幅度,超过这个幅度的报价将被视为无效,不能成交。期货市场更大涨跌停板幅度一般是以合约上一交易日的结算价为基准确定的。
六、强行平仓制度
强行平仓制度是指当会员或客户的交易保证金不足并未在规定时间内补足,或者当会员或客户的持仓数量超出规定的限额时,交易所或期货经纪公司为了防止风险进一步扩大,实行强制平仓的制度。
、程序化交易系统目前主要是通过计算机程序实现的,其实就是把交易者决策的过程用计算机语言描述出来,然后由计算机给出交易建议或直接发送交易指令到期货公司的交易系统中去,完成一笔交易。
比如我们用自然语言思考某个品种是否应该买入卖出时:“如果大豆0901价格跌破3000元,则开仓卖出三分之一......”用计算机语言描述时可能就是:
“IF A0901=3000 THEN SELL......”
当然实际上的程序编写是比较复杂的,因为要做大量的逻辑判断和公式计算。
2、 理论上来讲,用什么语言都可以完成这样的任务,但因为涉及到大量的数据读写和 *** 存取,所以更好用自带数据库功能的编程语言,比如Delphi,不但数据 库功能很强,而且可直接读写SQL-Server、Oracle、Sybase等证券期货行业普遍采用的数据库,相应的 *** 控件也齐全。
3、此类交易系统适合所有的交易市场,证券、期货、外汇都已经有了类似的交易系统,但各自的模型基础不一样,因为这些软件都是根据交易者的经验来建立交易模型并编写的,而不同的交易者思路是不完全相同的。
4、在证券市场和期货市场上,如果个人要建立一个计算机程序化交易系统的话,首先要做的当然是建立交易模型,也就是把自然语言描述的交易决策过程转换成计算机语言。
其次是建立交易接口,这里有两个接口问题要解决,一是你的交易程序要读取行情软件的数据,以便系统根据行情数据作出交易决策并发出交易指令;二是你的交易程序发出的指令要下到证券公司(期货公司)的交易服务器上去,就像你自己敲单一样。
接口问题涉及到TCP/UDP端口的读写,证券(期货)公司和交易所的通信都是通过TCP/UDP进行的,他们不对最终客户开放接口,这就需要你自己破解数据格式了。
所以要建立一套有效的程序化交易系统,不但要求程序的编写者有成功的、长期有效的交易经验,还要懂得将这些经验用计算机语言描述出来,这不是一个很简单的过程。
部分规则如下。期货是可以双向操作的,也就是可以做多,也可以做空。在做多时,价格上涨赚钱,价格下跌亏钱。在做空时,价格下跌赚钱,价格上涨亏钱。期货是可以进行T+0操作的,也就是可以当天买入或卖出后,当天平仓。
拓展资料:
期货采用的是保证金制度,任何交易者必须按照其所买卖期货合约价值的一定比例缴纳保证金。在国内交易的期货品种中,保证金比例一般在10%左右,交易所会根据实际情况来调整保证金比例。也就是说,期货买卖操作是带有杠杆的。
期货买卖也是有涨跌幅限制的,交易品种不一样涨跌幅限制也是不同的。
期货采用的是每日结算制度,也就是交易所会按当日结算价结算所有合约的盈亏、交易保证金及手续费、税金等费用。
温馨提示:不构成投资建议,理财有风险,投资需谨慎。
期货市场最早萌芽于欧洲。早在古希腊和古罗马时期,就出现过中央交易场所、大宗易货交易,以及带有期货贸易性质的交易活动。最初的期货交易是从现货远期交易发展而来。之一家现代意义的期货交易所1848年成立于美国芝加哥,该所在1865年确立了标准合约的模式。
20世纪90年代,我国的现代期货交易所应运而生。我国有上海期货交易所、大连商品交易所、郑州商品交易所和中国金融期货交易所四家期货交易所,其上市期货品种的价格变化对国内外相关行业产生了深远的影响。
最初的现货远期交易是双方口头承诺在某一时间交收一定数量的商品,后来随着交易范围的扩大,口头承诺逐渐被买卖契约代替。这种契约行为日益复杂化,需要有中间人担保,以便监督买卖双方按期交货和付款,于是便出现了1571年伦敦开设的世界之一家商品远期合同交易所——皇家交易所。
为了适应商品经济的不断发展,改进运输与储存条件,为会员提供信息,1848年,82位商人发起组织了芝加哥期货交易所(CBOT);1851年芝加哥期货交易所引进远期合同;1865年芝加哥谷物交易所推出了一种被称为“期货合约”的标准化协议,取代原先沿用的远期合同。
这种标准化合约,允许合约转手买卖,并逐步完善了保证金制度,于是一种专门买卖标准化合约的期货市场形成了,期货成为投资者的一种投资理财工具。1882年交易所允许以对冲方式免除履约责任,增加了期货交易的流动性。
一. 程序化的理解
程序化一般分为两类模型,一类是趋势模型,一类是震荡模型,如果你想两者结合起来就要看自己的本事了,我的建议是程序化需要不停的去完美,但千万不能追求完美,以下所说模型都是趋势模型;
程序化一种工具,帮助你积累财富的工具,却不是一种暴利的赚钱方式,程序化模型有好坏之分,程序化赚钱的前提是一个好的模型,程序赚钱的关键是坚持的执行,程序赚钱的精髓就是在确定最终使用模型之后,彻底的放弃你对金融市场的一切理解和交易技能.就像武侠小说里说的,想练成最上层的功夫,就应该先废掉所有的武功.
二.程序化模型的选择与辨别
如果有人告诉你他的程序化能在不长的时间内,让你的资金翻几番,那你要为他的言语或者他的程序打个折扣,但是如果对方又能拿出不错的图形或者非常漂亮的收盘测试结果放在你的面前,你又当如何说服自己是相信还是不相信?以下内容就是帮助你如何辨别好坏模型.
1. 测试时间:一个好的程序化必须经得起时间周期的测试,如果一个程序化,结果很漂亮,周期却只有一两个月,不可信;
2 . 使用资金:很多人贴出来的漂亮测试结果,使用资金常常是80%或者其它百分比,但这些都是不合理的选择,因为金融市场资金管理很重要,在行情好时候,资金使用越高,收益越大,行情不好时,资金使用越高亏损越大,但我们无法去判断接下来的行情会如何,所以,历史测试的结果使用百分比的开仓方式是不合理,这也就是为什么,有时候会出现,资金使用率为80%是,测试结果是亏损的,而且使用率为40%时又是赢利的.总而言之,资金使用时应该选择固定的手数进行测试,不管他的行情如何,永不加仓或减仓,来测试一个模型更为合理;
3、测试方式:开盘价和收盘价测试均有其不合理性,趋势模型一般以趋势逆转点为开仓信号,故较为准确的是:出现指令价位。
测试结果的分析:
a.指令总数:也就是信号数,过高,说明震荡行情过滤不好,过低,说明风险大;如何判断信号数合理呢?那就只有不同的模型在同样的周期下的一个对比了.还有一个最简单的方式就是将 指令总数/有效交易天数 以日内短线为例,一般一个有效交易日的平均信号数在2-5之间(此数据仅供参考);
b.利润率:总利润不用看,只看扣出更大利润的结果,必须为正,而且测试周期越长利润率应该越大,很多模型,测近期不错,测远期就不行,所以测试时应该尽量的去测能测到的最长周期.(当然因为行情关系也可能出现,长期比短期利润率低,但总体而言,周期越长利润率越高,才是好的模型的测试结果)
c.正确率:其它条件都完全一样的情况下,正确率越高自然越好,但也不用为了看到一个高正确率的模型而心动,也不用因为你自己模型的正确率低而担心,一般的正确率能在45%左右,就不错了,因为程序化的本来意义就是赚大亏小,在震荡的时候正确率自然会低;
d.更大亏损率:如果你是选择的固定手数,比如10手进行测试,你的更大亏损率更大应该不能超过10%,当然,如果你选择的测试手数多,更大亏损率可能有所提高.如果你选择的80%的资金使用率,可能亏损会更大,当然也会有亏损的不大的测试结果,这往往和你的测试周期中的行情的一定关系,所以不值得过于依赖;
e.空仓时间:以日短线为例,空仓时间不能太高,太高,必然会错过大行情,当然,这一项不是最重要的,如果你空仓时间长,利润也高,错过就错过吧,错过不是过错,没赚到也不存在亏损的风险;小结:测试结果分析不能只看某一个数据,因为结合起来一起分析:指令总数不能多也不能少,周期越长利润率应该越高,正确率45%以上就可以接受,更大亏损不能过大,空仓时间可以自行把握;
如果一个模型做到了以上几点是不是就算一个好的模型了呢,基本上可以算了,但最重要的是我们还需要结合信号图形(此点需要一定的程序化经验,并不一定看上去好的模型就是好,当然看上去好是前提,如果看上去都觉得一般了,那肯定是不行)来分析,此外,还要看到模型里是否有未来函数,如果是日内短线,信号就一定不能消失,每天的跳空缺口需要技术性的回补等等其它问题都是分析一个模型好坏的理由,但是,一个好的模型是不怕任何测试与分析的.
三.程序化交易的执行
这一点没什么好讲却又不得不讲,很多有多年经验的操盘手,甚至一些国内的金融公司,常常会对程序化交易提出一定的质疑,我就遇到一个期货公司的老总,因为觉得程序化好,准备的资金,进行了程序化交易,首先我不知道他选择模型的依据是什么,号称只是因为人家是大公司,测试结果不错,(如果是我听到这样的话,肯定不会很快的就认定他们的模型,因为我也见过某些(不方便透露)所谓大公司的程序化交易模型的原码,说实在的,确实是**,理论基础都无法说服我,但做出来的图形要去迷惑一些想使用程序化的入门者是绰绰有余)结果这个老总使用该模型交易时,正好遇到一段时间的震荡行情,可能是亏了不少吧,然后决定放弃程序化交易.
这就是一个典型的程序化执行的例子,程序没有人性,我们在使用时就更不应该加入人性,如果你决定使用程序化就给自己一个时间期限(不管是真钱也好,模拟也好),时间不能太短,如果短也可以,必须在这段时间中,你要自己能分析出,是不是都能遇上基本上所有的行情,比如,测试三十天,遇到过十天的震荡,也遇到了好几天的大行情,以此来分析程序的好坏;绝不能因为几次的使用结果不好而去否认程序化,也不能因为几次的使用成功而完全信任,必须要有一定时间的观察与模拟,然后再到真钱的尝试,时间长短是小事,关键是是否经历过大部分的行情,从而选择一个最适合而不是最完美的模型进行自己的程序化交易;
一旦执行,你就应该忘记所有的金融市场的条条框框,你就是一个傻瓜执行者,聪明人在金融市场上不一定能生存,傻子在金融市场也不一定被淘汰.
网站首页:最新期货开户网
期货开户微信:527 209 157
本文链接:http://jienve.com/post/31146.html
Copyright 2010-2024 最新期货开户网 网站地图 微信:527 209 157 湘ICP备18014167号