专家顾问 - 杂项问题 - 页 26

 
Max Enrik:
我已经尝试了下面的代码。
if(id==CHARTEVENT_OBJECT_DRAG && sparam=="#"+IntegerToString(OrderTicket())+"-TP")
  {
// here was my functions
  }

这不是对我的回应。

你是想在拖动终端生成的TP线时触发代码吗?如果是这样,我得看看在市场开放时是否有效。
 
honest_knave:
只是再读一遍......你是想在拖动终端生成的TP线时触发代码吗?

不,他不是。

他正试图移动一条定制的隐身线。

它应该全天候工作,如果市场关闭产生修改错误,如果代码被设置为这样做,因为我上次根据他的要求删除了那部分。

 

@honest_knave

不,我不想使用终端 - 生成的TP线。(终端TP线应该遵循自定义的HLine对象--我已经在你和Marco先生的帮助下完成了--再次感谢你。)

---

首先感谢你们两位的评论。
也许我失去了我的大脑,我真的很抱歉。我不能使用你的最新评论。

我只是觉得我应该写一些代码,帮助你更清楚地了解我的问题。

void OnTick()
  {
   ObjectCreate(0,"Label",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label",OBJPROP_COLOR,clrWhite);
   ObjectSetInteger(0,"Label",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label",OBJPROP_YDISTANCE,Bid); // of course this is not correct value for it - but I try Label object moves with bid line together

   /*
   I do not need Object Text why? Because it will disappear when I scrolls chart.
   I just need fixed OBJPROP_XDISTANCE = 20 | also my chart design starts from left margin x = 20

   I have a faith this Chart Operation can help me,
   but there is not example for how can I use this operation ( in MQL4 documentation - also I can't find it )
   ChartTimePriceToXY();
   */

  }

再一次为这种混乱感到抱歉。

谢谢你。

 

现在你试图在每一个刻度线上重新创建对象!这将在每一个刻度线上产生错误4200对象已经存在。

在OnInit或一个单独的函数中创建一次对象,并使用ObjectMove()函数 来移动该对象。

 
Marco vd Heijden:

不,现在你试图在每一个刻度上重新创建对象!这将在每一个刻度上产生错误4200,对象已经存在。

在OnInit或一个单独的函数中创建一次对象,并使用ObjectMove()函数 来移动该对象。

我在Obj_Label文档中没有看到ObjectMove()。
请问,Obj_Label是否可以使用ObjectMove()?

 
Max Enrik:

我在Obj_Label文档中没有看到关于ObjectMove()的内容。
请问,Obj_Label是否可以使用ObjectMove()?

不可以。ObjectMove()是针对由时间/价格而不是x/y固定的对象,我相信(除非文档需要更新!)。

用OBJPROP_XDISTANCE和OBJPROP_YDISTANCE调用 两个ObjectSetInteger()

 

谢谢你的评论。

我已经在其他论坛网站上问过了,Obj_Label 能不能和Bid Price Line一起移动?
我可以将投标价格值转换为Y坐标吗?

我真的很累,要研究这个问题。

谢谢

 

如果你不确定,你可以随时尝试,这是发现东西是否有效的唯一方法。

如果它不工作,总是有一个替代的方法OBJ_BUTTON OBJ_RECTANGLE

 
Max Enrik:

谢谢你的评论。

我已经在其他论坛网站上问过了,Obj_Label 可以和买入价线一起移动吗?
我可以将买入价转换为Y坐标吗?

我真的很累,要研究这个问题。

谢谢!

最简单的解决方案是在一行中使用OBJPROP_TEXT。文字将总是在屏幕的左边,但随着价格的变化而上下移动。

否则你将需要更多的代码。请看ChartTimePriceToXY()和ChartXYToTimePrice()。

 
honest_knave:

最简单的解决方案是在一行中使用OBJPROP_TEXT。文字将总是在屏幕的左边,但随着价格的变化而上下移动。
否则你将需要更多的代码。请看ChartTimePriceToXY()和ChartXYToTimePrice()。

Marco先生已经发布了ChartXYToTimePrice()的例子,然后我又尝试了Label对象,我没有得到很好的结果,但那是一个很棒的例子,我把它保存起来了--非常感谢@Marco vd Heijden

所以我想问,ChartTimePriceToXY()和ChartXYToTimePrice()是否可以帮助我解决这个问题?
如果是的话,我在哪里可以通过实例了解ChartTimePriceToXY()函数?

如果我在评论中犯了错误,请不要责怪我,我已经厌倦了寻找这个问题的解决方案。

先谢谢了。