江恩物件

对于 江恩角度线 (OBJ_GANNFAN) 和 江恩网格 (OBJ_GANNGRID)来说,ENUM_GANN_DIRECTION 中的两种值可以指定出来,会在开头建立。

ENUM_GANN_DIRECTION

ID 描述
GANN_UP_TREND 与上升趋势一致的线
GANN_DOWN_TREND 与下降趋势一致的线

建立主干线1x1规模,使用 ObjectSetDouble 函数(chart_handle, gann_object_name, OBJPROP_SCALE, scale):

  • chart_handle – 对象加载的图表窗口;
  • gann_object_name – 对象名称;
  • OBJPROP_SCALE – “Scale”属性标识符;
  • 比例 – 需要以Pips/Bar为单位。

创建江恩角度线示例:

void OnStart()

  {

//---

   string my_gann="OBJ_GANNFAN object";

   if(ObjectFind(0,my_gann)<0)//物件没找到

     {

      //--- 通知失败

      Print("Object ",my_gann," not found. Error code = ",GetLastError());

      //--- 获得图表最大价格

      double chart_max_price=ChartGetDouble(0,CHART_PRICE_MAX,0);

      //--- 获得图表最小价格

      double chart_min_price=ChartGetDouble(0,CHART_PRICE_MIN,0);

      //--- 多少柱显示在图表上?

      int bars_on_chart=ChartGetInteger(0,CHART_VISIBLE_BARS);

      //--- 创建一个数组,写下每个柱的开盘时间

      datetime Time[];

      //--- 像时间序列一样访问数组

      ArraySetAsSeries(Time,true);

      //--- 现在复制图表中可见的柱数据到数组中

      int times=CopyTime(NULL,0,0,bars_on_chart,Time);

      if(times<=0)

        {

         Print("Could not copy the array with the open time!");

         return;

        }

      //--- 完成预备



      //--- 图表中心柱指数

      int center_bar=bars_on_chart/2;

      //--- 图表赤道 - 最大和最小值之间

      double mean=(chart_max_price+chart_min_price)/2.0;

      //--- 设置第一定位点坐标到中心

      ObjectCreate(0,my_gann,OBJ_GANNFAN,0,Time[center_bar],mean,

                   //--- 第二定位点到右边

                   Time[center_bar/2],(mean+chart_min_price)/2.0);

      Print("Time[center_bar] = "+(string)Time[center_bar]+"  Time[center_bar/2] = "+(string)Time[center_bar/2]);

      //Print("Time[center_bar]/="+Time[center_bar]+"  Time[center_bar/2]="+Time[center_bar/2]);

      //--- 设置 Pips / Bar单元比例

      ObjectSetDouble(0,my_gann,OBJPROP_SCALE,10);

      //--- 设置趋向线

      ObjectSetInteger(0,my_gann,OBJPROP_DIRECTION,GANN_UP_TREND);

      //--- 设置线宽

      ObjectSetInteger(0,my_gann,OBJPROP_WIDTH,1);

      //--- 定义线型

      ObjectSetInteger(0,my_gann,OBJPROP_STYLE,STYLE_DASHDOT);

      //--- 设置线的颜色

      ObjectSetInteger(0,my_gann,OBJPROP_COLOR,clrYellowGreen);

      //--- 允许用户选择物件

      ObjectSetInteger(0,my_gann,OBJPROP_SELECTABLE,true);

      //--- 自动选择

      ObjectSetInteger(0,my_gann,OBJPROP_SELECTED,true);

      //--- 图表上绘画

      ChartRedraw(0);

     }

  }