文华止损止盈编写示例

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的差别

(0)

相关推荐