|
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 |
|
|||
Keine Ahnung ob der das macht was du willst. Aber wolltest Du nicht die Ordereröffnung zeitabhängig steuern, so in etwa?
PHP-Code:
|
|
|||
Sagen wir so, kann er was mit meinem Code anfangen? Er soll öffnen
wenn LC Kerze1 und Open Price Kerze0 über dem High_GD (Buy) sind, bzw. Beide unterm Low-GD (Sell) sind. Und die jeweilige Order schließen, wenn LC über/unter dem High/Low- und Close-GD sind. Je nach Richtung. Im Demo schauts aber nicht schlecht aus, scheint zu funktionieren. Hoffentlich bald auch im Live-Konto. Mal schaun, wann ich das mit der Zeitbegrenzung kapiere. |
|
|||
Ist nen Spread von 35 gut oder sollte er besser runter gestellt werden? So auf 30?
|
|
|||
Hallo.
Wie schreibt man auf ner deutschen Tasta das Zeichen für "or/oder"? Ist es die Taste mit </> (||)? Siehe Bild. |
|
|||
AltGr - Taste gedrückt halten und dann 2x auf die Taste drücken auf der oben rechts der senkrechte Strich ist.
|
|
|||
Ist das Alles richtig geschrieben? Und ist es eigentlich auch sinnvoll?
Der Sinn soll sein, dass er erst nen Buy macht, wenn Open Kerze0 und Low über dem schnellen GD und die GDs jeweils über dem nächst Langsameren GD sind. Umgekehrt bei Sell. Code:
//Define Vars //Kurse if (TimeFrame==0) TimeFrame=NULL; double LC = iClose(Symbol(), TimeFrame, 1); double O = iOpen(Symbol(), TimeFrame, 0); double H = iHigh(Symbol(), TimeFrame, 1); double L = iLow(Symbol(), TimeFrame, 1); //GDs double MA1 = iMA(Symbol(), TimeFrame, Moving_Average_1, GD_Shift, GD_Type, PRICE_CLOSE, 1);//2 double MA2 = iMA(Symbol(), TimeFrame, Moving_Average_2, GD_Shift, GD_Type, PRICE_CLOSE, 1);//3 double MA3 = iMA(Symbol(), TimeFrame, Moving_Average_3, GD_Shift, GD_Type, PRICE_CLOSE, 1);//6 //Check position IsInvested = false; for (i=OrdersTotal()-1; i>=0; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if((OrderType()==OP_SELL || OrderType()==OP_BUY) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) IsInvested=true;}} //Open Trade if (!IsInvested){ if (Spread <= Max_Spread && O>MA1 && L>MA1 && MA1>MA2 && MA2>MA3) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue); if (Spread <= Max_Spread && O<MA1 && H<MA1 && MA1<MA2 && MA2<MA3) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);} //Close Trade if (IsInvested){ for (i=OrdersTotal()-1; i>=0; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if(LC<MA1 && MA1<MA2) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);} if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if(LC>MA1 && MA1>MA2) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}} return(0);} |
|
|||
Wo will er hier 3 Semicolon haben?
|
|
|||
Wäääh?
Wer die Zeitsch... hinbekommt, kriegt nen EA umsonst. Code:
//+-------------------------------+ //|Valerius_3MA_EA_Metatrader4.mq4| //+-------------------------------+ #property copyright "Valerius_3MA_EA_Metatrader4" int MagicNumber = 541371052; string Name = "Valerius_3MA_EA_Metatrader4"; //Globale Variablen //Zeitbegrenzung extern Time Open_Orders_From = 09:00:00; extern Time Open_Orders_Till = 17:00:00; extern int TimeFrame = 60; extern string TimeFrames = "Current:0;M1:1; M5:5; M15:15; M30:30; H1:60; H4:240; D1:1440"; //GDs extern int Moving_Average_1 = 2; extern int Moving_Average_2 = 3; extern int Moving_Average_3 = 6; extern int GD_Type = 0; extern string GD_Types = "SMA:0; EMA:1; SMMA;2; LWMA:3"; int GD_Shift = 0;//EA funktioniert nicht mit Shift //Sonstige GV extern double Lots = 0.01; int Slippage = 1000; extern int Max_Spread = 35; int Ticket, i; double Spread, PointSet; bool IsInvested, CloseTicket; //+------------------------------+ //|expert initialization function| //+------------------------------+ int init(){ return(0);} //+--------------------------------+ //|expert deinitialization function| //+--------------------------------+ int deinit(){ return(0);} //+---------------------+ //|expert start function| //+---------------------+ int start(){ if (Digits <= 3) PointSet = 0.01; else PointSet = 0.0001; if (Digits <= 1) PointSet = 1; Spread=Ask-Bid; Lots = MathMax(MathMin(Lots, MarketInfo(Symbol(),MODE_MAXLOT)),MarketInfo(Symbol(),MODE_MINLOT)); //Define Vars //Zeitbegrenzung if (TimeFrame==0) TimeFrame=NULL; datetime Time TC = datetime TimeCurrent; //Semicolon expected? datetime Time F = Open_Orders_From; //Semicolon expected? datetime Time T = Open_Orders_Till; //Semicolon expected? //Kurse double LC = iClose(Symbol(), TimeFrame, 1); double O = iOpen(Symbol(), TimeFrame, 0); double H = iHigh(Symbol(), TimeFrame, 1); double L = iLow(Symbol(), TimeFrame, 1); //GDs double MA1 = iMA(Symbol(), TimeFrame, Moving_Average_1, GD_Shift, GD_Type, PRICE_CLOSE, 1);//2 double MA2 = iMA(Symbol(), TimeFrame, Moving_Average_2, GD_Shift, GD_Type, PRICE_CLOSE, 1);//3 double MA3 = iMA(Symbol(), TimeFrame, Moving_Average_3, GD_Shift, GD_Type, PRICE_CLOSE, 1);//6 //Check position IsInvested = false; for (i=OrdersTotal()-1; i>=0; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if((OrderType()==OP_SELL || OrderType()==OP_BUY) && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()) IsInvested=true;}} //Open Trade if (!IsInvested){ if (TC>F && TC<T && Spread <= Max_Spread && O>MA1 && L>MA1 && MA1>MA2 && MA2>MA3) OrderSend(Symbol(), OP_BUY, Lots, Ask, Slippage, 0, 0, Name + " Buy(#" + MagicNumber + ")", MagicNumber, 0, Blue); if (TC>F && TC<T && Spread <= Max_Spread && O<MA1 && H<MA1 && MA1<MA2 && MA2<MA3) OrderSend(Symbol(), OP_SELL, Lots, Bid, Slippage, 0, 0, Name + " Sell(#" + MagicNumber + ")", MagicNumber, 0, Red);} //Close Trade if (IsInvested){ for (i=OrdersTotal()-1; i>=0; i--){ if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){ if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if(LC<MA1 && MA1<MA2) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);} if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){ if(LC>MA1 && MA1>MA2) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}} return(0);} |
|
|||
Was soll eigentlich das Time in
extern Time Open_Orders_From = 09:00:00; extern Time Open_Orders_Till = 17:00:00; bedeuten? datetime Time TC = datetime TimeCurrent; //Semicolon expected? datetime Time F = Open_Orders_From; //Semicolon expected? datetime Time T = Open_Orders_Till; //Semicolon expected? Hier muß TimeCurrent als TimeCurrent() geschrieben werden, also datetime Time TC = TimeCurrent(); Wenn aber über die o.g. Angabe, dann als string: extern string Open_Orders_From = "09:00:00"; extern string Open_Orders_Till = "17:00:00"; Das hätte dann folgende Schreibweise zur Folge: datetime Time TC = TimeCurrent(); datetime Time F = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Open_Orders_From); datetime Time T = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Open_Orders_Till); traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
"datetime Time" oben soll klar machen, dass es sich bei der Eingabe daneben um Uhrzeiten handelt. Die 3 Zeilen darunter... tja, ich weiß auch nicht so recht. Das soll irgendwie die Werte definieren, die er bei den Order-Bedingungen checken soll. Ich kapier noch weniger als vorher. |
Lesezeichen |
Stichworte |
expert advisor, gleitender durchschnitt, mql4, programmierung, programmierung metatrader, programmierung mql4, trading |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|