Einfachster EA läuft nicht...
Hallo,
bin neu im Forum, und neu bei MT4 und MQL4 :confused:. Habe in den Foren nichts ähnlich einfach wie gewünscht, gefunden. Bastel nun den ganzen morgen an einer automatischen Möglichkeit Positionen zu eröffnen und wieder zu schließen. Dazu dachte ich verschiedene Teile aus anderen EA´s "einfach nur mal eben" so zusammen zu setzen. Aber MQL4 scheint mir wesentlich schwieriger als CTL zu sein. Könnte mir bitte ein Kenner den Anfangsfrust nehmen und folgenden Code zum rennen bringen? Dann könnte ich mich mit weiteren Aufgaben langsam vortasten. Für Hilfe wäre ich sehr dankbar. Grüße, gehtdoch (nochnicht:mad:) // MACD Seeger.mq4 //extern double TakeProfit = 10; extern double Lots = 0.1; //extern double Stop = 0; //extern double TrailingStop = 20; extern double A = 13; extern double B = 26; extern double C = 9; extern double drehen = 0; // ---------------------------------------------------- int start() { double MacdCurrent, MacdPrevious, SignalCurrent; double SignalPrevious, MaCurrent, MaPrevious; int cnt, ticket, total; if(Bars<100) { Print("weniger als 100 Kerzen"); return(0); } MacdCurrent=iMACD(NULL,0,A,B,C,PRICE_CLOSE,MODE_MA IN,0); MacdPrevious=iMACD(NULL,0,A,B,C,PRICE_CLOSE,MODE_M AIN,1); SignalCurrent=iMACD(NULL,0,A,B,C,PRICE_CLOSE,MODE_ SIGNAL,0); SignalPrevious=iMACD(NULL,0,A,B,C,PRICE_CLOSE,MODE _SIGNAL,1); MaCurrent=iMA(NULL,0,0,0,MODE_EMA,PRICE_CLOSE,0); MaPrevious=iMA(NULL,0,0,0,MODE_EMA,PRICE_CLOSE,1); //------------------------------------------------------------------------------------- total=OrdersTotal(); if(total<1) { if(AccountFreeMargin()<(1000*Lots)) { Print("Oh Gott, wir haben keine freie Margin mehr = ", AccountFreeMargin()); return(0); } if (SignalPrevious<SignalCurrent) //(MacdCurrent>SignalCurrent) { ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,0,"m acd sample",16384,0,Green); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("Kauforder eröffnet : ",OrderOpenPrice()); } else Print("Fehler bei Kauforder-Eröffnung : ",GetLastError()); return(0); } if (SignalPrevious>SignalCurrent) //(MacdCurrent<SignalCurrent) { ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0," macd sample",16384,0,Red); if(ticket>0) { if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES )) Print("Verkaufsorder eröffnet : ",OrderOpenPrice()); } else Print("Fehler bei Verkaufsorder-Eröffnung : ",GetLastError()); return(0); } return(0); } return(0); //---------------------------Position löschen--(vielleicht mal drehen)------------------------ if(OrderType()<=OP_SELL && OrderSymbol()==Symbol() && SignalPrevious<SignalCurrent) { OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet) ; // close position return(0); // exit } return(0); if(OrderType()<=OP_BUY && OrderSymbol()==Symbol() && SignalPrevious>SignalCurrent) { OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet) ; // close position return(0); // exit } return(0); } return(0); // the end. Sehe gerade in der Vorschau, die Struktur ist weg. :o Schade... |
Hallo,
du verwendest zu oft return(0). Dadurch wird nicht der ganze Code durchlaufen. Beim schliessen der Order hast du ein if(OrderType()<=OP_SELL... Das sollte heissen if(OrderType()==OP_SELL... So, habe dir das mal abgeändert und Struktur reingebracht: ;) Code:
// MACD Seeger.mq4 Gruß naranjoe |
Das ging ja fix
Guten morgen,
vielen Dank für diese Sonntagsarbeit. Klar ist das noch nichts tolles, aber ich habe damit einen funktionierenden Grundstock. :D MfG gehtdoch |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:22 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