0

我正在尝试在指标窗口上绘制一条带有其值的垂直线。OBJ_VLINE我在阅读文档时遇到了。但是这个例子太难理解了。
我使用以下专家在图表上绘制了 adx:
input int Candles_for_adx = 5; 输入颜色 maincolor_adx = 黄色,dpluscolor_adx=石灰,dminuscolor_adx = 红色;

 void OnInit()
    {
    ChartIndicatorAdd(0,(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL), 
 iCustom(_Symbol,PERIOD_M1,"ADX",Candles_for_adx,maincolor_adx,dpluscolor_adx,dminuscolor_adx) );
    }

我在输出中得到以下信息:
输出图像

我期望实现的目标:

预期图像

如何编写取坐标的简单语句然后绘制线?

4

1 回答 1

0

问题是什么?垂直线是无限的,它只有一个参数(OBJPROP_TIMEOBJPROP_TIME1),没有PRICE参数。您在图表上看到的是TREND_LINE,它是一条线,其起点 ( OBJPROP_TIME1, OBJPROP_PRICE1) 和终点 ( OBJPROP_TIME2, OBJPROP_PRICE2) 和ObjectSetInteger(0,name,OBJPROP_RAY,false);

所以在添加ADX到图表之后(顺便问一下,为什么它有这么多参数?它是自定义 ADX 吗?如果是,请确保你正确调用它),使用绘制线条ObjectCreate(0,name,subwindow,0,0)并设置其所有参数(颜色、开始和端点,RAY=false,宽度和一些其他参数)检查对象创建成功后。也许您需要一个特殊的函数ObjDrawTrendLine(const string name,const int subwindow,const datetime dtStart,const double dStart,const datetime dtEnd,const double dEnd,const color clr)来绘制这些对象,或者如果名称相同则移动它们。应从CHART_WINDOWS_TOTAL或外部接收子窗口。

于 2018-03-19T13:17:19.970 回答