以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- [求助]编译中出现“引用的括号不完整” (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=167427) |
-- 作者:m1978xz -- 发布时间:2018/12/30 17:58:50 -- [求助]编译中出现“引用的括号不完整” //多开条件 CCCC:=REF(high,1);//CCC赋值为前一根K线最高点。 DDDD:=REF(low,1);//CCC赋值为前一根K线最低点。 IF HOLDING=0 THEN BEGIN //若持仓为0 IF W<0 THEN BEGIN //且倒数线在上方 IF CCCC>ww THEN BEGIN //前一K线最高点上破ww BUY(1,1,LIMITR,CCCC+1); //在前一K线最高点顶部加一个点开多单 End //空开条件 IF HOLDING=0 THEN BEGIN //若持仓为0 IF W>0 THEN BEGIN //且倒数线在下方 IF DDDD<ww THEN BEGIN //前一K线最高点上破ww BUY(1,1,LIMITR,(DDDD-1)); //在前一K线最高点顶部加一个点开空单 End //平多条件 IF HOLDING>0 THEN BEGIN //若持有多单 IF DDDD<ww THEN BEGIN //前一K线最低点低于ww SELL(1,1,LIMITR,(DDDD-1)); //平多单 End 在最后一个End出现黄色箭头,编译错误:引用的括号不完整。 请问问题出在哪里啊。和上边那段的空开条件基本完全一样。
|
-- 作者:无为剑 -- 发布时间:2018/12/30 19:59:44 -- 请提供完整可以测试的公式代码。 |
-- 作者:m1978xz -- 发布时间:2018/12/30 20:41:29 -- 回复:(无为剑)请提供完整可以测试的公式代码。 DA:EMA(CLOSE,3),COLORBLUE;//输出DA:收盘价的3日指数移动平均,画蓝色 DB:EMA(CLOSE,5) ,COLORBLUE;//输出DB:收盘价的5日指数移动平均 ,画蓝色 DC:EMA(CLOSE,8) ,COLORBLUE;//输出DC:收盘价的8日指数移动平均 ,画蓝色 DD:EMA(CLOSE,10) ,COLORBLUE;//输出DD:收盘价的10日指数移动平均 ,画蓝色 DE:EMA(CLOSE,12) ,COLORBLUE;//输出DE:收盘价的12日指数移动平均 ,画蓝色 DF:EMA(CLOSE,15) ,COLORBLUE;//输出DF:收盘价的15日指数移动平均 ,画蓝色 CA:EMA(CLOSE,30) ,COLORYELLOW;//输出CA:收盘价的30日指数移动平均 ,画黄色,那个被我 成为黄标的东西就是这个,整个长期均线组也是黄的,只是被后继条件的颜色遮盖了。 CB:EMA(CLOSE,35) ,COLORYELLOW;//输出CB:收盘价的35日指数移动平均 ,画黄色 CC:EMA(CLOSE,40) ,COLORYELLOW;//输出CC:收盘价的40日指数移动平均 ,画黄色 CD:EMA(CLOSE,45) ,COLORYELLOW;//输出CD:收盘价的45日指数移动平均 ,画黄色 CE:EMA(CLOSE,50) ,COLORYELLOW;//输出CE:收盘价的50日指数移动平均 ,画黄色 CF:EMA(CLOSE,60) ,COLORYELLOW;//输出CF:收盘价的60日指数移动平均 ,画黄色 //上边这些就是画出顾比均线组 CDYX:=CA>CB AND CB>CC AND CC>CD AND CD>CE AND CE>CF;//cdyx就是30分>35分>40分>45分>50分>60分。也就是说长期线组以多头排列。 CKYX:=CA<CB AND CB<CC AND CC<CD AND CD<CE AND CE<CF;//CKYX就是30<35分<40分<45分<50分<60分,也就是说长期线组以空头排列。 DDYX:=DA>DB AND DB>DC AND DC>DD AND DD>DE AND DE>DF;//DDYX就是3分>5分>8分>10>12>15,也就是说短期线组以多头排列。 DKYX:=CA<CB AND DB<DC AND DC<DD AND DD<DE AND DE<DF;//DKYX就是3分<5分<8分<10分<12分<15分,也就是说长期线组以空头排列。 IF(CDYX,CA,DRAWNULL),COLORBROWN; IF(CDYX,CB,DRAWNULL),COLORBROWN; IF(CDYX,CC,DRAWNULL),COLORBROWN; IF(CDYX,CD,DRAWNULL),COLORBROWN; IF(CDYX,CE,DRAWNULL),COLORBROWN; IF(CDYX,CF,DRAWNULL),COLORBROWN; IF(CKYX,CA,DRAWNULL),COLORCYAN; IF(CKYX,CB,DRAWNULL),COLORCYAN; IF(CKYX,CC,DRAWNULL),COLORCYAN; IF(CKYX,CD,DRAWNULL),COLORCYAN; IF(CKYX,CE,DRAWNULL),COLORCYAN; IF(CKYX,CF,DRAWNULL),COLORCYAN; IF(DDYX,DA,DRAWNULL),COLORRED; IF(DDYX,DB,DRAWNULL),COLORRED; IF(DDYX,DC,DRAWNULL),COLORRED; IF(DDYX,DD,DRAWNULL),COLORRED; IF(DDYX,DE,DRAWNULL),COLORRED; IF(DDYX,DF,DRAWNULL),COLORRED; IF(DKYX,DA,DRAWNULL),COLORGREEN; IF(DKYX,DB,DRAWNULL),COLORGREEN; IF(DKYX,DC,DRAWNULL),COLORGREEN; IF(DKYX,DD,DRAWNULL),COLORGREEN; IF(DKYX,DE,DRAWNULL),COLORGREEN; IF(DKYX,DF,DRAWNULL),COLORGREEN; KO:=CLOSE; KC:=REF(CLOSE,1);//KC赋值:1日前的收盘价 STICKLINE(KO<=KC ,CLOSE ,OPEN,3,0 ),COLOR008800;//当满足条件收盘价<=前日收盘价时,在收盘价和开盘价位置之间画柱状线,宽度为3,0不为0则画空心柱.,COLOR叶绿色 STICKLINE(KO<=KC ,CLOSE ,OPEN,2,0 ),COLOR00BB00;//当满足条件收盘价<=前日收盘价时,在收盘价和开盘价位置之间画柱状线,宽度为2,0不为0则画空心柱.,COLOR叶绿色 STICKLINE(KO<=KC,CLOSE ,OPEN,1,0 ),COLOR00EE00;//当满足条件收盘价<=前日收盘价时,在收盘价和开盘价位置之间画柱状线,宽度为1,0不为0则画空心柱.,COLOR叶绿色 STICKLINE(KO<=KC,CLOSE ,OPEN,0.5,0 ),COLOR66FF00;//当满足条件收盘价<=前日收盘价时时,在收盘价和开盘价位置之间画柱状线,宽度为0.5,0不为0则画空心柱.,COLOR叶绿色 STICKLINE(KO>KC,CLOSE,OPEN,3,0 ),COLOR000088;//当满足条件收盘价<>前日收盘价时,在收盘价和开盘价位置之间画柱状线,宽度为3,0不为0则画空心柱.,COLOR宝蓝色 STICKLINE(KO>KC,CLOSE,OPEN,2,0 ),COLOR0000BB;//当满足条件收盘价<>前日收盘价时,在收盘价和开盘价位置之间画柱状线,宽度为2,0不为0则画空心柱.,宝蓝色 STICKLINE(KO>KC,CLOSE,OPEN,1,0 ),COLOR0000EE;//当满足条件收盘价<>前日收盘价时,在收盘价和开盘价位置之间画柱状线,宽度为1,0不为0则画空心柱.,宝蓝色 STICKLINE(KO>KC,CLOSE,OPEN,0.5 ,0 ),COLOR0033FF;//当满足条件收盘价>前日收盘价时,在收盘价和开盘价位置之间画柱状线,宽度为0.5,0不为0则画空心柱.,宝蓝色 STICKLINE(KO>KC,OPEN,LOW,0,0 ),COLORRED;//当满足条件收盘价>前日收盘价时,在开盘价和最低价位置之间画柱状线,宽度为0,0不为0则画空心柱.,画红色 STICKLINE(KO>KC,CLOSE,HIGH,0 ,0 ),COLORRED;//当满足条件收盘价>前日收盘价时,在收盘价和最高价位置之间画柱状线,宽度为0,0不为0则画空心柱.,画红色 STICKLINE(KO<=KC,CLOSE,LOW,0 ,0 ),COLOR66CC33;//当满足条件收盘价<=前日收盘价时,在收盘价和最低价位置之间画柱状线,宽度为0,0不为0则画空心柱.,叶绿色 {ART} N:=10; M:=1.5; TR1:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW)); //TR1赋值: { 先求最高价减去最低价的值 再求前日收盘价减去今日最高价的绝对值 再求前日 收盘价减去今日最低价的绝对值 之后看这3个值中哪个最大 ,我搜了一下这个是求真实波动值的公式} ATR:=MA(TR1,10);//ATR赋值:TR1的10日简单移动平均 ,得到了平均波幅通道指标 DDD:=(HIGH + LOW) / 2;//MEDIAN赋值: (最高价 + 最低价) / 2,就是取日内最高价和最低价之间的中间值 X:=20;//给X赋值为20、 {MID :=MA(C,X);// UPPER: MID + 2*STD(CLOSE,X),COLORGRAY; LOWER: MID - 2*STD(CLOSE,X),COLORGRAY;} HH:=DDD + ATR * M;//HH赋值:用日内中间值加均幅乘20 LL:=DDD - ATR * M;//LL赋值:用日内中间值减去ATM乘20, 得到类似布林带一样的通道。 W:=BARSLAST((HH>=HHV(HH,N)))-BARSLAST((LLV(LL,N)>=LL)); //W赋值:计算如果 HH上轨值>=10日内HH上轨的最高值)距今天数,就返回条件成熟至今的周期数,否则返回0 { 然后计算十日内的最低值是不是≥LL,如果是就返回条件成熟至今的周期数,否则返回零。 之后用第一个数值减去第二个数值。 这根线是否>0,决定了是显示红色倒数线,还是显示蓝色倒数线。还决定了此时K线是红色还是绿色。} BBX:=LLV(HH,BARSLAST(W<0));//BBX赋值:上次W<0距今天周期数日内HH的最低值 SSX:=HHV(LL,BARSLAST(W>0));//SSX赋值:上次W>0距今天周期数数日内LL的最高值 WW:IF(W>0,BBX,IF(W<0,SSX,C));//,COLOrwhite,LINETHICK6;//WW赋值:如果W>0,返回BBX,否则返回如果W<0,返回SSX,否则返回收盘价 WWW:IF(W<0,WW,DRAWNULL),COLORMAGENTA,LINETHICK2;//输出WWW:如果W<0,返回WW,否则返回无效数,画洋红色,线宽为2红色倒数线画无效数这个 很重要 WWW1:IF(W>0,WW,DRAWNULL),COLORBLUE,LINETHICK2;//输出WWW1:如果W>0,返回WW,否则返回无效数,画蓝色,线宽为2蓝色倒数线 STICKLINE(0>W,H,L,0,0),COLORRED;//当满足条件0>W时,在最高价和最低价位置之间画柱状线,宽度为0,0不为0则画空心柱.,颜色为红色 STICKLINE(0>W AND C>O,O,C,3,0),COLORRED;//当满足条件0>WANDC,同时收盘价>开盘价时,在开盘价和收盘价位置之间画空心柱,宽度为3,颜色为红色 STICKLINE(0>W AND C<O,O,C,3,0),COLORRED;//当满足条件0>WANDC,同时收盘价<开盘价时,在开盘价和收盘价位置之间画空心柱,宽度为3,颜色为红色 STICKLINE(0<W,H,L,0,0),COLOR00AA00;//当满足条件0>W时,在开盘价和收盘价位置之间画空心柱,宽度为0不为.颜色为红色 STICKLINE(0<W AND C>O,O,C,3,0),COLOR00AA00;//当满足条件0<W时,在最高价和最低价位置之间画柱状线,宽度为0,0不为0则画空心柱.,颜色为深绿色 STICKLINE(0<W AND C<O,O,C,3,0),COLOR00AA00;//当满足条件0<WANDC>开盘价时,在开盘价和收盘价位置之间画柱状线,宽度为3,0不为0则画空心柱.,颜色为深绿色 //交易指令---------- //多开条件 CCCC:=REF(high,1);//CCC赋值为前一根K线最高点。 DDDD:=REF(low,1);//CCC赋值为前一根K线最低点。 EEEE:=CCCC+1;//在前一根K线高点上加一点 FFFF:=DDDD-1;//在前一根K线低点下减一点 IF HOLDING=0 THEN BEGIN //若持仓为0 IF W<0 THEN BEGIN //且倒数线在上方 IF CCCC>ww THEN BEGIN //前一K线最高点上破ww BUY(1,1,LIMITR,EEEE); //在前一K线最高点顶部加一个点开多单 END END END //空开条件 IF HOLDING=0 THEN BEGIN //若持仓为0 IF W>0 THEN BEGIN //且倒数线在下方 IF DDDD<ww THEN BEGIN //前一K线最高点上破ww BUYSHORT(1,1,LIMITR,FFFF)); //在前一K线最高点顶部加一个点开空单 END END END //平多条件 IF HOLDING>0 THEN BEGIN //若持有多单 IF DDDD<ww THEN BEGIN //前一K线最低点低于ww SELL(1,1,LIMITR,FFFF); //平多单 END END //平空条件 IF HOLDING<0 THEN BEGIN //若持有空单 IF CCCC>ww THEN BEGIN //前一K线最低点低于ww SELLSHORT(1,1,LIMITR,EEEE); //平空单 END END 次数:TOTALTRADE,LINETHICK0; 胜率:PERCENTWIN,LINETHICK0; 连亏:MAXSEQLOSS,LINETHICK0; 连赢:MAXSEQWIN,LINETHICK0; 当前持仓:HOLDING,COLORGRAY,LINETHICK0; 当前资产:ASSET,NOAXIS,COLORGRAY; 感谢管理员回复。在交易指令之前的部分应该没问题,显示正常 。下图是下单程序之前部分的显示效果。 今天第一次学习编写下单指令。参考的是系统自带的“顾比倒数线”策略。 |
-- 作者:FireScript -- 发布时间:2019/1/2 8:59:35 -- 第131行代码。 |
-- 作者:m1978xz -- 发布时间:2019/1/2 9:12:40 -- 回复:(FireScript) 第131行代码。[upload=png... 谢谢版主 回复~ 相当佩服。 我以后一定更加仔细的检查,尽量少给您添乱
![]() |