BUYSHORT(CROSS(AB,CLOSE) AND K2=1 and HOLDING=0,30%,market); //开空操作 5.2常见问题
(1)LIMIT和STOP指令的区别和联系
LIMIT------加入限价单,交易评测时按照次周期达到限价即操作,否则放弃;处于图表交易时按照指定限价报单交易。 所谓限价就是交易价优于设定的价格。具体说来对于买入或卖空就是低于设定价格,对于卖出或买空就是高于设定价格。
STOP------加入停损单,或又称突破交易,交易评测时按次周期达到设定价格即操作买入,否则放弃;处于图表交易时按照指定停损价格报单交易。
所谓停损就是交易价比设定的价格要差,(就是说和价格运动方向无关,只要比下的价格差,就下单,不管价格是由好到坏还是有坏到好。)具体说来对于买入或卖空就是高于设定价格,对于卖出或买空就是低于设定价格
BUY(holding=0, 1, LIMIT, 4000); //如果无多头持仓,以4000挂单子 //结果:成交价≤4000
SELL(holding>0,0,LIMIT,4000); //如果有多头持仓,以4000价格挂单子; //结果:成交价≥4000
BUY(holding=0, 1, STOP, 4000); //如果无多头持仓
//当最新价≥4000,以当时的对手价买一手单子 //结果:成交价根据行情而定
//相当于-----条件单,当价格突破某个值时,买开仓。
SELL(holding>0,0,STOP,4000);
//如果有多头持仓,4000是止损触发价(所能接受的最大损失的最低值)。 //当最新价≤4000,以当时的对手价卖出全部持仓。 //结果:成交价根据行情决定。
//相当于----止损----条件单,当价格下跌到某个值时,卖平仓。
BUYSHORT(holding=0, 1, STOP, 2020); //如果无空头持仓
//当最新价≤2020时,以当时的对手价买一手单子 //结果:成交价根据行情而定
//相当于-----条件单,当价格下跌某个值时,卖开仓。
SELLSHORT(holding<0,0,STOP,2020);
//如果有空头持仓,2020是止损触发价(所能接受的最大损失的最高值)。 //当最新价≥2020,以当时的对手价卖出全部持仓。 //结果:成交价根据行情决定。
//相当于----止损----条件单,当价格突破某个值时买平仓。
(2)金字塔下的交易都支持哪些交易指令,有什么区别?
26
金字塔对于所有的可交易品种,均支持4种交易指令,即限价、市价、停损、限价停损。但是这几种交易指令是通过不同方式完成工作的,限价指令是所有平台都支持的,对于市价和停损单,下面几种交易平台如下:
CTP综合交易平台 除了上期所不支持市价外,其他3个交易所均支持市价指令,在上期所的品种下市价单金字塔是采用加N个变动价位实现,默认是3个,用户可在交易设置中更改。除了大连交易所支持停损指令外,其他交易均不支持停损指令,在不支持停损指令的交易所下停损单时金字塔是采用内部监控模式实现,最新价触及停损价位后立即按照市价发出委托单。金字塔CTP平台不支持限价停损指令,用户使用限价停损指令发出为委托单时,实际会按照停损指令发出。
IB(美国赢透)交易平台 这个平台支持所有限价、市价、停损、限价停损这个4个指令。在IB平台发出停损指令后会将指令单发送到IB的交易服务器上保存,等待触发。
第六章 交易系统编写范例和常见问题
6.1趋势类交易模型编写范例 1)均线类 ①均线排列模型 关键函数:MA 使用周期:任意
模型说明:MA5,MA10,MA20多头排列时做多,空头排列时做空。编者以一个周期内这三条均线的大小关系为判断标准举例,大家也可以使用多个周期的比较来判断多/空头排列关系。 MA5:=MA(CLOSE,5); MA10:=MA(CLOSE,10); MA20:=MA(CLOSE,20);
{开多} ENTERLONG: MA5>MA10 AND MA10>MA20,TFILTER; {平多} EXITLONG: MA5
对于新交易系统模型,可用下面4句代替
SELLSHORT(MA5>MA10 AND MA10>MA20 and HOLDING<0,HOLDING,market); //平空操作 BUY(MA5>MA10 AND MA10>MA20 and HOLDING=0,30%,market);//开多操作 SELL(MA5 容易犯的编写错误: A、交易模型中不允许使用只写:(即定义并画线)的写法。 如:MA5:=MA(CLOSE,5); 错误写成MA5:MA(CLOSE,5); 27 B、对于三个数的比较,大家往往习惯写成MA5>MA10>MA20这样,而在金字塔的模型编写中,目前只能两个变量之间进行比较,也就是说此类三个以上变量连续比较需要像模型中那样拆分来写:MA5>MA10 AND MA10>MA20 C、缺少计算函数。 如:求均线时,写为MA5:(CLOSE,5),而缺少了MA,此类错误语法检测无法识别,往往造成软件应用错误。 ②均线金死叉模型 关键函数:MA、EMA、EMA2、CROSS 使用周期:所有 K 线周期。 模型说明:短期均线上穿长期均线(金叉)做多,短期均线下穿长期均线(死叉) 做空。 参数设置: 参数 N1 ,最小值 0,最大值 100,缺省值 5; 参数 N2 ,最小值 0,最大值 100,缺省值 30; A、简单移动平均线: P1:=MA(CLOSE,N1); P2:=MA(CLOSE,N2); BPK :=CROSS(P1,P2); SPK :=CROSS(P2,P1); B、指数加权平均线: P1:=EMA(CLOSE,N1); P2:=EMA(CLOSE,N2); BPK :=CROSS(P1,P2); SPK :=CROSS(P2,P1); C、线性加权平均线: P1:=EMA2(CLOSE,N1); P2:=EMA2(CLOSE,N2); BPK :=CROSS(P1,P2); SPK :=CROSS(P2,P1); {开多} ENTERLONG: BPK,TFILTER; {平多} EXITLONG: SPK,TFILTER; {开空} ENTERSHORT: SPK,TFILTER; {平空} EXITSHORT: BPK,TFILTER; 图表交易模型就完成了,其仓位控制在第5页图中设置 对于新交易系统模型,可用下面4句代替 SELLSHORT(BPK and HOLDING<0,HOLDING,market); //交易系统之平空操作 BUY(BPK and HOLDING=0,30%,market);//交易系统之开多操作 SELL(SPK and HOLDING>0,HOLDING,market); //交易系统之平多操作 BUYSHORT(SPK and HOLDING=0,30%,market); //交易系统之开空操作 ③均线结合 MACD 模型 关键函数:EMA 28 使用周期:日线 模型说明: 利用 DIFF 和 DEA 的比较和收盘价的 15 日指数加权和最新价的比较作为买卖依据进行交易。 DIFF := EMA(CLOSE,12) - EMA(CLOSE,26); DEA:= EMA(DIFF,9); EMA15:=EMA(CLOSE,15); BPK :=DIFF>DEA AND CLOSE>EMA15; SPK :=DEA>DIFF AND EMA15>CLOSE; {开多} ENTERLONG: BPK,TFILTER; {平多} EXITLONG: SPK,TFILTER; {开空} ENTERSHORT: SPK,TFILTER; {平空} EXITSHORT: BPK,TFILTER; 图表交易模型就完成了,其仓位控制在第5页图中设置 对于新交易系统模型,可用下面4句代替 SELLSHORT(BPK and HOLDING<0,HOLDING,market); //交易系统之平空操作 BUY(BPK and HOLDING=0,30%,market);//交易系统之开多操作 SELL(SPK and HOLDING>0,HOLDING,market); //交易系统之平多操作 BUYSHORT(SPK and HOLDING=0,30%,market); //交易系统之开空操作 2) 通道类 ①唐奇安通道模型 关键函数:HHV、LLV、REF、CROSS 使用周期:日线 模型说明: 突破前 20 天最高价做多,突破前 20 天最低价做空。 参数设置:N,最小值 5,最大值 100,缺省值 20; input:N(20,5,100,1),NS(10,0,60,1); 持仓:HOLDING,LINETHICK0; 总次数: TOTALTRADE,LINETHICK0; 盈利:NUMWINTRADE,LINETHICK0; 胜率:ROUNDS(100*PERCENTWIN,1),LINETHICK0; 连亏:MAXSEQLOSS,LINETHICK0; 连盈:MAXSEQWIN,LINETHICK0; BK:=CROSS(H, hhv(ref(h,1),N)); SK:=CROSS(llv(ref(l,1), N),L); Price:=AVGENTERPRICE;//持仓价位 图表交易模型中不能使用交易函数和程式化函数,故在第64页图中有图表唐奇安通道模型 SELLSHORT(BK and 持仓<0,持仓,market); SELLSHORT(持仓<0,持仓,Stopr,Price+NS); BUY(BK and NOT(TYPE(1)=1),30%,market); SELL(SK and 持仓>0,持仓,market); 29 SELL(持仓>0,持仓,Stopr,Price-NS); BUYSHORT(SK and NOT(TYPE(1)=3),30%,market); 其中,NS为止损点数 容易犯的编写错误: 最高价高于前 20 周期最高价。应写为 HIGH>REF(HHV(HIGH,20),1),常见错误是 直接写为 HIGH>HHV(HIGH,20); ②布林通道结合阴阳 K 线模型 关键函数:STD、CROSS、ISUP、ISDOWN 使用周期:日线 模型说明:收盘价向上突破布林通道下轨并前当根K线收阳做多,收盘价向下突破布林通道上轨并前当根 k 线收阴做空。 参数设置:N,最小值1,最大值100, 缺省值26 M,最小值1,最大值100, 缺省值26 MID:=MA(CLOSE,N); TMP2:=STD(CLOSE,M); TOP:=MID+2*TMP2; BOTTOM:=MID-2*TMP2; BPK :=CROSS(CLOSE,BOTTOM) AND ISUP; SPK :=CROSS(TOP,CLOSE) AND ISDOWN; {开多} ENTERLONG: BPK,TFILTER; {平多} EXITLONG: SPK,TFILTER; {开空} ENTERSHORT: SPK,TFILTER; {平空} EXITSHORT: BPK,TFILTER; 图表交易模型就完成了 对于新交易系统模型,可用下面4句代替 SELLSHORT(BPK and HOLDING<0,HOLDING,market); //交易系统之平空操作 BUY(BPK and HOLDING=0,30%,market);//交易系统之开多操作 SELL(SPK and HOLDING>0,HOLDING,market); //交易系统之平多操作 BUYSHORT(SPK and HOLDING=0,30%,market); //交易系统之开空操作 3 )其他类 ①宝塔线 关键函数:REF、HHV、LLV 使用周期:日线 模型说明: 宝塔线变红做多,宝塔线变绿做空。因为金字塔并未公布宝塔线的后台公式,所以此指标的显示结果与金字塔系统中的宝塔显示结果有一定的区别。 C1:=REF(CLOSE,1); C2:=REF(CLOSE,2); C3:=REF(CLOSE,3); C4:=REF(CLOSE,4); CMAX:=HHV(CLOSE,2); 30