MACD第9行大括号不配对 (文华财经WH8赢智V8.2)

投资者咨询:MACD第9行大括号不配对 (文华财经WH8赢智V8.2)
来源:文华财经  日期:2018-7-7 11:20
 我下载的8,模拟测试版,K线图显示的时候,提示公式:MACD第9行大括号不配对,,无法显示MACD,//该模型仅仅用来示范如何根据指标编写简单的模型
//用户需要根据自己交易经验,进行修改后再实际应用!!!
// //后为文字说明,编写模型时不用写出
DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);//短周期与长周期的收盘价的指数平滑移动平均值做差。
DEA  : EMA(DIFF,M);//DIFF的M个周期指数平滑移动平均
2*(DIFF-DEA),COLORSTICK;//DIFF减DEA的2倍画柱状线

{
   CODENAME = "IF1408";
   N = 5;
   I = 1;
   M1 = 5;
   M2 = 5;
   MINPRICE = MINPRICE(CODENAME);
   NEW = PRICE(CODENAME, "NEW"); //获取当前合约最新价
   DATA = DEF_TICKDATA(CODENAME,1,51);
   BPRICE=T_BUYAVGPRICE(CODENAME);//取得持仓栏中该合约多头持仓均价
   SPRICE=T_SELLAVGPRICE(CODENAME);//取得持仓栏中该合约空头持仓均价
   IF( DATA.STATE == 1 )
   {
 CALBIG();
 //盘口卖1的挂单大于设置的大单量,并且最近5笔TICK的主动卖的量大于主动买的量,则卖平开N手
 IF( DATA[DATA.NUM-1].ASKVOL1 > BIG )
 {
IF( QUSHI() == 1 && STYPE == 0 )
{
MESSAGEOUT("当前卖量:"+ITOA(DATA[DATA.NUM-1].ASKVOL1));
MESSAGEOUT("主动买量:"+ITOA(BVOL));
MESSAGEOUT("主动卖量:"+ITOA(SVOL));
IF( T_ORDERSTATE( BKID) == 0)
{
   T_DELETEORDER( BKID );
}
IF( T_ORDERSTATE( BPID) == 0)
{
   T_DELETEORDER( BPID );
}
SKID = T_DEAL(CODENAME,1,0,N,OFFERS(CODENAME,"BID1")); 
IF( T_BUYREMAINPOSITION(CODENAME) > 0 )
{
  SPID = T_DEAL(CODENAME,1,1,T_BUYREMAINPOSITION(CODENAME),T_GETFALLLIMIT(CODENAME)); 
}
STYPE = 1;
BTYPE = 0;
}
 }
 //盘口买1的挂单大于设置的大单量,并且最近5笔TICK的主动买的量大于主动卖的量,则买平开N手
 IF( DATA[DATA.NUM-1].BIDVOL1 > BIG )
 {
IF( QUSHI() == 2 && BTYPE == 0)
{
MESSAGEOUT("当前买量:"+ITOA(DATA[DATA.NUM-1].BIDVOL1));
MESSAGEOUT("主动买量:"+ITOA(BVOL));
MESSAGEOUT("主动卖量:"+ITOA(SVOL));
IF( T_ORDERSTATE( SKID) == 0)
{
   T_DELETEORDER( SKID );
}
IF( T_ORDERSTATE( SPID) == 0)
{
   T_DELETEORDER( SPID );
}
BKID = T_DEAL(CODENAME,0,0,N,OFFERS(CODENAME,"ASK1")); 
IF( T_SELLREMAINPOSITION(CODENAME) > 0 )
{
  BPID = T_DEAL(CODENAME,0,1,T_SELLREMAINPOSITION(CODENAME),T_GETRISELIMIT(CODENAME)); 
}
BTYPE = 1;
STYPE = 0;
}
 }

 ZHILOSTANDWIN();//止损M1个最小变动价位,止盈M2个最小变动价位
 //如果平仓指令挂单撤单则重新以市价委托
 IF( T_ORDERSTATE( BPID ) == 2 )
 {
T_DEAL(CODENAME,0,1,T_SELLREMAINPOSITION(CODENAME),T_GETRISELIMIT(CODENAME)); 
 }
 IF( T_ORDERSTATE( SPID ) == 2  )
 {
T_DEAL(CODENAME,1,1,T_BUYREMAINPOSITION(CODENAME),T_GETFALLLIMIT(CODENAME)); 
 }
 IF( T_ORDERSTATE( BPID ) == 1 )
 {
BPTYPE = 0;
 }
 IF( T_ORDERSTATE( SPID ) == 1 )
 {
SPTYPE = 0; 
 }
   }
}

