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

 
 
buyanov:

得到的信息是 "预计有逗号",我不知道这意味着什么,也许我应该联系开发人员?


int WhatType()

//>>>>>>>>>>>>>>>>>>>>>

{



Alert("beg  WhatType()");



if(OrderSelect(NextTick,SELECT_BY_TICKET)==true) Alert("OrderSelected=",NextTick);

Alert(NextTick);



Alert("NextType=",NextType);

OpPrice=OrderOpenPrice();

ClPrice=OrderClosePrice();



if(ClPrice>OpPrice)CurType=OP_BUY;

else CurType=OP_SELL;



Alert("CurType=",CurType);



Alert("end WhatType()");

//>>>>>>>>>>>>>>>>>>>>>>>>>

}//Alert("end int WhatType()");


编译器在哪一行出现了错误?

 

下午好!

做了一条我想自由移动的线。目前,你必须点击线条,只有这样你才能移动它。如何才能让我在不双击的情况下移动线路?

double startL;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
startL=Bid;

SetHLine(clrAqua, "", startL, STYLE_SOLID, 5);    
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

  }

color array_color[5]={clrRed,clrAliceBlue,clrAqua,clrRoyalBlue,clrCrimson};
void OnChartEvent(const int    id,
                  const long   &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_DRAG)
     {
      Print("object name: ",sparam);
      ObjectSetInteger(0,sparam,OBJPROP_COLOR,array_color[rand()%5]);
     }
  }
    

void SetHLine(color cl, string nm="", double p1=0, int st=0, int wd=1) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (p1<=0) p1=Bid;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_HLINE, 0, 0,0);
  ObjectSet(nm, OBJPROP_PRICE1, p1);
  ObjectSet(nm, OBJPROP_COLOR , cl);
  ObjectSet(nm, OBJPROP_STYLE , st);
  ObjectSet(nm, OBJPROP_WIDTH , wd);
}
//+----------------------------------------------------------------------------+
 
Nauris Zukas:

下午好!

做了一条我想自由移动的线。目前,你必须点击线条,只有这样你才能移动它。如何才能让我在不双击的情况下移动线路?

ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
实际上,你写的是一个非常老的设计
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);


谢谢你,但有些东西没有发挥作用。我这样说,也许是出了问题?

   if(id==CHARTEVENT_OBJECT_DRAG)
     {
      Print("object name: ",sparam);
      ObjectSetInteger(0,sparam,OBJPROP_SELECTED,true);
      ObjectSetInteger(0,sparam,OBJPROP_COLOR,array_color[rand()%5],true);     
     }
维塔利-穆齐琴科
实际上,你写的是一个非常古老的建筑。

我在论坛里搜索了一下,我看到了带类的结构,但我不擅长类,所以我想从最简单的(外观上)开始。

 
Nauris Zukas:


谢谢你,但有些东西没有发挥作用。我把这个功能这么一说,一定是有什么问题了?

我在论坛上搜索了一下,我看到了带类的结构,但我不擅长类,所以我想从最简单的一个开始(从外观上看)。

应该有一对与 OBJPROP_SELECTABLE

   if(id==CHARTEVENT_OBJECT_DRAG)
     {
      Print("object name: ",sparam);
      ObjectSetInteger(0,sparam,OBJPROP_SELECTABLE,true);
      ObjectSetInteger(0,sparam,OBJPROP_SELECTED,true);
      ObjectSetInteger(0,sparam,OBJPROP_COLOR,array_color[rand()%5],true);     
     }
 
Alexey Viktorov:

必须与 OBJPROP_SELECTABLE 配对。

我不知道,有些东西是不工作的。只有在双击之后才会移动,而且线会变黑。

 
Nauris Zukas:

我不知道,有些东西不起作用。只有在双击之后才会移动,而且线会变黑。

好吧,那就在这两行之前再加一条。

ObjectSetInteger(0, sparam, OBJPROP_HIDDEN, false);
 
Alexey Viktorov:

那么,在这两行的前面再加一行。

没有成功,也许代码中存在错误

附加的文件:
 
buyanov:

我得到的信息是 "预期的逗号",我不知道它是什么意思,也许我应该联系开发人员


int WhatType()

//>>>>>>>>>>>>>>>>>>>>>

{


Alert("beg WhatType()")。


如果(OrderSelect(NextTick,SELECT_BY_TICKET)==true) Alert("OrderSelected=",NextTick)。

Alert(NextTick)。


Alert("NextType=",NextType)。

OpPrice=OrderOpenPrice()。

ClPrice=OrderClosePrice()。


如果(ClPrice>OpPrice)CurType=OP_BUY。

否则CurType=OP_SELL。


Alert("CurType=",CurType)。


Alert("end WhatType()")。

//>>>>>>>>>>>>>>>>>>>>>>>>>

}//Alert("end int WhatType()")。

我把它粘贴到MetaEditor中,稍微调整了一下 - 没有错误

void WhatType()
//>>>>>>>>>>>>>>>>>>>>>
{
Alert("beg  WhatType()");
int NextTick=1, NextType=1;
if(OrderSelect(NextTick,SELECT_BY_TICKET)==true) Alert("OrderSelected=",NextTick);
Alert(NextTick);
Alert("NextType=",NextType);
double OpPrice=OrderOpenPrice();
double ClPrice=OrderClosePrice();
int CurType;
if(ClPrice>OpPrice)CurType=OP_BUY;
else CurType=OP_SELL;
Alert("CurType=",CurType);
Alert("end WhatType()");
//>>>>>>>>>>>>>>>>>>>>>>>>>
}//Alert("end int WhatType()");