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

 
Yevhenii Levchenko:
Come faccio a sapere se un ordine è stato chiuso manualmente o da un robot?

DEAL_OUT... 'manualmente' il robot avrà ID=magico

Se si cerca con un robot, allora magic = 0 per un ordine di uscita manuale (anche se un robot può anche avere 0, ma questa è più un'eccezione che una regola)

 
Vitaly Muzichenko:

Screenshot per favore, mai visto un segno nel diario di bordo come la chiusura/cancellazione avvenuta


qui

nella scheda degli esperti doveva essere

 
Andrey Sokolov:


qui

nella scheda esperti significava

Grazie, dovrò prestare attenzione a questo per lo sviluppo generale.

 

Perché questo codice disegna le frecce sbagliate - MQL5

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++; };
   
   ResetLastError();
   if(ObjectCreate(ChartID(),name,OBJ_ARROW,0,time,price))
     {
      ObjectSetInteger(ChartID(),name,OBJPROP_ARROWCODE,(type == OBJ_ARROW_UP ? 241 : 242));
     }
   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);
  }


Dovrebbe disegnare OBJPROP_ARROWCODE 241 o 242
... ma invece disegna il normale OBJ_ARROW_UP o OBJ_ARROW_DOWN

 
Sergey Likho:

Si può usare MQL4/MQL5 per estendere un'immagine BMP a tutto lo schermo?

Per quanto ne so - no.

 
Alexandr Sokolov:

Perché questo codice disegna le frecce sbagliate - MQL5


Dovrebbe disegnare OBJPROP_ARROWCODE 241 o 242
... ma invece disegna il solito OBJ_ARROW_UP o OBJ_ARROW_DOWN

Sostituire

      ObjectSetInteger(ChartID(),name,OBJPROP_ARROWCODE,(type == OBJ_ARROW_UP ? 241 : 242));

a

      ObjectSetInteger(ChartID(),name,OBJPROP_ARROWCODE,(type == OBJ_ARROW_UP ? 225 : 226));

e controllare - quindi cosa viene effettivamente disegnato?

 
Vladimir Karputov:

Sostituire

a

e controllare - quindi cosa viene effettivamente disegnato?

queste frecce sono disegnate, ma perché le frecce codificate 241 e 242 non sono disegnate?

 
Igor Zakharov:

DEAL_OUT... 'manualmente' il robot avrà ID=magico

Se si cerca con un robot, allora magic = 0 per un ordine di uscita manuale (anche se un robot potrebbe anche avere 0, ma questa è più l'eccezione che la regola)

Grazie! Ma è su mt5...
Andrey Sokolov:

qui

nella scheda Expert Advisors significa

C'è un modo per farlo uscire programmaticamente?
[Eliminato]  
Igor Makanu:

Non l'ho fatto, o meglio non l'ho cercato nella sottofinestra. Nella KB ho esposto un esempio di clic sulle barre della finestra principale e di visualizzazione delle informazioni sulla barra - puoi cercarlo

Ho fatto un indicatore per sperimentare con i pulsanti - ho controllato se i pulsanti muovono la linea dell'indicatore

per vedere se l'indicatore si sta muovendo metti una linea orizzontale nella sottofinestra dell'indicatore ... Questo è piuttosto figo ))))

Grazie. Solo che non capisco come attaccare questo al mio indicatore.

 
Yevhenii Levchenko:
il software può eliminare questo?

Allora forse, come già suggerito, per magicka