|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Erste Programmierversuche...HILFE Fehlermeldung!
Hallo liebe MQL4 Experten. Ich benötige bei folgendem Fehler Eure Hilfe.
Ich - ein blutiger Programmieranfänger - kann mit folgendem Fehler leider relativ wenig anfangen... Und jetzt kommt Ihr ins Spiel. Könnt ihr mir verraten, was ich falsch mache?! // Moving Average double MAlang = iMA(NULL,0,MA_lang,0,MODE_SMA,PRICE_CLOSE,1); double MAlangVorperiode = iMA(NULL,0,MA_lang,0,MODE_SMA,PRICE_CLOSE,2); double MAkurz = iMA(NULL,0,MA_kurz,0,MODE_SMA,PRICE_CLOSE,1); double MAkurzVorperiode = iMA(NULL,0,MA_kurz,0,MODE_SMA,PRICE_CLOSE,2); // RSI double RSI = iRSI(Symbol(),0,RSI_Perioden,PRICE_CLOSE,0); double RSI1 = iRSI(Symbol(),0,RSI_Perioden,PRICE_CLOSE,1); // Handelssignale ermitteln if(NeuePeriodeBegonnen == true) { // Buy Signal if(MAkurz>MAlang && MAkurzVorperiode<=MAlangVorperiode && RSI>RSI_BuyLevel && RSI1<RSI_BuyLevel); { LongSignal = true; } else LongSignal = false; Hier erhalte ich beim Kompilieren die Fehlermeldung " 'else' - illegal 'else' without matching 'if' ... Letzten Endes soll der Quote zum Ausdruck bringen: "Wenn die oben genannten Bedingungen erfüllt worden sind, handelt es sich um ein LongSignal. Wenn die Bedingungen nicht vollständig erfüllt sind, gibt es kein entsprechendes LongSignal. |
|
|||
Code:
// Handelssignale ermitteln if(NeuePeriodeBegonnen == true) { // Buy Signal if(MAkurz > MAlang && MAkurzVorperiode <= MAlangVorperiode && RSI > RSI_BuyLevel && RSI1 < RSI_BuyLevel) { LongSignal = true; } else LongSignal = false; } Beim Codeschreiben hier immer den #-Button oben in der Icon-Leiste drücken und vor und nach mathematischen Operationszeichen eine Leerstelle einfügen, damit man den Code besser lesen kann. Desweiteren klar strukturierte Klammern setzen. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Sehr cool traderdoc, danke. Jetzt ist die Fehlermeldung futsch. Wenn die Strategie jetzt noch aufgeht wäre das der Knaller. Aber ein Schritt nach dem anderen
|
|
|||
Das if() kannst Du noch sehr schön kürzen:
Code:
LongSignal = ( MAkurz>MAlang && MAkurzVorperiode<=MAlangVorperiode && RSI>RSI_BuyLevel && RSI1<RSI_BuyLevel ); Analoges gilt für das äußere if, das Ganze wird zu: Code:
if( NeuePeriodeBegonnen ) LongSignal = ( MAkurz>MAlang && MAkurzVorperiode<=MAlangVorperiode && RSI>RSI_BuyLevel && RSI1<RSI_BuyLevel ); LG Mat |
|
|||
Hey Mat,
vielen Dank für deinen (sehr guten) Hinweis. Je kürzer und einfacher es am Ende ist, desto besser |
|
|||
Code:
if( NeuePeriodeBegonnen ) LongSignal = ( MAkurz>MAlang && MAkurzVorperiode<=MAlangVorperiode && RSI>RSI_BuyLevel && RSI1<RSI_BuyLevel ); Der boolean-Vergleich entfällt bei mir auch permanent. Für die if else-Schleife können man nun auch noch schreiben: Code:
if (NeuePeriodeBegonnen) { // Buy Signal LongSignal = false; if(MAkurz > MAlang && MAkurzVorperiode <= MAlangVorperiode && RSI > RSI_BuyLevel && RSI1 < RSI_BuyLevel) LongSignal = true; } traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
fehler, fehlermeldung, mql4, programmierung, programmierung metatrader, programmierung mql4 |
|
|