|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Hi.
Danke für die schnelle Antwort. Wo müsste ich Deine Zeilen in meinem EA einfügen? Und muss ich an meinen Zeilen sonst noch irgendwas ändern? Vielen Dank. Gruß Peter |
|
|||
@Varo Trading
Hier ein EA aus meinem FrameWork. Das Teil erlaubt jeweils einen Trade für Long/Short. Vielleicht hilft es Dir weiter, ich habe Deine Indi-Werte eingesetzt. Viel Spaß beim Gucken:-) //################################################## #property copyright "RetepM" #property link "http://www.expert-advisor.com" #include <stdlib.mqh> #include <WinUser32.mqh> extern int MagicNo = 1110; extern double LotSize = 0.01; extern double SLSize = 20; extern double TPSize = 20; double PipValue=1; bool Terminated = false; string LF = "\n"; int NDigits = 4; double K0; double D0; double K1; double D1; //---------------------------------------------------- int init() { NDigits = Digits; if (false) ObjectsDeleteAll(); // clear the chart Comment(""); // clear the chart return (0); } //---------------------------------------------------- int start() { if (Bars < 10) { Comment("Not enough bars"); return (0); } if (Terminated == true) { Comment("EA Terminated."); return (0); } PipValue = 1; if (NDigits == 3 || NDigits == 5) PipValue = 10; GetValues(); ShowComment(); return (0); } //---------------------------------------------------- void GetValues() { K0=iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,0,MO DE_MAIN,0); D0=iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,0,MO DE_SIGNAL,0); K1=iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,0,MO DE_MAIN,1); D1=iStochastic(_Symbol,_Period,5,3,3,MODE_SMA,0,MO DE_SIGNAL,1); CheckBuyOrder(); CheckSellOrder(); } //---------------------------------------------------- void CheckBuyOrder() { if ((K0<44)&&(D0<44) && (D1<K0)&&(D1>K1)) { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUY && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists == false) { double SL = Ask - SLSize*PipValue*Point; if (SLSize == 0) SL = 0; double TP = Ask + TPSize*PipValue*Point; if (TPSize == 0) TP = 0; int ticket = -1; if (true) ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, 4, 0, 0, "Buy", MagicNo, 0, Blue); else ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, 4, SL, TP, "Buy", MagicNo, 0, Blue); if (ticket > -1) { if (true) { bool sel = OrderSelect(ticket, SELECT_BY_TICKET); bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Blue); if (ret == false) Print("OrderModify() error - ", ErrorDescription(GetLastError())); } } else { Print("OrderSend() error - ", ErrorDescription(GetLastError())); } } } } //---------------------------------------------------- void CheckSellOrder() { if ((K0>56)&&(D0>56) && (D1>K0)&&(D1<K1)) { bool exists = false; for (int i=OrdersTotal()-1; i >= 0; i--) if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_SELL && OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNo) { exists = true; } } else { Print("OrderSelect() error - ", ErrorDescription(GetLastError())); } if (exists == false) { double SL = Bid + SLSize*PipValue*Point; if (SLSize == 0) SL = 0; double TP = Bid - TPSize*PipValue*Point; if (TPSize == 0) TP = 0; int ticket = -1; if (true) ticket = OrderSend(Symbol(), OP_SELL, LotSize, Bid, 4, 0, 0, "Sell", MagicNo, 0, Red); else ticket = OrderSend(Symbol(), OP_SELL, LotSize, Bid, 4, SL, TP, "Sell", MagicNo, 0, Red); if (ticket > -1) { if (true) { bool sel = OrderSelect(ticket, SELECT_BY_TICKET); bool ret = OrderModify(OrderTicket(), OrderOpenPrice(), SL, TP, 0, Red); if (ret == false) Print("OrderModify() error - ", ErrorDescription(GetLastError())); } } else { Print("OrderSend() error - ", ErrorDescription(GetLastError())); } } } } //---------------------------------------------------- void ShowComment() { string temp = "Show Balance/Profit\n"; temp = temp + "------------------------------------------------\n" + "Balance: " + DoubleToStr(AccountBalance(), 5) + "\n" + "Profit: " + DoubleToStr(AccountProfit(), 5) + "\n" + "------------------------------------------------\n"; Comment(temp); } //---------------------------------------------------- int deinit() { if (false) ObjectsDeleteAll(); return (0); } //################################################## |
|
|||
Hi.
Danke für die schnelle Antwort.* Wo müsste ich Deine Zeilen in meinem EA einfügen?* Und muss ich an meinen Zeilen sonst noch irgendwas ändern?* Vielen Dank.* Gruß Peter |
|
|||
Öha, jetzt sind wir leider wieder beim Thema "EA zusammen basteln" ohne zu verstehen. :-)
Ich bezweifle das dies eine echte Hilfe ist. Nichts für ungut. :-) Gruß TraumExperte |
|
|||
Zitat:
Nichts für ungut. :-) |
|
|||
Ich verdiene mein Geld durchs Traden ;-) Und das schon sehr lange.
Überdies wäre es grundsätzlich nicht verwerflich Auftragsarbeiten zu machen. Du kannst jedem hier seinen EA coden unentgeltlich oder entgeltlich es ist mir wirklich völlig wurst. Und Du kannst gerne der Meinung sein, dass ein blutiger Anfänger davon lernt, wenn Du ihm einen EA codest. Bräuchtest Du aber garnicht weil es da eh genug zu downloaden gibt. Für mich ist das kein Lernkonzept. Und damit zieh ich mich auch aus diesem Thread zurück. Ich habe nämlich keine Lust mich mit Dir zu schlagen. Übrings toll das Du das in fünf Minuten gecodest hast. Gruß TraumExpert |
|
|||
Ja, ich verstehe es auch nicht, was das Basteln soll.
Warum denken immer alle, mal so nebenbei einen EA schreiben zu können, ohne ausreichende! Grundkenntnisse. Mit Verlaub, das Framework nutzt ihm überhaupt nichts. Keine Grundkenntnisse vorhanden - nothing. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Auch ich lebe vom Trading.
Wenn man die Märkte, seit fast 20 Jahren verfolgt, dann kann man schon den Eindruck haben, die eigentlichen Gewinner im Trading-Umfeld sind die Dienstleister. Das ist natürlich nicht verwerflich. Ein guter Bastler bzw. Oberlehrer war ich in meinem Leben auch noch nicht. Und ob der gepostete Code zum Nachverfolgen einer OrderSend() Funktion geeignet ist oder nicht, will ich nicht entscheiden. Ja, das mit den 5 Minuten… Ich weiß gar nicht, ob es solange gedauert hat, ein FrameWork benutzend, muss man sicher Abstriche an der Code-Qualität machen, aber wie geschrieben, ich lebe vom Traden nicht vom Coden! Es tut mir sehr leid, dass ich Dich mit dem Post genervt habe, nochmals sorry! Aber vielleicht helft ihr im ja jetzt beim (die Empfehlung fehlte noch) C-Lernen oder beim MQ4-Framework. Ich bin immer wieder bass erstaunt, dass mache so genau wissen, was nicht geht, konkrete Hilfe vermissen lassen, warum wohl? Also auf geht‘s! Gruß |
Lesezeichen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|