欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    程序化交易策略.docx

    • 资源ID:10331579       资源大小:19.89KB        全文页数:11页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    程序化交易策略.docx

    1、程序化交易策略超级日内组合策略(TheSuperComboDayTradingStrategy)成功的日内突破策略核心是开盘后不久,寻找到未来上涨趋势的近低点和下跌趋势的近高点。最怕的是在高点附近买进,在低点附近卖空。但是,我们通过观察测评可以发现,除去少部分买在低点,卖在高点的交易,绝大部分都是突破失败的例子。那么是否有这样的策略,在行情突破的时候做突破,若突破失败,自动切换成处理突破失败的策略呢?你可能会说,不太可能吧?但今天介绍的超级组合策略正是基于这种想法开发的。策略简述:超级日内组合策略是我目前整理策略发布以来最复杂的一个。简化后还是一堆文字,所以简述我就不写了,大家直接看策略详情吧

    2、。个人觉得若你能理解后独立写出这个策略的代码,金字塔平台上几乎任意的图表程序化编程都难不倒你了。看这个策略之前,请先阅读Hans123、恒温器策略,相关概念不在此文重述了。策略详情:超级日内组合策略属于有很多个模块处理不同行情的复杂策略,如同R-breaker一样,将考虑突破及突破失败2种情况,但细节方面会更复杂。当然,在有条理的情况下,使用金字塔软件实现策略还是相对容易的。首先,我们策略依然沿用突破、突破失败这类思想,并且引入了恒温器策略中趋买市、趋卖市的概念,这3者将是这个策略的基础。对于策略突破的部分:时间处理上,我们将沿用Hans123策略的想法,开盘30分钟内不交易。其次,对于突破进

    3、场点,超级日内组合策略将使用类似恒温器策略中区间突破、趋买市、趋卖市的思想。首先,我们判断是否交易?经过长期的观察和研究,策略的开发者得出结论,一般短K线后面往往跟随着长K线,而我们追踪的正是长K线。所以,若昨天是短K,今日我们才入场,否则不入场。我们采用以下的方式来判断K线是否为短K。比较昨开-昨收的绝对值和前10天该值的平均值。若前者小于后者85%,我们认定为短K,反之为长K。接下来,我们来确定进场的点位,若收盘价小于等于前一日的收盘价为趋买市,反之为趋卖市。趋买市的开多条件为今开+30%前10日的真实区间。开空条件为今开-60%的前10日真实区间。趋卖市开多条件为今开+60%的前10日真

    4、实区间,开空条件为今开-30%前10日的真实区间。接着,我们来处理突破失败的部分(反趋势)。在该系统中,我们以多头为例,将以下三种情况定义为突破失败:1、市场比昨日最高价向上跳空一定高度接着又下跌到最高价以下一定位置。2、开盘价在昨日最高价以下,后超过该价,然后又下跌至该价以下一定位置。3、多头头寸开始但在中午12点前失败,失败是以触发停止为标志的。如果失败不是发生的很快,我们可以利用这个优势。反之,为向下突破失败。然后,我们来处理止损的部分。(依然以多头为例)1、在常规情况下,我们多头止损点是开仓价-10日波幅区间的25%和3个大点(IF下是15个最小变动价位)较大的那个。这里混合使用 固定

    5、止损和百分比保护止损的理由是:百分比止损能较好地适应市场的情况,它是个自适应参数系统。它及固定止损对比的好处是,若市场是高波动的,用固定止损就会使大部分交易亏损;若市场波动率低,一个固定的止损价位会导致风险大于收益和最后的净亏损。但是,若前一天的波动非常的小(比如前一天开盘就涨停了)。百分比系统会产生一个很荒唐的值,所以我们设置了一个3个点的条件作为下限。2、在突破失败的情况下反手入场,我们在止损点为 开仓价-10日波动区间的15%和3个大点的较大值。这是因为当天市场可能是没有方向的。反复的震荡会让我们有很大的损失,在已经亏损了一次的情况下,我们将执行更严格的风控。3、当我们赚取的利润已经等于

    6、10天波动区间的50%时,我们采用保本止损策略,止损价调整为开仓价+滑点和手续费。4、当时间超过下午14:30后,止损点设置为低于、高于前3跟5分钟线的低高点。?这是因为,我们发现交易的最后30-45分钟,市场全天的趋势将消退,极少数情况下会出现大幅翻转(我记得今年某次PTA,深深地V型翻转,伤透了心),我们当然不希望盈利在最后丢掉,所以设置了这个较小的止损,市场一有不利我们的风吹草动,我们就撤。5、一天最多进场多头、空头各一对。换句话说,进场2次就停止。总结:这个策略只是一个抛砖引玉,它糅合了足够多的思想。大家可以此为例,尝试创造出自己一堆堆的策略咯。代码:/策略:超级日内组合系统/类型:日

    7、内5、走完K线/版本:1.0/修订时间:2012.12.24/DESIGNED BY ROGARZ/中间变量INPUT:SS(1,1,100,1),K1(0.3,0.1,1,0.1),K2(0.6,0.1,1,0.1),BOCP(0.25,0,1,0.01),FBOCP(0.25,0,1,0.01);VARIABLE:开多次数=0,开空次数=0,趋买市=0,趋卖市=0,多头止损价=0,空头止损价=0;CYC:=BARSLAST(DATEREF(DATE,1)+1;昨开:=CALLSTOCK(STKLABEL,VTOPEN,6,-1);昨收:=CALLSTOCK(STKLABEL,VTCLOSE

    8、,6,-1);昨昨收:=CALLSTOCK(STKLABEL,VTCLOSE,6,-2);/昨天的前一天的收盘价,暂称为昨昨收昨低:=CALLSTOCK(STKLABEL,VTLOW,6,-1);昨高:=CALLSTOCK(STKLABEL,VTHIGH,6,-1);今高:=IF(CYC=1,HIGH,REF(HHV(HIGH,CYC),1);今低:=IF(CYC=1,LOW,REF(LLV(LOW,CYC),1);今开:=IF(CYC=1,OPEN,REF(OPEN,CYC-1);10日平均波幅:=ref(MA(CALLSTOCK(STKLABEL,VTHIGH,6,0)-CALLSTOCK

    9、(STKLABEL,VTLOW,6,0),10),1);/AVERAGERANGE10日平均开收盘区间:=ref(MA(ABS(CALLSTOCK(STKLABEL,VTopen,6,0)-CALLSTOCK(STKLABEL,VTclose,6,0),10),1);/AVERAGEOCRANGE开关:=ABS(昨开-昨收)0.85*10日平均开收盘区间;/CANTRADE3周期最高价:=REF(HHV(HIGH,3),1);3周期最低价:=REF(LLV(LOW,3),1);多头突破确认价:=昨高+BOCP*10日平均波幅;/LONGBREAKPT空头突破确认价:=昨低-BOCP*10日平均

    10、波幅;/SHORTBREAKPT多翻空确认价:=昨低+FBOCP*10日平均波幅;/LONGFBOPOINT空翻多确认价:=昨高-FBOCP*10日平均波幅;/SHORTFBOPOINT手数:=SS;开仓历时:=ENTERBARS+1;/交易条件IF 昨收昨昨收 THEN BEGIN/昨日收盘价大于昨昨收为趋买市(SELLEASIERDAY)趋卖市:=1;趋卖市开多价:今开+K2*10日平均波幅;/BUYBOPT趋卖市开空价:今开-K1*10日平均波幅;/SELLBOPOINTEND/交易系统/突破IF TIME=094500 AND TIME=趋买市开多价 AND HOLDING=0,手数,

    11、MARKET); 多头止损价:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3);/这个策略用于股指,多头常规止损价为 开仓价减25%的10日平均波幅和3个大点的较小值。开多次数:=1;ENDIF 趋买市=1 AND 开空次数=0 THEN BEGIN趋买市开空:BUYSHORT(CLOSE趋卖市开多价 AND HOLDING=0,手数,MARKET); 多头止损价:=MIN(ENTERPRICE-0.25*10日平均波幅,ENTERPRICE-3);开多次数:=1;ENDIF 趋卖市=1 AND 开空次数=0 THEN BEGIN趋卖市开空:BUYSHORT

    12、(CLOSE多头突破确认价 AND C多翻空确认价 AND TIME=0 THEN BEGIN多头止损1:SELL(1,手数,MARKET);多翻空1:BUYSHORT(1,手数,MARKET);开空次数:=1;END多头突破失败情况2:突破入场后,行情反转。止损的同时我们反手开空,但前提是时间在中午11:30之前,且多头进场在至少4根K之前。瞬间止损我们不允许反转,因为这往往是市场的膝跳反射IF HOLDING=0 AND TIME143000 AND 开空次数=0 THEN BEGINIF C=多头止损价 THEN BEGIN 多头止损2:SELL(1,手数,MARKET); IF TIM

    13、E=4 THEN BEGIN 多翻空2:BUYSHORT(1,手数,MARKET); 空头止损价:=MIN(ENTERPRICE+0.15*10日平均波幅,ENTERPRICE+3);/多翻空止损价为开仓价加15%的10日平均波幅和3个大点的较小值。 开空次数:=1; ENDENDEND空头突破失败情况1:价格曾经低于空头突破确认价,最新价又上涨至空翻多确认价IF 今低空翻多确认价 AND TIME143000 AND 开多次数=0 AND HOLDING=0 THEN BEGIN空头止损1:SELLSHORT(1,手数,MARKET);空翻多1:BUY(1,手数,MARKET);开多次数:=

    14、1;END空头突破失败情况2:突破入场后,行情反转。止损的同时我们反手开多,但前提是时间在中午11:30之前,且空头进场在至少4根K之前。瞬间止损我们不允许反转,因为这往往是市场的膝跳反射IF HOLDING0 AND TIME=空头止损价 THEN BEGIN 空头止损2:SELLSHORT(1,手数,MARKET); IF TIME=4 THEN BEGIN 空翻多2:BUY(1,手数,MARKET); 多头止损价:=MIN(ENTERPRICE-0.15*10日平均波幅,ENTERPRICE-3);/多翻空止损价为开仓价加15%的10日平均波幅和3个大点的较小值。 开多次数:=1; EN

    15、DENDEND/止损IF HOLDING0 AND C多头止损价 AND TIME151000 THEN 常规多头止损:SELL(1,手数,MARKET);IF HOLDING空头止损价 AND TIMEENTERPRICE+0.5*10日平均波幅 THEN 多头止损价:=ENTERPRICE+2*MINDIFF;IF 今低=143000 THEN BEGIN多头止损价:=MAX(多头止损价,3周期最低价);空头止损价:=MIN(空头止损价,3周期最高价);END/日内平仓IF TIME=151000 THEN BEGIN收盘平多:SELL(1,手数,MARKET);收盘平空:SELLSHOR

    16、T(1,手数,MARKET);趋卖市:=0;趋买市:=0;开多次数:=0;开空次数:=0;多头止损价:=0;空头止损价:=0;END恒温器策略策略简述当CMI指标小于20时,策略处于震荡模式。若处于趋买市:最新价max(开盘价+0.5*10日ART,3日平均低价),做多。最新价max(开盘价-0.75*10日ART,3日平均高价),做空。若处于趋卖市:最新价max(开盘价-0.75*10日ART,3日最低价),做多。最新价max(开盘价+0.5*10日ART,3日最高价),做空。当CMI指标大于20时,策略处于趋势模式。趋势策略使用布林带策略进入趋势模式后,有震荡模式下的持仓,以开仓价+-3个

    17、10日ATR为出场条件。策略详述恒温器策略以其能够在震荡和趋势市场中自动调节交易行为而得名。看到自动调节的字眼,很多人会觉得这一定是个高级、神秘的策略。但事实恰恰相反,这是个简单的策略组合,这类策略的关键在于将不同市场状态下能成功应用的策略相结合。市场状态转换,我们采用CMI指标(市场波皱指标)作为评判标准。当CMI值小于20,短周期震荡模式下运用的是区间突破结合模式识别策略。,我们将系统归于震荡模式。模式识别依靠关键价指标(关键价指的是(high+low+close)/3),如果当收盘价高于昨天的关键价,我们推测明天的市场是熊市(趋卖市),反之亦然。但是我们需明白,我们不是神算,不可能预测明

    18、天的市场,所以我们是计划以熊市手段去操作,但仍可以做多,只不过需要走出一定的行情。当CMI值大于20,该策略系统在趋势模式下(长周期)运用的是个类似布林通道策略(常规布林策略此处不做介绍)。值得称道的是,该模型考虑了趋势模式下,原有震荡持仓的处理问题。因为震荡模式的出场是以3日高低均价为准。但是把这个标准放在趋势模式下就不合时宜了,该策略的方法是以开仓价+-3个10日ATR为出场条件(一个相对较长期的条件)。代码/策略:恒温器系统/类型:中长期通道突破/中间变量input:m(50,5,300,30),N(1.25,0.1,10,0.1),ss(1,1,100,1),k1(0.5,0.1,1,

    19、0.1),k2(0.75,0.1,1,0.1);variable:A:=0;/0表示仓位是在趋势模式下下单1表示在震荡模式下下单MID :MA(CLOSE,M);/布林中轨UPPER:MID + N*STD(CLOSE,M);/布林上轨LOWER:MID - N*STD(CLOSE,M);/布林下轨今开:=callstock(stklabel,vtopen,6,0);CMI:=abs(close-ref(close,29)/(hhv(high,30)-LLV(L,30)*100;/0-100取值越大,说明趋势越强,CMI20震荡模式,反之为趋势关键价:(high+low+close)/3;/关

    20、键价的计算,国外常称作中枢价格(pivot point)ATR10:=ma(tr,10);3日均低价:=ma(L,3);3日均高价:=ma(h,3);手数:=ss;/交易条件if C关键价then begin趋买市开多平空条件:=Cmax(今开+k1*ATR10,3日均低价);趋买市开空平多条件:=Cendif c关键价then begin趋卖市开多平空条件:=Cmax(今开+k2*atr10,3日均低价);趋卖市开空平多条件:=Cend趋势开多条件:=cupper;趋势开空条件:=c趋势平多条件:=c趋势平空条件:=cmid;震荡多单平仓条件:=c=enterprice+3*ATR10;/交

    21、易系统if cmi20 then begin 震荡模式if C关键价then begin趋买市平空:sellshort(趋买市开多平空条件and holding=0,手数,market);趋买市开多:buy(趋买市开多平空条件and holding=0,手数,market);A:=1;endif c关键价then begin趋卖市平空:sellshort(趋卖市开多平空条件and holding=0,手数,market);趋卖市开多:buy(趋卖市开多平空条件and holding=0,手数,market);a:=1;endENdif cmi=20 then BEGIN 趋势模式if a:=1 then begin /趋势模式下 原震荡模式下 仓位处理震荡多单平仓:sell(震荡多单平仓条件and holding0,手数,market);震荡空单平仓:sellshort(震荡空单平仓条件and holding0,手数,market);a:=0;endif a:=0 then begin趋势平空:sellshort(趋势平空条件and holding0,手数,market);趋势开多:buy(趋势开多条件and holding=0,手数,market);A:=0;endend


    注意事项

    本文(程序化交易策略.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开