新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 1326

 
DanilaMactep:

我不止一次在视频教程中看到这种变量的改变 没有任何问题

我也想看看,能给我一个链接吗?

DanilaMactep:

请给出真正明确和明智的建议

帖子#13247

 

你能告诉我如何通过一个不完整的名字找到一个对象吗?

该指标创建对象并给它们一个名称

HlineCreate(0,"Min"+rand(),...);

找到对象,如果其价格低于当前价格,则删除该对象

 
MakarFX:

你能告诉我如何通过一个不完整的名字找到一个对象吗?

该指标创建对象并给它们一个名称

我需要找到一个对象,并在其价格低于当前价格时将其删除

是吗?

弦乐查找

搜索字符串中的子串。

intStringFind(
stringstring_value,//string 我们要找的
stringmatch_substring。//我们要找的
intstart_pos=0// 从哪个位置开始搜索
)。

参数

string_value

[in] 要搜索的字符串。

Match_substring

[in] 要搜索的Match_substring。

start_pos=0

[in] 在字符串中应开始搜索的位置。

返回的值

返回要搜索的子串开始的字符串中的位置号,如果没有找到子串,则返回-1。

 
Vitaly Muzichenko:

这个?

可能不会...

或者说,我不知道如何把它与对象搜索联系起来。

我正在努力。

 for(int i=0;i<ObjectsTotal();i++)
     ObjectDelete(0,"Min"+IntegerToString(i));

但这并不奏效。

 
MakarFX:

可能不会...

或者说,我不知道如何把它与对象搜索联系起来。

我还在努力。

但它就是不起作用(

for(int i=0;i<ObjectsTotal();i++) {
 if(StringFind(получим имя объекта,"Min")>-1) { // ObjectName
   ObjectDelete(0,"полученное имя");

stringObjectName(
intobject_index// object list中的编号
)。

 

我建议这样做。

int obj_total=ObjectsTotal(); 
 
   for(i=obj_total-1;i>=0;i--) 
     { 
      string name=ObjectName(i); 
      if(StringFind(name,"Min",0)!=-1)
        {
        ObjectDelete(name);
        } 
     } 
 
Vitaly Muzichenko:


Alekseu Fedotov:

谢谢,我现在就试试这两种方法)

 

像这样做了。

 for(int a = 0; a<ObjectsTotal() ;a++)
  {
   if(ObjectGet(ObjectName(a),OBJPROP_PRICE1)>iHigh(Symbol(),PERIOD_D1,1))
   if(ObjectDelete(ObjectName(a)))Print("Delete");
  }

完美无缺地工作!

谢谢大家)

 

你好。关于该物品的费用问题。我正在这样做。

MarketInfo("EURCAD",MODE_TICKVALUE) 
MarketInfo("USDCAD",MODE_TICKVALUE)

我在这两对上得到了相同的数值。这就是它的工作原理吗?还是说这是个小故障?

 
MakarFX:

像这样做了。

完美无缺地工作!

谢谢大家)

这个循环必须被逆转。否则就会有疑问,为什么它没有完美地工作。

原因: