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

 

同事们!上周一切正常--我可以进入账户!!这个错误是什么意思,我怎样才能连接到账户?密码都在那里!!。


放上最新的版本...

这里是突出显示的一行 - 这是什么?删除当前的旧版本?


 
Andrey Sokolov:

那么,也许,正如已经建议的那样,在魔法上

在 "魔术师之四 "中,只有开局可以被监控。问题是关于闭幕。

 
Andrey Sokolov:

那么也许,正如已经建议的那样,通过魔力

关闭的那一刻是有意义的...也就是说,例如有一个EA在其订单中到处设置了相同的魔力。但在某一时刻,它需要查明是它自己完成了交易,还是有人干扰并完成了交易......你既不能改变Magiks也不能改变评论......?

 
Alexandr Sokolov:

这些箭头是画出来的,但为什么编码为241和242的箭头没有画出来?

谁说的?我没有要求白白改变代码 :)

测试二:仔细看一下Wingdings 字体

OBJ_ARROW对象一起使用的 Wingdings字体字符

翼形图


现在用OBJ_ARROW_UP和OBJ_ARROW_DOWN对象比较代码241、242,看...我们看到了什么?

 
Vladimir Karputov:

谁说的?我没有要求白白改变代码 :)

测试二:仔细看一下Wingdings 字体

OBJ_ARROW对象一起使用的 Wingdings字体字符



现在用OBJ_ARROW_UP和OBJ_ARROW_DOWN对象比较代码241、242,看...我们看到了什么?

OBJ_ARROW_UP和OBJ_ARROW_DOWN不是用来指定一个物体的类型,而是用来轻松区分它 ...


在这里,我按照链接上的例子进行了操作

void ArrowCreate(ENUM_OBJECT             type,
                 datetime                time,
                 double                  price)
  {
   
   string name = (type == OBJ_ARROW_UP ? "Arrow Up №"+(string)(up+1) : "Arrow Down №"+(string)(down+1));
   if(type == OBJ_ARROW_UP)  { up++; }
   else                      { down++; };
   
   ObjectCreate(0,name,OBJ_ARROW,0,0,0,0,0);          // создадим стрелку
      ObjectSetInteger(0,name,OBJPROP_ARROWCODE,(type == OBJ_ARROW_UP ? 241 : 242));    // установим код стрелки
      ObjectSetInteger(0,name,OBJPROP_TIME,time);        // зададим время
      ObjectSetDouble(0,name,OBJPROP_PRICE,price);
   
   /*
   ResetLastError();
   if(ObjectCreate(ChartID(),name,OBJ_ARROW,0,time,price))
     {
      ObjectSetInteger(ChartID(),name,OBJPROP_ARROWCODE,(type == OBJ_ARROW_UP ? 225 : 226));
     }
   else
     {
      Print(__FUNCTION__,
            ": не удалось создать знак \"Стрелка\"! Код ошибки = ",GetLastError()); return;
     };
   ObjectSetInteger(ChartID(),name,OBJPROP_ANCHOR,(type == OBJ_ARROW_UP ? ANCHOR_TOP : ANCHOR_BOTTOM)); 
   ObjectSetInteger(ChartID(),name,OBJPROP_COLOR,(type == OBJ_ARROW_UP ? a_color_buy : a_color_sell));
   ObjectSetInteger(ChartID(),name,OBJPROP_STYLE,STYLE_SOLID); 
   ObjectSetInteger(ChartID(),name,OBJPROP_WIDTH,a_size); 
   ObjectSetInteger(ChartID(),name,OBJPROP_BACK,false); 
   ObjectSetInteger(ChartID(),name,OBJPROP_SELECTABLE,false); 
   ObjectSetInteger(ChartID(),name,OBJPROP_SELECTED,false); 
   ObjectSetInteger(ChartID(),name,OBJPROP_HIDDEN,true); 
   ObjectSetInteger(ChartID(),name,OBJPROP_ZORDER,0);*/
  }


...而这就是结果...


 
Alexandr Sokolov:

OBJ_ARROW_UP和OBJ_ARROW_DOWN不是用来指示对象类型的,它们是为了方便,使之更容易区分。


在这里,我按照链接中的例子做了


...而这里是结果。


好吧,现在是晚上,你还是不明白。OBJ_ARROW对象是一个图形对象,你可以为其设置Wingdings字体的符号。所以,OBJ_ARROW_UP 和OBJ_ARROW_DOWN是代码241,242的OBJ_ARROW的一种常见情况。

 
Vladimir Karputov:

好吧,现在是晚上,你还是不明白。OBJ_ARROW对象是一个图形对象,可以将Wingdings字体中的一个字符设置为该对象。那么,OBJ_ARROW_UP 和OBJ_ARROW_DOWN是OBJ_ARROW的一种常见情况,代码为241,242。

那么我怎样才能创建一个大小相似但内部填充的箭头?

我在什么地方见过一个,但现在找不到了。

 
Alexandr Sokolov:

那么你如何创建一个大小相似但内部填充的箭头呢?

我在什么地方看到过一个,但现在找不到了。

试着用OBJ_ARROW_UP和OBJ_ARROW_DOWN 来代替OBJ_ ARROW

 
Alexandr Sokolov:

那么你如何创建一个大小相似但内部有填充物的箭头?

我以前在什么地方见过这样的东西,但现在找不到了。

这就是代码为231-238的OBJ_ARROW

 

问候!

我不能用CTrade.PositionCloseBy(ticket1,ticket2)关闭不同手数的相反订单。

ResultRetCode() - 我得到错误10035。

请告知原因何在?