研究报告 Page1 策略研究报告 1 量化 交易 鳄鱼法则交易系统的设计 研究员信息 投资要点 交易获利的关键之一就是只操作那些具有最佳潜力的交易, 而规避利润很薄的情况。比尔.威廉姆交易小组进行了深人研究, 将新的混沌科学,还有量子物理、全息理论、控制论、非线性动 力学、信息理论、以及分形几何学应用于股票和商品期货交易的 领域。威廉姆博士以最新混沌科学的理沦与命题为依据、总结了 套实用方便的跨市场交易方法,并以股票、期货、债券、外汇、 相关研究报告 期指等市场中的多空两而的交钻实践案例为佐证,通过数百万次《程序化交易研究报告》的叠代过程,比尔.威廉姆设计出一套可以用于普通个人电脑的 过程。鳄鱼组线(Alligator)基本上就是一个指南针,无论即时------2012年年8月12日 《统计套利策略研究报告》 价格正向哪个方向移动,它都能让你保持适当的交易方向。 --------2012年7月20日 在中国日益融入全球经济金触人循环、中国资木市场即将全《分级基金套利研究报告》面崛起、中国的证券法规推陈出新的历史背景下,他的思想与实 践方法对于迅速成长起来的国内投资者有着很好的借鉴意义,并--------2012年6月18日 《中国私募房地产基金研究报告》有助于21世纪的中国投资者在国内与国际金融证券市场上取得 投资与投机的进步。 --------2012年5月12日 《私募股权基金二级市场研究报告》 在报告里,将讲解鳄鱼组线、它的功能、设置方法、以及如何将其应用于交易。 --------2012年4月16日 研究员信息 作者保证报告所采用的数据均来自合规渠道,通过合理判断得出结论,不受任何第三方授意、影响,特此声明 研究员信息 作者保证报告所采用的数据均来自合规渠道,通过合理判断得出结论,不受任何第三方授意、影响,特此声明
2 内容目录 第一章 鳄鱼线 ........................................... 3 鳄鱼线及公式.......................................... 3 鳄鱼线原理 ........................................... 3 鳄鱼法则交易策略 ...................................... 4 第二章 碎形——交易的开始 ................................... 5 碎形原理 ............................................. 5 碎形结构 ............................................. 5 第三章 AO及AC .......................................... 7 AO及AC定义 .......................................... 7 区域的概念 ........................................... 7 绿色区域加仓.......................................... 7 红色区域加仓......................................... 10 第四章 鳄鱼交易系统的设计.................................. 11 寻找机会 ............................................ 11 进场................................................ 12 停损................................................ 12 加仓................................................ 12 出场................................................ 13 第五章 交易系统模拟数据 ................................... 13 历史数据回测......................................... 14 测算报告 ............................................ 15 模拟实盘数据......................................... 17 数据统计 ............................................ 29 附录 .................................................... 20 交易策略源码......................................... 20 下单组件源码......................................... 23
3 第一章 鳄鱼线(Alligator) 基本上,无论实时价格往任何方向移动,鳄鱼线(如图标)扮演着使我们的交易保持正方向的方向盘角色。而且,鳄鱼线会协助我们在有方向的趋势中获利。并且将这个获利持续到会吃掉我们利润的盘整趋势出现为止。 (1) 鳄鱼线及公式 鳄鱼线是结合了不规则碎形几何学和非线性动力学的平均线。有蓝、红、绿三条。 蓝线,是鳄鱼的颚。(如图标) 它的画法是取13根bar的平滑移动平均,然后将算出来的结果往未来的方向移动8根bar。 红线,是鳄鱼的牙齿。(如图标) 红色线是取8根bar的平滑移动平均,然后将算出来的结果往未来的方向移动5根bar所构成。 绿线,是鳄鱼的上唇。(如图标) 绿色线是取5-bar 平滑移动平均数,然后将算出来的结果往未来的方向移动3根bar所构成。 鳄鱼线公式 Var1:=(H+L)/2; 上唇: REF(SMA(Var1,5,1),3), 牙齿: REF(SMA(Var1,8,1),5), 下颚: REF(SMA(Var1,13,1),8), (2)鳄鱼原理 当蓝、红、绿三条移动平均线纠缠在一起时(如图1/16~目前),表示鳄鱼他睡着了。 当他从长时间的睡眠中醒来时,会十分饥饿。而且进一步的追捕价格(如图9/17~1/16),以填满他的胃,直到他得到满足。 然后,他开始闭上嘴巴,并且丧失了进食的兴趣(如图1/16)。 只要嘴巴开始闭起来,就是告诉我们:取得利润。并等待。观察鳄鱼是否将打个盹儿。 所以,当鳄鱼睡觉时,我们通常会逗留在市场外,并且等待。直到有个碎形(详章二:Fractal)在下颚外被触发为止。他能让我们远离波动不定的市场,并使我们能进入重要且趋势明显的市场中。亦即价格向上或向下突破碎形(详章二:Fractal)时,便是你从趋势中开始获利的时候。
4 (3)鳄鱼法则交易策略: 1、不进行交易,直到第一个在鳄鱼嘴巴外面的碎形(详章二:Fractal)被突破时。 2、若价格在鳄鱼的嘴巴之上,仅取用买的讯号而且不卖。并且将停利单向上移动。 3、若价格在鳄嘴向下的另一边,只取用卖的讯号。且仅在停损离场时才买。不做多。 亦即:向上的嘴巴我们只做多。而向下的嘴巴我们只做空(如图9/17~1/16)。 如果目前的价格正在鳄鱼嘴巴的外面,表示我们正处于某种程度的冲击波中。(详章三:AO) 如果目前的价格正环绕着鳄嘴,那我们正处于某种程度的修正波中。(详章三:AO)
5 第二章:碎形—— 交易的起始 (1)碎形原理: 碎形是利用简单的多空原理而形成。 当市场上涨的时候,买方追高价的意愿很高,形成价格不断上升,随者价格不断上升买方意愿也将逐渐减少,最后价格终于回跌。然后市场进入一些新的信息(混沌)影响了交易者的意愿,此时市场处于低价值区,买卖双方都同意目前的价值区,但对于价格却有不同的看法,当买方意愿再度大于卖方意愿时价格就会上涨,如果这个买方的动能足以超越向上碎形时,我们将在向上碎形上一档积极进场。 下跌时原理亦同。 (2)碎形结构:请参考图三 图三 最典型的碎形结构如图一中之A型态。 它最少由连续5根的线条所组成,中间的高点一定最高(向下碎形则中间低点一定最低),中间线的左边有两根较低的高点,右边也有两根较低的高点(向下碎形则为左右各有两根较高的低点),你可以现在举起手,观察自己五根手指的结构,就是典型的向上碎形。 分辨向上碎形时我们只在乎高点的位置,观察向下碎形时则只在乎低点的位置。 在找寻碎形时我们必须注意: 1、如果今天的线条高点与前一高点相同时,今天的线条将不列入5根手指头之内(如图一中之D型态),此时就需等待第6根线条的确认。 2、向上与向下碎形可由一根线条来完成(如图一中之C型态),因为它都符合上下碎形的结构原理。 3、向上与向下碎形可共享外围的线条(如图一中之B型态)。 (3)使用原则: 当碎形形成时它总是碎形结构不会任意变动的,但不是每一个碎形都会变成交易中的主角,我们曾提到过碎形是交易进场的起始讯号,碎形要成为起始讯号主角,必须具备下列要件: 1、有效的向上碎形讯号必须高于鳄鱼的牙齿(高于红线,如图二中的红色向上碎形符号,蓝色为无效碎形)。 2、当有效的向上碎形被突破后,只要价格仍然在鳄鱼嘴巴上方,我们都只做买的策略,除
6 了停损我们不做卖单进场的交易。 3、有效的向下碎形讯号必须低于鳄鱼的牙齿(低于红线)。 4、当有效的向下碎形被跌破后,只要价格仍然在鳄鱼嘴巴下方,我们都只做卖的策略,除了停损我们不做买单进场的交易。 5、有时碎形形成时为无效碎形,但随时间右移而鳄鱼牙齿逐步走低(走高)时无效碎形会变成有效碎形讯号。
7 第三章:AO和AC (1)A0、AC定义 A0是股票及商品市场中最好的动能指针。AO测量最近的5个价格之条形图动能,并和过去的34支条形图作比较。 它是以5个价格之条形图之中点价(最高+最低)/2取移动平均,再减去34支条形图之中点价(最高+最低)/2之移动平均。 如果说价格行进是物理学中的"距离",那么AO便是"速度",AC就是"加速度"了。 首先我们可以观察到一个自然界的现象,那就是一个行进中的物体要做反方向运动之前,原方向的动能必定先减少,渐趋至零之后,反方向的动能开始增加,物体才会往反方向运动,而进一步衡量动能何时增加或减少便可提前知道物体运动的方向;所以动能领先价格,而AC又领先动能,所以作者说,学会AO相当于可以看到明天的华尔街日报,那么学会AC就相当于提早看到后天的华尔街日报了。 其为AO与其五天简单移动平均差值的再五天化简单移动平均。 A0和AC公式 Var1:=(H+L)/2; AO:SMA(Var1,5,1)-SMA(Var1,34,1),; AC:SMA((AO-SMA(AO,5,1)),5,1); 每当动量A0与我们的交易处于同一方向,并且动量正在我们的方向加速,这时,我们就万事俱备了。换言之,我们有动量与我们联手,甚至动量还在我们的方向上继续加速,而且价格也在我们的方向上收盘。这给我们提供了获利的绝对地图(价格(P)。这真是让人梦寐以求的事情,我们可没时间缩首畏尾。 (2)区域的概念 区域由AO指标与AC指标共同确定如果动量和加速度处于同一方向,那么我们不在绿色区域中,就在红色区域中。但是,如果两种指标产生矛盾,那么我们即处于灰色区域中。区域显示于价格走势图中。绿色区域代表强劲的多头市场,红色区域代表强劲的空头市场,而灰色区域则代表处于过渡期的市场。区域交易背后的原理是:每当你处于”区域’之中时,你要很积极地增持现有的仓位。 (3)绿色区域加仓条件 要求: (1动量在上行,(2)加速度在上行,(3)价格收盘于更高的位置
8 (3)红色区域加仓条件 要求: (1动量在下行,(2)加速度在下行,(3)价格收盘于更低位置
9
10
11 第四章 鳄鱼交易系统的设计 在我们进场交易前,必先拟定交易策略,而交易策略的拟定又需包含机会寻找、进场、停损、加码、出场等四个要素,如果你要成为一个快乐而又有计画的交易者,不管是短线、长线交易,你的策略必须具备这些内涵寻找机会:因为市场有70%~85%的时间哪儿都不去,这种市况我们是无法取得利润的,因此我们需要激活第一个支持工具:鳄鱼,期望避开盘整区段并于市场发动时获得先机 一寻找机会的方法: 1、睡着的鳄鱼。(最好是已经沉睡一阵子的鳄鱼,蓝、红、绿三线相接近或互相纠缠时) 2、AO接近零轴 3、AC接近零轴。 ◎进入市场你必须从睡着的鳄鱼开始,一旦你在市场建立部位后,就需依据混沌法则的加码条件积极进场 ◎在价格未脱离鳄鱼嘴巴前,不要主观判断未来可能的方向,我们不在乎市场往那个方向走,我们只在乎能否拿到市场给予我们的利润 我们可以多观察,等待沉睡的鳄鱼,只要机会出现就勇敢的去接受市场即将给你的利润,有了交易方法并确实执行,风险就小很多了。 二、进场 当我们找到沉睡的鳄鱼之后,开始等待第一个讯号的触发:碎形。 ◎不管有多少个碎形讯号成形,我们只找寻有效的碎形 ◎在有效碎形的高/低点加/减一档为进场买进/卖出的参考价位。 ◎并非所有的有效讯号都会让我们获利,如图『A、B、C』三点,但我们不要在乎这种损失,Bills Williams把它称做『低租金的区域』,这种损失相对于随后的获利而言是小的。
12 三、停损: 这里的停损指的是初进场时的停损,Bill Williams的方法是以鳄鱼的牙齿(红线)为停损点的设立依据,进场买进时若随后收盘价低于红线就停损出场,卖出时则以收盘价高于红线时停损出场。 四、加仓 当第一个有效碎形被触发后,我们也建立了第一个原始仓位,此时我们将成为一个积极的交易者,随者市场价格自己的波动,我们采用AO、AC、BL、Zones、Fractal的同向讯号进场(看官可参考本讨论区有关混沌交易法之各章),例如在红线之上我们就采用各买进讯号,反之则采用卖出讯号。当然我们也可以沿途不做任何加码动作,
13 五、出场: 进场之后我们让市场自己去表演,不要去设定任何出场目标,尽量延伸市场给予我们的利润,我们只需等待市场告诉我们何时出场。 出场方法有: 1、收盘高/低于红线时。 2、区域交易法中5根连续相同颜色Bar的高/低点加/减一档。 3、收盘价高/低于绿线时(Lips)。 4、AO、AC、碎形的反向讯号。
14 第五章 交易系统模拟盘数据 为了保证交易系统的稳定性,我们将进行历史数据回测和模拟实盘。 (1)历史数据回测 效果预览(其中白线为资金曲线) 测算报告 IF1207 1分钟 最终版 ------------------------------- 名称 全部交易 多头 空头 合约 IF1207 K线周期 1分钟 开始时间 2012-5-21 结束时间 2012-7-11 单位 300元/点 保证金 12% 手续费 %% 下单价格 指令价位
15 开仓手数 1 参数 [0,0,0,0,0,0] 名称 全部交易 多头 空头 测试天数 52 测试周期数 9986 指令总数 1592 初始资金 最终权益 空仓周期数 1361 最长连续空仓周16 期数 最长交易周期 106 标准离差 标准离差率 盈亏总平均/亏损 平均 最大回撤 最大回撤时间 2012/06/08 09:33 最大回撤比 % 最大回撤比时间 2012/06/08 09:33 每手最大回撤 每手平均盈亏 盈利率 % % % 胜率 % 平均盈利/最大回 撤 平均盈利/平均亏 损 净利润 总盈利 总亏损 总盈利/总亏损 其中持仓浮盈 交易次数 盈利比率 盈利次数
16 亏损次数 持平次数 平均交易周期 平均盈利交易周 期 平均亏损交易周 期 平均盈亏(利润) 平均盈利 平均亏损 最大盈利 最大亏损 最大盈利/总盈利 最大亏损/总亏损 净利润/最大亏损 最大持续盈利次 数 最大持续亏损次 数 最大持仓 最大使用资金 扣除最大盈利后% % % 收益率 扣除最大亏损后% % % 收益率 期间最大权益 期间最小权益 手续费 成交额
17 (2)模拟实盘数据
18
19 (3)数据统计 由于程序里将设置17个最小变动价位止损,53个价位止盈.最大仓位为4手。 交易次数 89 盈利次数 16 亏损次数 16 胜率 50% 总盈利 48490 每次交易平均盈利 48490÷89≈ 盈利率 48490÷(10000000×12%)×100%≈% 回报风险比 53÷17≈ 风险百分比 17×300××4÷(1000000×12%)×100%=% 最大回撤 8760 最大回撤比 8760÷(10000000×12%)×100%=%
20 附 录 (一)交易策略源码 Y:=(H+L)/2; AA:=REF((SMA(Y,5,1)),3); BB:=REF((SMA(Y,8,1)),5); CC:=REF((SMA(Y,13,1)),8); R2:=REF(BB,5); KU1:=IFELSE(H=HHV(H,3),1,0); KD1:=IFELSE(L=LLV(LOW,3),1,0); UL:=IFELSE(REF(KU1,2)=1 AND REF(KU1,1)=0 AND KU1=0,REF(HIGH,2),REF(HIGH,2+BARSLAST(REF(KU1,2)=1 AND REF(KU1,1)=0 AND KU1=0))); DL:=IFELSE(REF(KD1,2)=1 AND REF(KD1,1)=0 AND KD1=0,REF(LOW,2),REF(LOW,2+BARSLAST(REF(KD1,2)=1 AND REF(KD1,1)=0 AND KD1=0))); SHANG:IFELSE(HIGH>=R2,UL,REF(UL,BARSLAST(HIGH>R2))); XIA:IFELSE(LOW<=R2,DL,REF(DL,BARSLAST(LOW<=R2))); C>SHANG AND REF(CLOSE,1)<REF(SHANG,1) AND ISLASTBPK=0 ,BPK; C<XIA AND REF(CLOSE,1)>REF(XIA,1) AND ISLASTSPK=0,SPK; AO:=SMA(Y,5,1)-SMA(Y,34,1); AC:=SMA((AO-SMA(AO,5,1)),5,1); AO>REF(AO,1) AND REF(AO,1)>REF(AO,2) AND AC>REF(AC,1) AND REF(AC,1)>REF(AC,2) AND C>REF(C,1) AND BUYVOL<4 AND ISLASTBPK=1,BK; AO<REF(AO,1) AND REF(AO,1)<REF(AO,2) AND AC<REF(AC,1) AND REF(AC,1)<REF(AC,2) AND C<REF(C,1) AND BUYVOL<4 AND ISLASTSPK=1,SK; A:=MINPRICE('IF1207'); (((C<=BKPRICE-SL*A||C>=BKPRICE+TP*A)&&BKPRICE>0) OR (C>R2)) AND SELLVOL>0,SP; (((C>=SKPRICE+SL*A||C<=SKPRICE-TP*A)&&SKPRICE>0) OR (C<R2)) AND BUYVOL>0,BP; (二)下单组件源码 //主要策略:设定分批总手数和每次分批手数,开平仓时,判断当前价与信号产生时的价位差别是否过大,过大后面的批次就取消。 VAR N;//定义总手数。 VAR KPN;//定义每批手数。 VAR M;//定义价格划点参数。
21 VAR Status; //这个变量的作用是控制由价差过大而影响下单的走势。 VAR Price; VAR A;// 控制开平仓次数 VOID MAIN()//主函数。 { M=10; N=3;//设定总手数为3 KPN=1;//设定每批1手。 A=1; Status=ReadGlobal("STATUS"); Price=Price(F_DealCode());//定义最新价为当前模型所加载合约的最新价 IF(F_FreshSig()==1&&F_SigValid()==1)//取得新信号且信号不消失 { Status=0; IF((F_Sig()==BK||F_Sig()==SK)&&Status==0&&F_SellPosition()<N&&F_BuyPosition()<N)//当前信号为开仓信号的时候。 { KTDeal();//运行开仓分批函数。 } ELSE IF((F_Sig()==BP||F_Sig()==SP)&&Status==0) //当前信号为平仓信号的时候。 { PTDeal();//运行平仓分批函数。 } ELSE IF((F_Sig()==BPK||F_Sig()==SPK)&&Status==0) //当前信号为平开仓信号的时候。 { TDeal();//运行平开仓函数。 } } ELSE IF(F_FreshSig()==0)//取得处理过的信号 { IF((F_Sig()==BK||F_Sig()==SK)&&Status==0&&F_SellPosition()<=N&&F_BuyPosition()<=N)//当前信号为开仓信号的时候。 { KTDeal();//运行开仓分批函数。 } ELSE IF((F_Sig()==BP||F_Sig()==SP)&&Status==0) //当前信号为平仓信号的时候。 { PTDeal();//运行平仓函数。 }
22 ELSE IF((F_Sig()==BPK||F_Sig()==SPK)&&Status==0) //当前信号为平仓信号的时候。 { TDeal();//运行平开仓分批函数。 } } ELSE IF(F_SigValid()==0)//当前信号消失 { BTDEAL();//执行信号消失处理函数 } WriteGlobal("STATUS",Status);//将本次运行过后的下单状态写到到注册表中。 } VOID KTDeal()//定义开仓分批函数 { IF(F_Sig()==BK&&F_BuyPosition()<N && A==1)//如果当前信号为BK。 { IF(ABS(Price(F_DealCode())-F_BuyAvgPrice())<=M)//如果当前价格与信号发出时价格差不大于M { T_Deal(F_DealCode(),0,0,KPN,Offers(F_DealCode(),"ask1"));//做多KPN手数。 A=0; } ELSE IF(T_IsNoOrder()!=1&&ABS(Price(F_DealCode())-F_SigPrice())>M*MinPrice(F_DealCode()))//如果当前价格与信号发出时价格差大于M且有挂单 { MessageOut("价差过大"); T_DeleteOrderAll(); Status=1; } } ELSE IF(F_Sig()==SK&&F_SellPosition()<=N && A==0)//如果当前信号为SK。 { IF(ABS(Price(F_DealCode())-F_SellAvgPrice())<=M)//如果当前价格与信号发出时价格差不大于M { T_Deal(F_DealCode(),1,0,KPN,Offers(F_DealCode(),"bid1"));//做空KPN手数。 A=1; } ELSE IF(T_IsNoOrder()!=1&&ABS(Price(F_DealCode())-F_SigPrice())>M*MinPrice(F_DealCode()))//如果当前价格与信号发出时价格差大于M且有挂单 { MessageOut("价差过大"); T_DeleteOrderAll(); Status=1; } }
23 ELSE { MessageOut("等待成交");//其他情况显示“等待成交”。 } } VOID PTDeal()//定义平仓函数 { IF(F_SellPosition()>=0||F_BuyPosition()>=0)//如果已有持仓的手数大于0 { IF(F_Sig()==BP)//如果当前信号为BP。 { T_Deal(F_DealCode(),0,1,F_SellPosition(),Offers(F_DealCode(),"ask1"));//平空仓指定手数。 //此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。下同理。 } ELSE IF(F_Sig()==SP)//如果当前信号为SP。 { T_Deal(F_DealCode(),1,1,F_BuyPosition(),Offers(F_DealCode(),"bid1"));//平多仓指定手数。 } ELSE { MessageOut("等待成交");//其他情况显示“等待成交”。 } } } VOID TDeal()//定义开仓分批函数 { IF (F_Sig()==BPK) //如果信号是买平开信号 { IF (F_SellPosition()>0 && F_SellPosition()<KPN && A==1)//如果当前模型空头持仓大于0小于KPN { T_Deal(F_DealCode(),0,1,F_SellPosition(),Price+2*MinPrice(F_DealCode()));//以当前模型空头持仓手数发出买平委托 //此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 T_Deal(F_DealCode(),0,0,KPN,Price+2*MinPrice(F_DealCode()));//以KPN手发出买开委托 A=0; } ELSE IF (F_SellPosition()>=KPN && A==1)//如果当前空头持仓大于等于KPN手 { T_Deal(F_DealCode(),0,1,KPN,Price+2*MinPrice(F_DealCode()));//以KPN手发出买平委托 //此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 T_Deal(F_DealCode(),0,0,KPN,Price+2*MinPrice(F_DealCode()));//以KPN手发出买开委托 A=0; }
24 ELSE IF (F_SellPosition()==0&& A==1)//空头持仓为0 { MessageOut ("当前没有空头持仓"); T_Deal(F_DealCode(),0,0,KPN,Price+2*MinPrice(F_DealCode()));//以KPN手发出买开委托 A=0; } } IF (F_Sig()==SPK) //如果信号是卖平开信号 { IF (F_BuyPosition()>0 && F_BuyPosition()<KPN&& A==0)//如果当前模型多头持仓大于0小于KPN { T_Deal(F_DealCode(),1,1,F_BuyPosition(),Price-2*MinPrice(F_DealCode()));//以当前模型多头持仓手数发出卖平委托 //此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 T_Deal(F_DealCode(),1,0,KPN,Price-2*MinPrice(F_DealCode()));//以KPN手发出卖开委托 A=1; } ELSE IF (F_BuyPosition()>=KPN && A==0)//如果当前空头持仓大于KPN手 { T_Deal(F_DealCode(),1,1,KPN,Price-2*MinPrice(F_DealCode()));//以KPN手发出卖平委托 //此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 T_Deal(F_DealCode(),1,0,KPN,Price-2*MinPrice(F_DealCode()));//以KPN手发出卖开委托 A=1; } ELSE IF (F_BuyPosition()==0 && A==0)//多头持仓为0 { MessageOut ("当前没有多头持仓"); T_Deal(F_DealCode(),1,0,KPN,Price-2*MinPrice(F_DealCode()));//以KPN手发出卖开委托 A=1; } } } VOID BTDEAL() //信号消失处理函数 {
25 IF (F_Sig()==BPK) { IF (F_BuyPosition()>0 && F_BuyPosition()<KPN && A==1)//如果当前模型多头持仓大于0小于KPN { T_Deal(F_DealCode(),1,1,F_BuyPosition(),Price-2*MinPrice(F_DealCode())); //以当前模型多头持仓手数发出卖平委托,此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 A=0; } ELSE IF (F_BuyPosition()>=KPN && A==1)//如果当前多头持仓大于KPN手 { T_Deal(F_DealCode(),1,1,KPN,Price-2*MinPrice(F_DealCode())); //以KPN手发出卖平委托,此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 A=0; } ELSE IF (F_BuyPosition()==0) { MessageOut ("当前没有多头持仓"); } } IF (F_Sig()==SPK) { IF (F_SellPosition()>0 && F_SellPosition()<KPN && A==0)//如果当前模型空头持仓大于0小于KPN { T_Deal(F_DealCode(),0,1,F_SellPosition(),Price+2*MinPrice(F_DealCode())); //以当前模型空头持仓手数发出买平委托,此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 A=1; } ELSE IF (F_SellPosition()>=KPN && A==0)//如果当前模型空头持仓大于KPN { T_Deal(F_DealCode(),0,1,KPN,Price+2*MinPrice(F_DealCode())); //以KPN手数发出买平委托,此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 A=1; } ELSE IF (F_SellPosition()==0)
26 { MessageOut ("当前没有空头持仓"); } } IF (F_Sig()==BK)//如果BK信号消失 { T_Deal(F_DealCode(),1,1,KPN,Price-2*MinPrice(F_DealCode())); //当前合约平掉误开仓手数KPN //此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 } ELSE IF (F_Sig()==SK)//如果SK信号消失 { T_Deal(F_DealCode(),0,1,KPN,Price+2*MinPrice(F_DealCode())); //当前合约平掉误开仓手数KPN //此句中T_Deal的第3个参数为1,表示平仓,只适用于非上交所合约,如果绑定上交所合约时,请将1改为2即可。 } ELSE IF (F_Sig()==BP)//如果BP信号消失 { T_Deal(F_DealCode(),1,0,KPN,Price-2*MinPrice(F_DealCode())); //当前合约重新卖开误平仓手数KPN } ELSE IF (F_Sig()==SP)//如果SP信号消失 { T_Deal(F_DealCode(),0,0,KPN,Price+2*MinPrice(F_DealCode())); //当前合约重新买开仓误平仓手数KPN } }
27 重要声明 本报告仅供中金阿尔法投资研究有限公司(以下简称“本公司”)的客户使用。本公司不会因接收人收到本报告而视其为客户。 本报告基于本公司及其研究人员认为可信的公开资料或实地调研资料,反映了作者的研究观点,力求独立、客观和公正,结论不受任何第三方的授意或影响。但本公司及其研究人员对这些信息的准确性和完整性不作任何保证,且本报告中的资料、意见、预测均反映报告初次公开发布时的判断,可能会随时调整。本公司对本报告所含信息可在不发出通知的情形下做出修改,投资者应当自行关注相应的更新或修改。本报告所载的资料、工具、意见、信息及推测只提供给客户作参考之用,不构成任何投资、法律、会计或税务的最终操作建议,本公司不就报告中的内容对最终操作建议做出任何担保。本报告中所指的投资及服务可能不适合个别客户,不构成客户私人咨询建议。 市场有风险,投资需谨慎。在任何情况下,本公司不对任何人因使用本报告中的任何内容所引致的任何损失负任何责任。 投资者应注意,在法律允许的情况下,本公司及其本公司的关联机构可能会持有报告中涉及的公司所发行的证券并进行交易,并可能为这些公司正在提供或争取提供投资银行、财务顾问和金融产品等各种金融服务。本公司及其本公司的关联机构或个人可能在本报告公开发布之前已经使用或了解其中的信息。 本报告版权归“中金阿尔法投资研究有限公司”所有。未经事先本公司书面授权,任何人不得对本报告进行任何形式的发布、复制。如引用、刊发,需注明出处为“中金阿尔法研究部”,且不得对本报告进行有悖原意的删节或修改。