Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 285

 
 
buyanov:

ha ricevuto il messaggio "virgola attesa" non so cosa significhi, forse dovrei contattare gli sviluppatori?


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


In quale linea il compilatore dà un errore?

 

Buon pomeriggio!

Ha fatto una linea che voglio muovere liberamente. Al momento devi cliccare sulla linea e solo allora puoi spostarla. Come posso rendere possibile lo spostamento della linea senza il doppio 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:

Buon pomeriggio!

Ha fatto una linea che voglio muovere liberamente. Al momento devi cliccare sulla linea e solo allora puoi spostarla. Come posso rendere possibile lo spostamento della linea senza il doppio clic?

ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
In realtà, hai scritto un disegno molto vecchio
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);


Grazie, ma qualcosa non ha funzionato. Se la metto così, forse c'è qualcosa che non va?

   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:
In realtà, lei ha scritto una costruzione molto vecchia.

Ho cercato nel forum, ho visto costruzioni con classi, ma non sono bravo con le classi, quindi volevo iniziare con la più semplice (in apparenza).

 
Nauris Zukas:


Grazie, ma qualcosa non ha funzionato. Ho messo questa funzione in questo modo, deve esserci qualcosa di sbagliato?

Ho cercato nel forum, ho visto costruzioni con classi, ma non conosco le classi, quindi volevo iniziare con la più semplice (in termini di aspetto).

Ci dovrebbe essere una coppia 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:

Deve essere abbinato a OBJPROP_SELECTABLE

Non so, qualcosa non funziona. Si muove solo dopo un doppio clic e la linea diventa nera.

 
Nauris Zukas:

Non so, qualcosa non funziona. Si muove solo dopo un doppio clic e la linea diventa nera.

Allora aggiungetene un altro prima di queste due righe.

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

Bene, allora aggiungete un'altra linea davanti a queste due linee.

Non ha funzionato, forse c'è un errore nel codice?

File:
 
buyanov:

Ho ricevuto il messaggio "virgola attesa", non so cosa significa, forse dovrei contattare gli sviluppatori?


int WhatType()

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

{


Alert("beg WhatType()");


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

Alert(NextTick);


Alert("NextType=",NextType);

OpPrice=OrderOpenPrice();

ClPrice=OrderClosePrice();


se(ClPrice>OpPrice)CurType=OP_BUY;

else CurType=OP_SELL;


Alert("CurType=",CurType);


Alert("fine WhatType()");

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

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

L'ho incollato in MetaEditor, l'ho modificato un po' - nessun errore

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