Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 285

 
 
buyanov:

Recibí el mensaje "comma expected" No sé lo que significa, ¿tal vez debería contactar con los desarrolladores?


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


¿En qué línea da error el compilador?

 

¡Buenas tardes!

Hizo una línea que quiero mover libremente. Por el momento tienes que hacer clic en la línea y sólo entonces puedes moverla. ¿Cómo puedo hacer que se pueda mover la línea sin hacer doble clic?

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:

¡Buenas tardes!

Hizo una línea que quiero mover libremente. Por el momento tienes que hacer clic en la línea y sólo entonces puedes moverla. ¿Cómo puedo hacer que se pueda mover la línea sin hacer doble clic?

ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
En realidad, usted escribió un diseño muy antiguo
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);


Gracias, pero algo no ha funcionado. Lo pongo de esta manera, ¿tal vez algo está mal?

   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:
En realidad, has escrito una construcción muy antigua.

He buscado por el foro, he visto construcciones con clases, pero no se me dan bien las clases, así que quería empezar por lo más sencillo (en apariencia).

 
Nauris Zukas:


Gracias, pero algo no ha funcionado. Puse esta función de esta manera, debe ser algo malo?

He buscado en el foro, he visto construcciones con clases, pero no se me dan bien las clases, así que he querido empezar por la más sencilla (en cuanto a apariencia).

Debe haber un par con 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:

Debe estar emparejado con OBJPROP_SELECTABLE

No sé, algo no funciona. Sólo se mueve después de un doble clic y la línea se vuelve negra.

 
Nauris Zukas:

No sé, algo no funciona. Sólo se mueve después de un doble clic y la línea se vuelve negra.

Bien, entonces añade otra antes de estas dos líneas.

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

Bien, entonces añade otra línea delante de esas dos líneas.

No funcionó, ¿tal vez hay un error en el código?

Archivos adjuntos:
 
buyanov:

Recibí el mensaje "comma expected", no sé lo que significa, ¿quizás deba contactar con los desarrolladores?


int QuéTipo()

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

{


Alert("beg WhatType()");


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

Alerta(NextTick);


Alert("NextType=",NextType);

OpPrice=Precio de apertura del pedido();

ClPrice=Precio de cierre del pedido();


if(ClPrice>OpPrice)CurType=OP_BUY;

si no CurType=OP_SELL;


Alert("CurType=",CurType);


Alert("end WhatType()");

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

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

Lo he pegado en el MetaEditor, lo he retocado un poco y no hay errores

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