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)
-   -   Ein paar vordefinierte Codes (http://www.expert-advisor.com/forum/showthread.php?t=3693)

Birni 11.06.14 14:28

Ein paar vordefinierte Codes
 
Hi,

ich habe mich etwas in das coden reingelesen, aber irgendwie ist das schon alles sehr komplex.

Ich wäre dankbar wenn mir jemand helfen könnte.

Ich suche eigentlich einfach nur einen Code wenn der EA eine Position short schliesst dann wieder long direkt eröffnet. Kann mir da einer helfen? Also eigentlich nur der "if" Befehl und was die Bedingung ist (Zahlen kann ich ja dann selbst einsetzen).

Gruß, Martin

fxdaytrader 11.06.14 14:45

order schliessen: OrderClose - MQL4 Documentation

order öffnen: OrderSend - MQL4 Documentation

Wenn Du keine Ahnung von mql4 hast wirst Du Dich da wohl erst einarbeiten müssen. Es kann auch helfen sich vorhandene expert advisors/indicatoren/etc. anzuschauen und daraus zu lernen.

Mit einer Zeile code ist es jedenfalls nicht getan ...

Birni 11.06.14 16:11

danke erstmal für deine Hilfe,

die Befehle kenne ich, aber was muss da dann genau stehen wenn er die eine order schliesst soll er dann die nächste genau entgegen gesetzt öffnen.

also

if OrderClose (Buy) then OpenOrder (Sell)

aber dafür den Befehl find ich nicht, sonst komm ich schon eigentlich zurecht, nur das "then" weiss ich nicht wie ich es "befehlen" kann.

fxdaytrader 11.06.14 16:24

könnte wohl so funktionieren, Du mußt da natürlich noch Bedingungen einbauen, z.B. was geschehen soll damit die orders geschlossen werden, so wie es jetzt ist würde es laufend Positionen öffnen und schließen:

Code:

void TestFunction() {
 for (int cnt=OrdersTotal()-1; cnt>=0; cnt--) {
  if (!OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)) continue;
  {
    bool result=false;
 
    if (OrderType()==OP_BUY) {
    result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),99999,CLR_NONE);
    if (result) result = OrderSend(OrderSymbol(),OP_SELL,OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5000,0,0,"",12345,0,CLR_NONE);
    }
   
    if (OrderType()==OP_SELL) {
    result = OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),99999,CLR_NONE);
    if (result) result = OrderSend(OrderSymbol(),OP_BUY,OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),5000,0,0,"",12345,0,CLR_NONE);
    }
  }

  }
}


traderdoc 11.06.14 22:24

Zitat:

Zitat von Birni (Beitrag 26424)
danke erstmal für deine Hilfe,

die Befehle kenne ich, aber was muss da dann genau stehen wenn er die eine order schliesst soll er dann die nächste genau entgegen gesetzt öffnen.

also

if OrderClose (Buy) then OpenOrder (Sell)

aber dafür den Befehl find ich nicht, sonst komm ich schon eigentlich zurecht, nur das "then" weiss ich nicht wie ich es "befehlen" kann.

@fxdaytrader hat schon viel verraten!
Ein then wirst Du deshalb nicht finden, weil MQL auf der Sprache C aufbaut und nicht auf der Sprache BASIC!

traderdoc

Birni 11.06.14 22:38

Zitat:

Zitat von traderdoc (Beitrag 26438)
@fxdaytrader hat schon viel verraten!
Ein then wirst Du deshalb nicht finden, weil MQL auf der Sprache C aufbaut und nicht auf der Sprache BASIC!

traderdoc

ja, ich hatte in der Schule Qbasic, aber das ist ja nur, ich nenns mal, der "anfang". Aber somit weiss ich wie das ganze funktioniert und habe einige Tutorials etc. gelesen. ich verstehe wie alles zusammen hängt, finde es aber unschön das wenn man nach einem bestimmten Befehl sucht bei den Hilfen etc. allein gelassen wird. Ich weiss ja was ich will und wie es aussehen sollte, wenn da nicht das richtige wort steht, wie als wenn man eine neue Fremdsprache lernt ;)

deshalb meine "Anfängerfragen"

traderdoc 11.06.14 22:46

Ja ist doch alles klar. Ich wollte nur, dass Du nicht die ganze Zeit nach etwas suchst, was nicht existiert.

Birni 11.06.14 23:15

das problem ich suche öfterts nach dem entsprechenden befehl und find ihn einfach nicht. Entweder kenn ich ihn anderse oder gar nicht, aber es ist ja alles möglich wsa ich will, nur wie ist halt die frage. ;)

ich habe aber kurz ne frage weil mir das öfters begegnet und wenn ich alles neue schreibe oder ändere oder andere codes einfüge plötzlich weg ist.

Woran liegt es wenn er mir ausgiebt:

'}' - unexpected end of program
'{' - unbalanced parentheses

ich weiss nicht was das soll? Einmal hatte ich sogar einen funktionierenden EA abgeschrieben um zu lernen und es kam, bei dem EA nicht. Wo könnte da der Fehler liegen? Das begreif ich nicht wirklich.

PS: Google und Suchfunktion helfen mir nicht wirklich nach solchen Fehlern, egal auf welcher Sprache etc. :/

feelfree 11.06.14 23:33

Servus Birni,

die Meldungen deuten lediglich darauf hin dass du eine geschweifte Klammer zuviel oder zuwenig hast.

Das heißt du solltest die entsprechenden/reklamierten Stellen genau prüfen damit dein EA auch sauber läuft.


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