给MQL行家的一个问题 - 页 4

 
什么是地狱...我进入了 "向MQL专家提问"...对不起,如果有的话,我是一个好的程序员,就像一个d....。但我总是很客观 ! :)
 
leonid553:

我想我明白了。我在函数中设置了对象的名称。

ObjectCreate(name+ WindowExpertName(), OBJ_LABEL, WindowFind(WindowExpertName()), 0, 0) 。


这与物体无关...

你把它写在init()中

IndicatorShortName("CC-STOKS ");

你在渲染函数中使用WindowExpertName()作为指标名称...

亲爱的朋友,请下定决心(对不起,我很熟悉),要么这个指标被称为"CC-STOKS"(别名),要么它被称为专家顾问的名字......

 

我在说我的...

好吧,我没有看到对一个物体的检查。

 

删除IndicatorShortName("CC-STOKS") 一行。

现在看来是有效的。

//------------------------------------------

检查过了。

 string info =ObjectFind("Symbol1+WindowExpertName()");
     IndicatorShortName(info);     

该注释返回"-1"。

而且--"别名 "是否在那里或是否被删除都不重要。

 

是的,它工作得很好...

感谢每一个帮助和回答问题的人!

 

我已经喝了几瓶啤酒,但你让我大开眼界......

清楚地说明发生了什么事...



1.没有短名和

static int WINDOW = -1;

int start(){
   if (WINDOW == -1) WINDOW = WindowFind( WindowExpertName() );
}

你的init()如是说

或者在你的int()中设置短名。

string short = "CC-STOKS";

int init(){
   IndicatorShortName( short );
   // остальное прочее
}

int start(){
   if (WINDOW == -1) WINDOW = WindowFind( short );
}

然后在绘制对象时,使用WINDOW作为子窗口编号。

ObjectCreate(name + WindowExpertName(), OBJ_LABEL, WINDOWS, 0, 0);

对象函数应该是这样的

void object(string name, int window, string text, color col, int corner,
            int x, int y, bool back = false, int fontsize = 9, 
            string fontname = "Tahoma") {
   if (ObjectFind(name)==-1)      
      ObjectCreate(name, OBJ_LABEL, window, 0, 0);
   ObjectSetText(name, text, fontsize, fontname, col);
   ObjectSet(name, OBJPROP_CORNER, corner);
   ObjectSet(name, OBJPROP_BACK,back);
   ObjectSet(name, OBJPROP_XDISTANCE, x);
   ObjectSet(name, OBJPROP_YDISTANCE, y);     
}

这样,所有的关键属性都作为参数传递,顺便说一下,对象的名字应该在函数之外形成 ...

 
好的。通过你的指示...
 

下午好。请告知。

是否可以在指标窗口中画一个三角形?如果是这样,如何设定坐标?

我在mql帮助中找不到设置三角形坐标的方法。

 
Rita:

下午好。请告知。

是否可以在指标窗口中画一个三角形?如果是这样,如何指定坐标?

我在mql帮助中找不到设置三角形坐标的方法。


ObjectCreate(имя_объекта, OBJ_TRIANGLE, 0, вершина1_время, вершина1_цена, вершина2_время, вершина2_цена, вершина3_времявершина3_цена);
如果不在主子窗口,则使用相应的子窗口编号,而不是0:https://docs.mql4.com/ru/windows/WindowFind
 


ObjectCreate(name,OBJ_TRIANGLE, WindowFind(WindowExpertName(),Time[-1],vertex1_price,

时间[-5],顶点2_价格。

Time[-7],vertex3_price, )。

//--------------------------------------------------------------------------------------------------------------------------

我已经按时间设置了三角形节点的坐标(例如--按未来柱子的开盘时间)。其余的我就不太清楚了。在指标窗口的刻度上显示的不是价格。它是指标值的分级。

我需要 "放 "一个有刚性固定顶部的三角形,无论价格如何。

而且最好是硬性地固定在右角(或下角)。

而且我不知道如何设置其顶点的坐标--在指标刻度的纵轴上。