Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 285

 
 
buyanov:

bekam die Meldung "Komma erwartet" Ich weiß nicht, was das bedeutet, vielleicht sollte ich die Entwickler kontaktieren?


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 welcher Zeile gibt der Compiler einen Fehler aus?

 

Guten Tag!

Ich habe eine Linie gemacht, die ich frei bewegen möchte. Im Moment müssen Sie die Linie anklicken und können sie erst dann verschieben. Wie kann ich es möglich machen, die Linie ohne Doppelklick zu verschieben?

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:

Guten Tag!

Ich habe eine Linie gemacht, die ich frei bewegen möchte. Im Moment müssen Sie die Linie anklicken und können sie erst dann verschieben. Wie kann ich es möglich machen, die Linie ohne Doppelklick zu verschieben?

ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);
Eigentlich haben Sie einen sehr alten Entwurf geschrieben
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_HLINE - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Vitaly Muzichenko:
ObjectSetInteger(0,nm,OBJPROP_SELECTED,true);


Danke, aber irgendetwas hat nicht funktioniert. Ich sage es mal so: Vielleicht stimmt etwas nicht?

   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:
Eigentlich haben Sie eine sehr alte Konstruktion geschrieben.

Ich habe das Forum durchsucht, ich habe Konstruktionen mit Klassen gesehen, aber ich bin nicht gut in Klassen, also wollte ich mit dem einfachsten (im Aussehen) beginnen.

 
Nauris Zukas:


Danke, aber irgendetwas hat nicht funktioniert. Wenn ich diese Funktion so einstelle, muss etwas falsch sein?

Ich habe das Forum durchsucht, ich habe Konstruktionen mit Klassen gesehen, aber ich kenne mich mit Klassen nicht aus, also wollte ich mit der einfachsten beginnen (in Bezug auf das Aussehen).

Es sollte ein Paar mit OBJPROP_SELECTABLE geben

   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:

Muss mit OBJPROP_SELECTABLE gepaart sein

Ich weiß nicht, irgendetwas funktioniert nicht. Sie bewegt sich erst nach einem Doppelklick und die Zeile wird schwarz.

 
Nauris Zukas:

Ich weiß nicht, irgendetwas funktioniert nicht. Sie bewegt sich erst nach einem Doppelklick und die Zeile wird schwarz.

Dann fügen Sie vor diesen beiden Zeilen eine weitere ein.

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

Dann fügen Sie eine weitere Zeile vor diesen beiden Zeilen ein.

Es hat nicht funktioniert, vielleicht ist ein Fehler im Code?

Dateien:
 
buyanov:

Ich bekam die Meldung "Komma erwartet", ich weiß nicht, was das bedeutet, vielleicht sollte ich die Entwickler kontaktieren?


int WhatType()

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

{


Alert("beg WhatType()");


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

Alert(NextTick);


Alert("NextType=",NextType);

OpPrice=OrderOpenPrice();

ClPreis=OrderClosePrice();


if(ClPrice>OpPrice)CurType=OP_BUY;

sonst CurType=OP_SELL;


Alert("CurType=",CurType);


Alert("end WhatType()");

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

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

Ich habe es in MetaEditor eingefügt und ein wenig verändert - keine Fehler

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()");
Grund der Beschwerde: