//编写仅供参考,风险自负!
//例 1:限价止损。开仓后固定 100 点止盈、50 点止损
(C<=BKPRICE-50 ) || ( C-BKPRICE>=100 ),SP;
//当价格小于买入开仓均价 50 点后,或者大于买入开仓均价 100 个点后,卖出平仓
( C>=SKPRICE+50 ) || ( C<=SKPRICE-100 ), BP;
//当价格大于卖出均价 50 点后,或者小于卖出开仓均价 100 个点后,买入平仓
//例 2:保本。盈利超过 10 个点后,如果盈利再回撤到 5 个点时止损
( BKHIGH>BKPRICE+10 ) && ( C //当买入开仓的最高价大于均价的 10 个点后。当前价格回落到均价以上的 5 个点内(盈利再回撤到 5 个点),卖出平仓 ( SKLOW //当卖出开仓的最低价小于均价的 10 个点后,当前价格上升到卖出均价以下的 5 个点内(盈利再回撤到 5 个点),买入平仓 //例 3:阶梯止损。初始 5 点,盈利每增加 10 点,止损向盈利方向移动 5 个点 C< BKPRICE +( INTPART((BKHIGH-BKPRICE)/10)*10-5),SP; //初始 5 点,盈利每增加 10 点,止损向盈利方向移动 5 个点 C > SKPRICE -( INTPART((SKPRICE-SKLOW)/10)*10-5),BP; //初始 5 点,盈利每增加 10 点,止损向盈利方向移动 5 个点 //例 4:盈利超过 10 个点后启动跟踪止损,跟踪价差为 15 个点 BKHIGH > BKPRICE+10 && C //买入开仓最高价大于均价 10 个点后,当前价格回落到最高价以下 15 个点,卖出平仓 SKLOW //卖出开仓最低价小于均价 10 个点后,当前价格回升到最低价以上 15 个点,买入平仓 //例 5:盈利超过 10 个点后启动跟踪止损,跟踪价差为最大盈利的 30% BKHIGH>BKPRICE+10 && C //盈利超过 10 个点后启动跟踪止损,跟踪价差为最大盈利的 30% SKLOW //盈利超过 10 个点后启动跟踪止损,跟踪价差为最大盈利的 30% //注意其中的 50、100、10、5 等是实实在在的均价加减 50(股指、债指、沪铜、大豆等代表的盈利不同),而不是对应的最小变动价位 //可以增加最小变动价位 MINPRICE,如 50*MINPRICE; AUTOFILTER; //例 6:示例支撑/压力位止损,结合交易经验自己修改相应设置 N1:=BARSLAST(DATE<>REF(DATE,1))+1; //开盘第一根 K 线到当前的 K 线根数 N2:=REF(N1,N1); //每个交易日 K 线的总数 HH:HV(H,N1-1); //当日最高价,不包含当前 K 线 LL:LV(L,N1-1); //当日最低价,不包含当前 K 线 OO:REF(O,N1-1); //当日开盘价 OZ:REF(O,N2+N1-1); //昨日开盘价 CZ:REF(C,N1); //昨日收盘价 HZ:REF(HHV(H,N1),N1); //昨日最高价 LZ:REF(LLV(L,N1),N1); //昨日最低价 HDN:IFELSE(N1>=5,VALUEWHEN(N1=5,HHV(H,5)),NULL); //当 N1>=5 时,开盘前 5 根 K 线的最高价 LDN:IFELSE(N1>=5,VALUEWHEN(N1=5,LLV(L,5)),NULL); //当 N1>=5 时,开盘前 5 根 K 线的最低价 LB:REF(L,BARSBK); //买开仓那根 K 线最低价 HS:REF(H,BARSSK); //卖开仓那根 K 线最高价 LBN:REF(L,BARSBK+1); //买开仓前一根 K 线最低价 HSN:REF(H,BARSSK+1); //卖开仓前一根 K 线最高价 //例 7:趋势线止损,根据交易经验,自己修改相关内容 //以下编写,仅示范趋势线止损,风险自负! DT1:=DATE=140715 && TIME=1345; DT2:=DATE=140718 && TIME=1100; //TMP1:TRENDLINES(DT1,H,DT2,H); //2014 年 07 月 15 日 13:45K 线最高点与 2014 年 07 月 18 日 11:00K 线最高点形成的趋势线 //例 8:开仓后最大盈利不超过 10 点,在开仓后第 5 根根 K 线止损平仓 BARSBK=5 && BKHIGH<10+BKPRICE,SP; BARSSK=5 && SKLOW>SKPRICE-10,BP; //例 9:初始固定 30 点止损,每完成 5 根 K 线,止损位置向盈利方向移动 10 点 C //买开仓后,初始止损价差 30 个点,开仓之后每出现 5 根 K 线,止损价格提高 10 点 C>SKPRICE+30-INTPART(BARSSK/5)*10,BP; //卖开仓后,初始止损价差 30 个点,开仓之后每出现 5 根 K 线,止损价格提高 10 点 //例 10:累计亏损 10000 清仓,并且停止交易 OFFSETPROFIT>-10000 && 买开仓条件,BK; OFFSETPROFIT>-10000 && 卖开仓条件,SK; OFFSETPROFIT+PROFIT<-10000,CLOSEOUT; 买平仓条件,BP; 卖平仓条件,SP; //例 11:过滤模型根据初始资金百分百开仓 SETDEALPERCENT(50); //每次开仓手数按照模组资金的 50%计算,向下取整 DIFF:EMA(CLOSE,SHORT) - EMA(CLOSE,LONG); DEA:EMA(DIFF,M); CROSS(DIFF,DEA),BPK; //DIFF 上穿 DEA,做多。 CROSS(DEA,DIFF),SPK; //DIFF 下穿 DEA,做空。 AUTOFILTER; //例 12:满足条件 AA 开多仓,交易手数为根据模组可用资金的 20%计算;价格第一次上涨 10%止盈 50%仓位,再次上涨 20%止盈全部仓位。 //开仓条件,BK(MONEY*0.2/(C*UNIT*MARGIN+FEE)); //按比例收取手续费的情况: //AA,BK(MONEY*0.2/((C*UNIT*MARGIN)*(1+FEE))); CROSS(C,BKPRICE*1.1),SP(BKVOL*0.5); ISLASTSP&&CROSS(C,BKPRICE*1.2),SP(BKVOL); //交易 1 手合约所需资金=合约当前价格(C)×合约单位(UNIT)×保证金比例(MARGIN)+手续费(FEE) //仅用来示范 ATR 止损编写,仅供参考,风险自负! //例 13:最新价减前一次开仓价格大于 0.5*ATR 时加仓,资金使用率超过 0.5 后停止 TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); ATR:=MA(TR,20); //建仓 BKVOL=0 && 买开仓条件,BK(1); SKVOL=0 && 卖开仓条件,SK(1); BKVOL>0 && C>BKPRICE+0.5*ATR && MONEYRATIO<0.5,BK(1); //加仓 SKVOL>0 && C<=SKPRICE-0.5*ATR && MONEYRATIO<0.5,SK(1); //加仓 MONO_SIGNAL; //注意学习 MONO_SIGNAL 函数 //在一次“开仓”到“平仓”过程中,每行指令最多被执行一次。 //在不锁仓前提下,如果让指令行在每根满足条件的 K 线上都执行,需要使用 MONO_SIGNAL 函数。 //同时,该函数也限制了一根 K 线上只能出现一个信号。 //例 14:开仓均价的编写示例,仅供参考,风险自负! C-LONG_PRICE>60 && LONG_PRICE >0, SP(BKVOL); //如果当前价位比多头持仓均价高出 60,且多头持仓存在,卖平仓。 SHORT_PRICE-C>60 && SHORT_PRICE>0, BP(SKVOL); //如果空头持仓均价比当前价位高出 60,且空头持仓存在,买平仓。 //LONG_PRICE:模组多头持仓开仓均价 //SHORT_PRICE:模组空头持仓开仓均价 //注意区分 LONG_PRICE 和 BKPRICE 的差别
感谢博主,喝杯咖啡~
还没有人发表评论