文华止损止盈编写示例
17、//以下编写为止损、止盈的示例,根据交易经验自定相关参数
//编写仅供参考,风险自负!
//例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<</SPAN>BKPRICE+5 ),SP;
//当买入开仓的最高价大于均价的10个点后。当前价格回落到均价以上的5个点内(盈利再回撤到5个点),卖出平仓
( SKLOW<</SPAN>SKPRICE-10 ) && ( C>SKPRICE-5 ),BP;
//当卖出开仓的最低价小于均价的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<</SPAN>BKHIGH-15,SP;
//买入开仓最高价大于均价10个点后,当前价格回落到最高价以下15个点,卖出平仓
SKLOW <</SPAN>SKPRICE -10 && C>SKLOW+15,BP;
//卖出开仓最低价小于均价10个点后,当前价格回升到最低价以上15个点,买入平仓
//例5:盈利超过10个点后启动跟踪止损,跟踪价差为最大盈利的30%
BKHIGH>BKPRICE+10 && C<</SPAN>BKHIGH-(BKHIGH-BKPRICE)*0.3,SP;
//盈利超过10个点后启动跟踪止损,跟踪价差为最大盈利的30%
SKLOW<</SPAN>SKPRICE-10 && C>SKLOW+(SKPRICE-SKLOW)*0.3,BP;
//盈利超过10个点后启动跟踪止损,跟踪价差为最大盈利的30%
//注意其中的50、100、10、5等是实实在在的均价加减50(股指、债指、沪铜、大豆等代表的盈利不同),而不是对应的最小变动价位
//可以增加最小变动价位MINPRICE,如50*MINPRICE;
AUTOFILTER;
18、//以下编写为示例支撑/压力位止损,结合交易经验自己修改相应设置
//仅供参考风险自负
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线最高价
19、//例8:趋势线止损,根据交易经验,自己修改相关内容
//以下编写,仅示范趋势线止损,风险自负!
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线最高点形成的趋势线
//例9:开仓后最大盈利不超过10点,在开仓后第5根根K线止损平仓
BARSBK=5 && BKHIGH<10+BKPRICE,SP;
BARSSK=5 && SKLOW>SKPRICE-10,BP;
//例10:初始固定30点止损,每完成5根K线,止损位置向盈利方向移动10点
C<</SPAN>BKPRICE-30+INTPART(BARSBK/5)*10,SP;
//买开仓后,初始止损价差30个点,开仓之后每出现5根K线,止损价格提高10点
C>SKPRICE+30-INTPART(BARSSK/5)*10,BP;
//卖开仓后,初始止损价差30个点,开仓之后每出现5根K线,止损价格提高10点
//例11:累计亏损10000清仓,并且停止交易
OFFSETPROFIT>-10000 && 买开仓条件,BK;
OFFSETPROFIT>-10000 && 卖开仓条件,SK;
OFFSETPROFIT+PROFIT<-10000,CLOSEOUT;
买平仓条件,BP;
卖平仓条件,SP;
//例12:过滤模型根据初始资金百分百开仓
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;
//例13:满足条件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)
20、//仅用来示范ATR止损编写,仅供参考,风险自负!
//例14:最新价减前一次开仓价格大于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线上只能出现一个信号。
//例15:开仓均价的编写示例,仅供参考,风险自负!
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的差别