VOID ZHILOSTANDWIN()
{
   //多头止损
   IF( BPRICE - NEW >= M1 * MINPRICE && SPTYPE == 0 )
   {
 IF( T_BUYREMAINPOSITION(CODENAME) > 0 )
 {
MESSAGEOUT("多头止损");
SPID = T_DEAL(CODENAME,1,1,T_BUYREMAINPOSITION(CODENAME),T_GETFALLLIMIT(CODENAME)); 
SPTYPE = 1;
BTYPE = 0;
 }
   }
   //空头止损
   IF( NEW - SPRICE >= M1 * MINPRICE && BPTYPE == 0)
   {
 IF( T_SELLREMAINPOSITION(CODENAME) > 0 )
 {
MESSAGEOUT("空头止损");
BPID = T_DEAL(CODENAME,0,1,T_SELLREMAINPOSITION(CODENAME),T_GETRISELIMIT(CODENAME)); 
BPTYPE = 1;
STYPE = 0;
 }
   }
   //多头止盈
   IF( NEW - BPRICE >= M2 * MINPRICE && SPTYPE == 0 )
   {
 IF( T_BUYREMAINPOSITION(CODENAME) > 0 )
 {
MESSAGEOUT("多头止盈");
SPID = T_DEAL(CODENAME,1,1,T_BUYREMAINPOSITION(CODENAME),T_GETFALLLIMIT(CODENAME)); 
SPTYPE = 1;
BTYPE = 0;
 }
   }
   //空头止盈
   IF( SPRICE - NEW >= M2 * MINPRICE && BPTYPE == 0)
   {
 IF( T_SELLREMAINPOSITION(CODENAME) > 0 )
 {
MESSAGEOUT("空头止盈");
BPID = T_DEAL(CODENAME,0,1,T_SELLREMAINPOSITION(CODENAME),T_GETRISELIMIT(CODENAME)); 
BPTYPE = 1;
STYPE = 0;
 }
   }
}

VAR QUSHI()
{
   SVOL = DATA[DATA.NUM-1].ASKVOL1 + DATA[DATA.NUM-5].ASKVOL1 + DATA[DATA.NUM-2].ASKVOL1 + DATA[DATA.NUM-3].ASKVOL1 + DATA[DATA.NUM-4].ASKVOL1;
   BVOL = DATA[DATA.NUM-1].BIDVOL1 + DATA[DATA.NUM-5].BIDVOL1 + DATA[DATA.NUM-2].BIDVOL1 + DATA[DATA.NUM-3].BIDVOL1 + DATA[DATA.NUM-4].BIDVOL1;
   IF( SVOL > BVOL )
   {
 RETURN 1;
   }
   ELSE
   {
 RETURN 2;
   }
}
//设置大单量为加载后前50笔TICK成交量的均值的5倍
VOID CALBIG()
{
   IF( FIRST == 0) // 第一次进来 计算大单
   {
I = 1;
WHILE(1)
{
BIG = BIG + DATA[I].TICKVOLUM - DATA[I - 1].TICKVOLUM;
I = I + 1;
IF( I >= DATA.NUM )
{
  FIRST = 1;
  BREAK;
}
}
BIG = ( BIG / DATA.NUM ) * 5;
MESSAGEOUT("大单量:"+ITOA(BIG));
   }
}


技术人员回复
日期:2018-7-7 16:10
 您1楼的源码很混乱,包含趋势模型和算法交易模型,是不能直接复制合并在一起的

您刚接触程序化,建议先学习下趋势模型编写,可以实现大多数思路