FAQ > 金融建模 > 应用案例 > 图形实现

Q:客户端作图时各图形标签名称及图形标签显示位置说明    

  • A:图形名称控制图形标签的显示名称,
      图形的数据列名控制图形标签的显示位置:
       1.含中文的列名图形标签显示在数值窗口位置;
       2.英文列名图形标签显示在图形的左上角。
    特别说明图形字段函数返回的结果关键字作为图形名称在图形中显示时自动转化为中文,作为图形数据列名在控制显示位置时当作中文处理。

    实现范例
    范例01:中文及图形关键字列名图形标签显示在数值窗口
    示例结果
    说明
    MA5:中文列名,图形标签显示在数值窗口;
    close:图形关键字列名,图形标签是图形关键字转化为中文显示在数值窗口;
    20日均线:中文列名,图形标签显示在数值窗口;
    60日均线:英文列名且不是图形关键字,图形标签显示在图形左上角。

    示例代码
      SetSysParam(pn_stock(),'SZ000002');
      SetSysParam(pn_date(),20251118t);
      SetSysParam(PN_nDay(),180);
      N1:=5;
      N2:=10;
      N3:=20;
      N4:=60;
      colname1:="5日均线";
      graphname1:="MA5";
      colname2:=gfclose();
      graphname2:="close";
      colname3:="20日均线";
      graphname3:="20日均线";
      colname4:="MA60";
      graphname4:="60日均线";
      vMa1:=NDay2(colname1 , Ma(close() , N1));
      vMa2:=NDay2(colname2 , Close());
      vMa3:=NDay2(colname3 , Ma(Close() , N3));
      vMa4:=NDay2(colname4 , Ma(Close() , N4));

      g1:=graph(gtline(), graphname1, vMa1);
      g2:=graph(gtline(), graphname2, vMa2);
      g3:=graph(gtline(), graphname3, vMa3);
      g4:=graph(gtline(), graphname4, vMa4);

      G:=graphgroup(g1, g2, g3, g4 );
      Return G;

    范例02:英文及非图形关键字列名图形标签显示在图形左上角
    示例结果
    说明
    5日均线:英文列名且不是图形关键字,图形标签显示在图形左上角;
    MA10:英文列名且不是图形关键字,图形标签显示在图形左上角;
    open:英文列名且不是图形关键字,图形标签是图形关键字转化为中文显示在图形左上角;
    close:图形关键字列名,图形标签是图形关键字转化为中文显示在数值窗口。

    示例代码
      SetSysParam(pn_stock(),'SZ000002');
      SetSysParam(pn_date(),20251118t);
      SetSysParam(PN_nDay(),180);
      N1:=5;
      N2:=10;
      colname1:="MA5";
      graphname1:="5日均线";
      colname2:="MA10";
      graphname2:="MA10";
      colname3:=gfopen()+"_1";
      graphname3:=gfopen();
      colname4:=gfclose();
      graphname4:=gfclose();
      vMa1:=NDay2(colname1 , Ma(close() , N1));
      vMa2:=NDay2(colname2 , Ma(close() , N2));
      vMa3:=NDay2(colname3 , open());
      vMa4:=NDay2(colname4 , Close());

      g1:=graph(gtline(), graphname1, vMa1);
      g2:=graph(gtline(), graphname2, vMa2);
      g3:=graph(gtline(), graphname3, vMa3);
      g4:=graph(gtline(), graphname4, vMa4);

      G:=graphgroup(g1, g2, g3, g4 );
      Return G;

    范例03:组合图形中中文及英文数据列名图形标签显示位置
    示例结果
    说明
    5日均线:上图中中文列名折线图,图形标签显示在数值窗口;
    5日成交量:中图中中文列名折线图,图形标签显示在数值窗口;
    MACD:下图中中文列名折线图,图形标签显示在数值窗口;
    其他数值窗口图形:图形关键字做列名;
    图形标签在左上角的图形:英文字符串做列名。

    示例代码
      SetSysParam(pn_stock(),'SZ000002');
      SetSysParam(pn_date(),20251118t);
      SetSysParam(PN_nDay(),180);
      N1:=5;
      N2:=10;
      N3:=20;
      N4:=60;
      
      colname1:="5日均线";
      graphname1:="5日均线";
      colname2:="5日成交量";
      graphname2:="5日成交量";
      colname3:="平滑移动平均";
      graphname3:="MACD";
      
      //k线图形
      sK:='KLine';
      sMa1:=IntToStr(N1) + "PMA" ;
      sMa2:=IntToStr(N2) + "PMA" ;
      sMa3:=IntToStr(N3) + "PMA" ;
      sMa4:=IntToStr(N4) + "PMA" ;
      //KLine Data
      KL:=NDay2(gfopen(), Open() ,
           gfclose(), close(),
           gfhigh(), high(),
           gflow(),  low(),
           gftime(), datetimetostr(sp_time()),
             //KLine颜色
           gfColor(), IfThen3(Close(), Open(),
                     ClRed() ,  //涨颜色
                     clYellow() , //平颜色
                     ClLime()   //跌颜色
                    ),
           gffill(),ifThen3(Close(), Open(), flClear(), flSolid(),flSolid())
           );

      //均线数据
      vMa1:=NDay2(colname1 , Ma(close() , N1));
      vMa2:=NDay2(sMa2 , Ma(Close() , N2));
      vMa3:=NDay2(sMa3 , Ma(Close() , N3));
      vMa4:=NDay2(sMa4 , Ma(Close() , N4));

      gK:=graph(gtKline(), sK, KL);
      g1:=graph(gtline(), graphname1, vMa1{, gfColor(), ClYellow()});
      g2:=graph(gtline(), sMa2, vMa2{, gfColor(), ClWhite()});
      g3:=graph(gtline(), sMa3, vMa3{, gfColor(), ClBlue()});
      g4:=graph(gtline(), sMa4, vMa4{, gfColor(), ClGray()});

      GF1:=graphgroup(gK, g1, g2, g3, g4 );

      //VOL图形
      v1:=VOl_f(1);
      v2:=VolMa_f(N1,1);
      reindex(v2,nil,array("VolMa(5)":colname2));
      v3:=VolMa_f(N2,1);
      v4:=VolMa_f(N3,1);
      sVol1:='vol';
      sVol2:=sVol1+IntToStr(N1);
      sVol3:=sVol1+IntToStr(N2);
      sVol4:=sVol1+IntToStr(N3);
      g1:=graph(gtbar(),sVol1,v1);
      g2:=graph(gtline(),graphname2,v2);
      g3:=graph(gtline(),sVol3,v3);
      g4:=graph(gtline(),sVol4,v4);
      GF2:= GraphGroup(g1,g2,g3,g4);

      //MACD图形
      v:=MACD_f(12,26,6,1);
      vDIF:=v[0];
      vDEA:=v[1];
      vMACD:=v[2];
      reindex(vMACD,nil,array("MACD_":colname3));
      g1:=graph(gtline(),'DIF',vDIF);
      g2:=graph(gtline(),'DEA',vDEA);
      g3:=graph(gtsinglebar(),graphname3,vMACD);
      GF3:=graphgroup(g1,g2,g3,GfZero(),0);

      //把K线+Vol+MACD,形成组合图形
      return array(gf1,gf2,gf3);