parameter conversion not allowed

 

Hallo zusammen,


ich bin neu hier, lerne gerade Programmieren mit MQL5 und probiere mich zur Zeit an meinem ersten Programm. Da ich keinen mehr in meinem Privaten Umfeld habe, den ich dazu befragen kann, muss ich meine n00b-Fragen leider hier stellen.

Ich habe ein Array aus Objekten:


class assets

{

};

assets *obj_assets[];


Jedes Dieser Objekte enthält ein ChartSymbol. Bei jedem Symbol würde ich gerne Trendlinien mit der Funktion 

ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2)

einfügen.


Nun habe ich mir eine funktion geschrieben, die mir die passende Chart_ID zu meinen ChartSymbolen ausgeben und abgleichen soll, diese braucht meine gewählten Symbole (assets *obj_assets[];) und deren Anzahl zum Vergleichen:


long int_check_chart_ID(assets &a[], int b)

{

};


Wenn ich jetzt die Trendlinien kreieren möchte:

ObjectCreate(int_check_chart_ID(obj_assets,amount_inp_Währung),name,OBJ_TREND,sub_window,time1,price1,time2,price2)

bekomme ich die Fehlermeldung "Parameter conversion not allowed". Liegt der Fehler daran, dass ObjectCreate als Parameter für Chart_ID keine Funktion nimmt? Denn beide Parameter sind meiner Meinung nach desselben Typs.


Ich hoffe, ich habe es halbwegs übersichtlich und leicht verständlich formuliert. Gibt es hier jemanden, der mir weiter helfen kann?


Danke im Voraus und einen schönen Freitagabend,

Chris

 
0zuhan:

Hallo zusammen,


ich bin neu hier, lerne gerade Programmieren mit MQL5 und probiere mich zur Zeit an meinem ersten Programm. Da ich keinen mehr in meinem Privaten Umfeld habe, den ich dazu befragen kann, muss ich meine n00b-Fragen leider hier stellen.

Ich habe ein Array aus Objekten:


class assets

{

};

assets *obj_assets[];


Jedes Dieser Objekte enthält ein ChartSymbol. Bei jedem Symbol würde ich gerne Trendlinien mit der Funktion 

ObjectCreate(chart_ID,name,OBJ_TREND,sub_window,time1,price1,time2,price2)

einfügen.


Nun habe ich mir eine funktion geschrieben, die mir die passende Chart_ID zu meinen ChartSymbolen ausgeben und abgleichen soll, diese braucht meine gewählten Symbole (assets *obj_assets[];) und deren Anzahl zum Vergleichen:


long int_check_chart_ID(assets &a[], int b)

{

};


Wenn ich jetzt die Trendlinien kreieren möchte:

ObjectCreate(int_check_chart_ID(obj_assets,amount_inp_Währung),name,OBJ_TREND,sub_window,time1,price1,time2,price2)

bekomme ich die Fehlermeldung "Parameter conversion not allowed". Liegt der Fehler daran, dass ObjectCreate als Parameter für Chart_ID keine Funktion nimmt? Denn beide Parameter sind meiner Meinung nach desselben Typs.


Ich hoffe, ich habe es halbwegs übersichtlich und leicht verständlich formuliert. Gibt es hier jemanden, der mir weiter helfen kann?


Danke im Voraus und einen schönen Freitagabend,

Chris

Hallo Chris,

als erstes benutze bitte den Code Button .


Du kannst dir den Umweg sparen mit deiner Funktion.

Es gibt bereits eine Object CChart in der Standardbibliothek

https://www.mql5.com/de/docs/standardlibrary/cchart

Es hat alle Funktionen die man gewöhnlich braucht.


Zu deinem Problem:

Ist der Fehler weg wenn du den long Wert direkt übergibts ?

Standardbibliothek – Wikipedia
  • de.wikipedia.org
Fast alle gängigen Programmiersprachen wie C, C++, C#, Java, Object Pascal und Python bieten eine umfassende Standardbibliothek. Soll also ein Compiler den Normen einer Programmiersprache entsprechen, muss er die Standardbibliotheken mitliefern. Hintergrund für das Konzept der Standardbibliothek sind die Abstraktion von Plattformdetails (z. B...
 
0zuhan:


 Liegt der Fehler daran, dass ObjectCreate als Parameter für Chart_ID keine Funktion nimmt?


Nein das kann nicht sein.

Siehe Code unten.

void OnStart()
  {

   long newChartID = ChartOpen("EURUSD", PERIOD_H1);
   Print(newChartID);
   
   if (!ObjectCreate(givelong(newChartID),"test",OBJ_TREND,0,0,1.1,0,1.2))
      {
        DebugBreak(); 
      }

  }
  
  
long givelong(long id)
{
  return id;
}
 

Hallo zusammen,


danke für Eure Mühe und Antworten. Ich habe noch ein wenig gesucht und rumprobiert und am Ende eine andere Lösung gefunden. Die war etwas umständlich, bin aber auch gerade auf eine noch einfachere gekommen die ich noch ausprobieren werde.

Wie gesagt bin ich noch Anfänger und die Lösungen sind eigentlich ziemlich basic und selbstverständlich, ich glaube nicht, dass die jemand zum Nachschlagen gepostet braucht, bisher sind es nur Fehler in meiner Logik ;-)


LG,

Chris

 

Denk dran: Es gibt fast nix, was nicht schon für MT4/5 geschrieben wurde!

Gerade für Neulinge ist Suchen viel, viel schneller als selber machen!!

 
Carl Schreiber:

Denk dran: Es gibt fast nix, was nicht schon für MT4/5 geschrieben wurde!

Gerade für Neulinge ist Suchen viel, viel schneller als selber machen!!

Genau mein Gedanke. Ich such mir auch sehr viel zusammen und wenn ich MQL spezifisch nichts finde, hat es auch schon geholfen über C++ zu lesen um MQL besser zu verstehen. Selber machen mag ich dennoch, da ich es halt lernen möchte^^
 

Was hast du denn vor? Ich arbeite viel mit trendlinien auf charts und erzeuge mir die auch selbst

Hauptsächlich um orders zu setzen

Grund der Beschwerde: