Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   absoluter Anfänger (http://www.expert-advisor.com/forum/showthread.php?t=3181)

bobbynumbereight 27.08.13 14:56

absoluter Anfänger
 
Hallo zusammen,
Ich interessiere mich schon seit einiger Zeit für den Forexhandel und trade auch ein bisschen. Nun wollte ich mich mal ans Programmieren machen und mir einen EA erstellen. Dabei habe ich aber ein Problem. Ich trade mit der Software Meta Trader 4. Beim EA habe ich die init und die deinit Funktion leer gelassen und habe nur in der start Funktion einen Befehl zur Ordereingabe gegeben:

int ticket;
if (Ask == 0.82630)
{
ticket=OrderSend(Symbol(),OP_BUY,0.01,Ask,3,Ask-25*Point,Ask+25*Point,"macd sample",16384,0,Green);
}

Beim compilieren erscheint kein Fehler und danach habe ich die Funktion im Terminal in einen Chart nach meiner Wahl gezogen. Es passiert jedoch gar nichts obwohl der Preis beim Preis von 0.82630 steht. Kann mir jemand den Fehler aufzeigen?

LG bobbynumbereight

traderdoc 27.08.13 16:05

Da gibt es zwei Möglichkeiten:
1. Der Ask ist nicht völlig identisch mit der Preisvorgabe (beim 5-Digit-Broker kann das in der 5.Kommastelle (oder 3.! bei .../JPY WPen) differieren)
2. Der StopLevel ist größer als Deine Vorgabe (es sieht so aus, als tradest Du mit einem 5-Digit-Broker. Dann entsprechen Deine 25 nur 2,5 Pips.)

Wegen des StopLevel einfach mal im MetaEditor suchen.

traderdoc

dave_hofmann 28.08.13 14:01

Hallo,

kommt im Ausgabefenster keine Meldung, dann kann Antwort zwei von traderdoc nicht stimmen.
Antwort eins halte ich fuer die Loesung. Versuche mal Print("Ask identisch"); in die Bedingung zu schreiben und beobachte das Ausgabefenster. Wenn die Bedingung zutrifft wird der Text angezeigt.
Du kannst dir mit Print("ask:"+Ask); pruefen,wie der momentane Ask Kurs ist.

Guten Tag

Dave

traderdoc 28.08.13 14:29

Jo, 2. steht ja auch nach 1!
D.h. 1. wird der Kurs nicht genau den vorgegebenen Wert erreichen, macht er das trotzdem, dann wird wahrscheinlich keine Order geöffnet, weil das StopLevel unterschritten wurde.

Also so oder so wird kein Trade geöffnet.

traderdoc

bobbynumbereight 29.08.13 11:53

Danke
 
Danke vielmals für eure Antworten, Ich habe mittlerweile den Fehler gefunden. Anscheinend war der SL und der TP zu nah am Eröffnungskurs, deshalb konnte ich keine Order platzieren.
Durch diesen Code, konnte ich dann SL und TP anpassen:
StopLevel = MarketInfo(Symbol(), MODE_STOPLEVEL) + MarketInfo(Symbol(), MODE_SPREAD);
if (StopLoss < StopLevel) StopLoss = StopLevel;
if (TakeProfit < StopLevel) TakeProfit = StopLevel;

traderdoc 29.08.13 11:58

Aha, da stellen wir mal fest, Antwort zwei von @traderdoc stimmte also doch.

traderdoc


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:42 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