Was gibt es da nicht durchzusteigen? Das Problem ist nur allzu häufig, ihr wollt EAs programmieren und es fehlen häufig die grundlegenden Programmkenntnisse. Bei der Zeile:
if OrderSelect(i, SELECT_BY_POS, MODE_HISTORY); muss es natürlich lauten: if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) Dieser Fehler war aus Post #4 mitgeführt worden. U.a. nach if und for folgt immer!! ein Klammerausdruck (...) und kein ; Das return(summe) sitzt im Post #11 an der korrekten Stelle. traderdoc |
Hallo traderdoc,
ich bitte vielmals um Entschuldigung. Die zusätzlich einzufügenden if-Klammern waren mir auch schon aufgefallen und "return(summe)" bzw. "Print("Summe", summe);" standen selbstverständlich an der richtigen Stelle. Melde mich in Kürze, sobald es etwas Neues zu berichten gibt. LG. piptrade |
Liste der Anhänge anzeigen (Anzahl: 1)
Lieber traderdoc,
ich mühe mich redlich, - und das seit Stunden ! Im Allgemeinen hast Du schon recht, alle wollen sich einen EA "basteln" aber keiner will dessen Sprache verstehen. Im Besonderen gibt es aber auch User, welche die Sprache erlernen und richtig anwenden wollen. - Und das versuche ich seit nunmehr einem Jahr (Stück für Stück - und immer, wenn es die Zeit erlaubt). Momentan muss ich mich aber mit "no body is perfect" zufrieden geben ! Was meine aktuellen Bemühungen angeht, bin ich jetzt HIER angelangt: Code:
extern string LastDays = "Today=0, Yesterday=1 aso."; 1. "Profit"-function can be declared only in the globalscope 2. "paintProf" - function not defined 3. "paintLoss" - function not defined und 4. "PaintSumme" - wrong parameters count Ursprünglich waren es 23 errors und ?? warnings, welche ich ausräumen konnte, - jetzt komme ich aber einfach nicht weiter. Vielleicht kannst Du nochmals einen Blick darüber werfen und mir mit Deinen Hinweisen zur Seite stehen ? Wäre richtig toll. LG. piptrade PS.: Auf dem angehängten JPG werden die abgeschlossenen Trades (EA arbeitet momentan OHNE Filter!) bereits dargestellt - die programm-technische Umsetzung der manuell eingefügten Grafik ist das Ziel des obigen Codes. So hat man vielleicht eine bessere Vorstellung. |
1. "Profit"-function can be declared only in the globalscope
double Profit() muss genauso extern deklariert werden wie z.B. void paintSign() 2. "paintProf" - function not defined Die Funktion paintProf() wurde zwar aufgerufen aber wurde nirgends deklariert. 3. "paintLoss" - function not defined Die Funktion paintLoss() wurde zwar aufgerufen aber wurde nirgends deklariert. 4. "PaintSumme" - wrong parameters count Die Funktion paintsumme() wurde mit der Übergabe eines Parameters deklariert, sie wird aber ohne Parameterübergabe aufgerufen. Das geht natürlich nicht. traderdoc |
Ohhh, - eine Antwort im "Kästchen" !
- jetzt wird`s wieder heiß für mich. Werde mich sofort und erneut in die Materie stürzen und hoffe noch heute Abend grünes Licht geben zu können. Bis dahin ganz LG. piptrade |
Hallo traderdoc,
bis zum jetzigen Zeitpunkt zeigt sich lediglich ein grünlicher Schimmer am Ende des Tunnels. Ein "GRÜNES LICHT" ist das noch nicht. Die letzten 3 Punkte habe ich (so glaube ich zumindest) verstanden und den Code auch dahingehend verändert. Resultat für diese 3 Punkte: No Errors / No Warnings ! Insoweit bin ich erst einmal über das Erreichte recht froh. Danke. Darüber hinaus habe ich etwas "aufgeräumt", überflüssige Dopplungen entfernt und Kleinigkeiten in Übereinstimmung gebracht. Soweit, wie gesagt, ist alles o.k.. Was es aber in sich hat, ist der Part mit der externen Deklaration von double Profit() ! Egal, wohin ich dieses Teil verschiebe, egal, wie ich es umforme oder ergänze, - das PRG will nach wie vor die globale Deklaration !!! (... oder schlimmeres !) Kannst Du mir bei dem hoffentlich letzten "Brocken" nochmals helfen ? LG. piptrade |
@piptrade, Du kannst einen schon beschäftigen.
Code:
extern string LastDays = "Today=0, Yesterday=1 aso."; Auch diese Zeile kann der Compiler nicht bearbeiten: x = OrderProfit() Da fehlt nicht viel, aber etwas Entscheidendes, nämlich das ; Beim Programmieren wird der kleinste Syntaxfehler geahndet. Diese Funktionen waren immer noch nicht deklariert und müssen mit Leben erfüllt werden. paintsumme(); //hier fehlt laut Deklaration der Funktion ein int-Parameter in den Klammern! (das ist in diesem Code jetzt noch der einzige Syntaxfehler!!) Die init()-Funktion funktioniert auich nur so richtig: int init() { initGraph(); if (IsConnected()) main(); return(0); } Und alles noch etwas aufgehübscht. So, nu is aber gut. traderdoc |
"So, nun is aber gut !"
Das hast Du sehr schön gesagt: - und Du hast sicher auch Recht damit ! Danke, Danke, Danke! - für Dein neustes Statement. Bin voller Spannung, Deine Ausführungen zu inhalieren, - sorry, - aber bitte erst morgen. Melde mich so schnell als möglich und auch nur dann, wenn es Sinn macht. Gute Nacht, alles liebe und bis dahin ... piptrade |
Nachtrag:
Lieber traderdoc, dass ich Dich "schon beschäftigen" kann, hatte ich übersehen (die CodeUmschreibung war in diesem Moment wichtiger !) - sorry ! Dennoch empfinde ich es als bewundernswert, - einfach nur als toll und als fair, dass Du, wie ein Terrier, `dran bleibst, den richtigen Biss hast, und ... spitzenmäßig und selbstlos weiterhilfst ! Bis hier her nochmals: DANKE ! ... und natürlich die LG. piptrade |
Hallo, traderdoc,
wenn ich Dich richtig verstanden habe, bestand das Hauptproblem im Fehlen eines int-Parameters innerhalb der Klammer. Bei dem angehängten Vorschlag wurde in der Deklaration unter void "value" gegen "summe" ersetzt, so dass der int-Parameter innerhalb der Klammer ebenfalls "summe" sein müßte. - Gesagt, getan ! Jetzt wurde eine erneute Deklaration verlangt, die ich vorerst mit "double summe = OrderProfit();" gelöst habe. - Zumindest gibt es "no error" / "no warning" ! - Und "SO" sieht es dann im Code aus: Code:
double summe = OrderProfit(); Bis zum Eintreffen Deiner mit Spannung erwarteten Antwort werde ich mich um die letzten 2 "void-Blöcke" kümmern und die provisorischen Bezeichnungen gegen die relevanten austauschen. Auch hier sind sich verändernde Variable notwendig, so dass ich auch hier auf das obige Problem stoßen werde. Nun denn ... LG. piptrade |
Alle Zeitangaben in WEZ +2. Es ist jetzt 06:33 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum