Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 285

 
 
buyanov:

  получил сообщение "comma expected" непонятно, что это значит,может, стоит обратится к разработчикакам?


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);     
     }
Vitaly Muzichenko:
Вообще, вы написали очень древнюю конструкцию

Я по форуму искал, видел конструкций с классами но в классах я не разбираюсь, по этому хотел начать с самого простого (по виду).

 
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:

  получил сообщение "comma expected" непонятно, что это значит,может, стоит обратится к разработчикакам?


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()");

Вставил в 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()");
Причина обращения: