RUNMODE:0;
//逐K线模式
WARNING_DISABLE:1;
//关闭公式测试提醒
WARNING_DISABLE:2;
WARNING_DISABLE:4;
PPT_MUX:=0.75;
//期货品种乘数,保证金*合约单位=15%*5
PPT_PER:=5;
LAST_B:=0;LAST_S:=0;LAST_BE:=0;LAST_SE:=0;
//均线
MA01:MA(C,10),colorwhite,PRECISION0;
MA02:MA(C,20),coloryellow,PRECISION0;
开多:=cross(ma01,ma02);
开空:=cross(Ma02,ma01);
ref_buy:=ref(开多,1);
ref_sel:=ref(开空,1);
START_TRADE:=(YEAR=2018 and MONTH>0) or YEAR>2018;
IF START_TRADE THEN
BEGIN
IF HOLDING<>0 THEN BEGIN
if HOLDING>0 then
begin
{平多}
if ref_SEL then
begin
sell(START_TRADE,0,LIMITR,OPEN),ORDERQUEUE;
LAST_BE:=1;
end;
end;
if HOLDING<0 then
begin
{平空}
if ref_BUY then
begin
sellshort(START_TRADE,0,LIMITR,OPEN),ORDERQUEUE;
LAST_SE:=1;
end;
end;
END;
if HOLDING=0 THEN
BEGIN
{开多}if ref_BUY then
begin
buy(START_TRADE,1,LIMITR,OPEN),ORDERQUEUE;
LAST_B:=1;
end;
{开空}if ref_SEL then
begin
buyshort(START_TRADE,1,LIMITR,OPEN),ORDERQUEUE;
LAST_S:=1;
end;
END;
END;
tmp_BAR:=BARPOS-1;
LAST_sig_E:=LAST_BE or LAST_SE;
IF 开多 THEN drawicon(START_TRADE,low-0.2,1);
IF 开空 THEN drawicon(START_TRADE,high+0.2,2);
BUY_E:=HOLDING>0 and 开空;
SEL_E:=HOLDING<0 and 开多;
IS_reSIG:=LAST_B or LAST_S;
//================================================================================
IF ISLASTBAR THEN
BEGIN
{自动解盘}
//开仓价
hold_prc:=IF(IS_reSIG,NUMTOSTR(OPEN,0),NUMTOSTR(ENTERPRICE,0));
EXPLAIN(1,'棉花_CF00__主力合约_' + STRTRIMLEFT(DYNAINFO(210),'ZQ'),coloryellow);
IF HOLDING<0 THEN EXPLAIN(1,'空单_持仓价_' + hold_prc + '__持仓_'+NUMTOSTR(HOLDING,0)+'手',colorcyan);
IF HOLDING>0 THEN EXPLAIN(1,'多单_持仓价_' + hold_prc + '__持仓_'+NUMTOSTR(HOLDING,0)+'手',colormagenta);
IF HOLDING=0 THEN EXPLAIN(1,'持仓:= 0 手',colorwhite);
EXPLAIN(1,'账户资产:='+NUMTOSTR(ASSET,0) ,colorwhite);
EXPLAIN(1,'浮动盈亏:=('+numtostr(OPENPROFIT/10000,1)+'万,'+numtostr(OPENPROFITPER,1)+'%)',coloryellow);
可用资金:=ASSET-abs(HOLDING)*CLOSE*PPT_MUX;
EXPLAIN(1,'可用资金:='+NUMTOSTR(可用资金,0),colorwhite);
//交易信息
IF LAST_SE THEN EXPLAIN(1,'交易信号=》平空'+NUMTOSTR(EXITVOL,0)+'手!',colormagenta);
IF LAST_BE THEN EXPLAIN(1,'交易信号=》平多'+NUMTOSTR(EXITVOL,0)+'手!',colorcyan);
IF LAST_B THEN EXPLAIN(1,'交易信号=》开多'+NUMTOSTR(ENTERVOL,0)+'手!',colormagenta);
IF LAST_S THEN EXPLAIN(1,'交易信号=》开空'+NUMTOSTR(ENTERVOL,0)+'手!',colorcyan);
//准备交易
IF 开多 THEN BEGIN
IF HOLDING<=0 THEN
BEGIN
//开多
EXPLAIN(HOLDING<0,'交易信号=》准备开多'+'1手!',colormagenta);
EXPLAIN(HOLDING=0,'交易信号=》准备开多...资金不够开仓!',colormagenta);
END;
END;
IF 开空 THEN BEGIN
IF HOLDING>=0 THEN
BEGIN
EXPLAIN(HOLDING>0,'交易信号=》准备开空'+'1手!',colorcyan);
EXPLAIN(HOLDING=0,'交易信号=》准备开空...资金不够开仓!',colorcyan);
END;
END;
//平空
IF SEL_E THEN EXPLAIN(1,'交易信号=》准备平空'+NUMTOSTR(ABS(HOLDING),0)+'手!',colormagenta);
//平多
IF BUY_E THEN EXPLAIN(1,'交易信号=》准备平多'+NUMTOSTR(HOLDING,0)+'手!',colorcyan);
IF HOLDING=0 THEN EXPLAIN(1,'操盘:=空仓观望,等待入场信号!',colorwhite);
END;
IF START_TRADE THEN
BEGIN
{显示开仓价位线}
多持:IF(HOLDING>0,ENTERPRICE,DRAWNULL),colormagenta,linethick2,PRECISION0;
//多单开盘价
空持:IF(HOLDING<0,ENTERPRICE,DRAWNULL),colorcyan,linethick2,PRECISION0;
//空单开盘价
//=============================================================================
{保证金计算器}
计算器:Close*PPT_MUX*手数,PRECISION0,coloryellow,NODRAW;
END;