Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4973
Beiträge: 43248
Benutzer: 7.220
Aktive Benutzer: 82
Links: 84
Wir begrüßen unseren neuesten Benutzer: JosephTK
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 2 Stunden
- JosephTK
vor 2 Tagen
- Hopfen&Mal...
vor 2 Tagen
- frankmicha...
vor einer Woche
- DFeck
vor einer Woche
- bb1107

Onlineuser
'Wer ist online' anzeigen Benutzer: 0
Gäste: 274
Gesamt: 274
Team: 0
Team:  
Benutzer:  
Freunde anzeigen

Empfehlungen

Like Tree5Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #181 (permalink)  
Alt 22.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Keine Ahnung ob der das macht was du willst. Aber wolltest Du nicht die Ordereröffnung zeitabhängig steuern, so in etwa?

PHP-Code:
//Open Trade
if (!IsInvested)
{
if (
TimeCurrent() >= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " Open_Orders_From) && TimeCurrent() <= StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " Open_Orders_Till)) 
{
if (
Spread <= Max_Spread && O>&& LC>HOrderSend(Symbol(), OP_BUYLotsAskSlippage00Name " Buy(#" MagicNumber ")"MagicNumber0Blue);
if (
Spread <= Max_Spread && O<&& LC<LOrderSend(Symbol(), OP_SELLLotsBidSlippage00Name " Sell(#" MagicNumber ")"MagicNumber0Red);
}

Die Variablen Open_Orders_From und Open_Orders_Till musst du natürlich vorher als Strings definieren.
  #182 (permalink)  
Alt 22.03.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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.
  #183 (permalink)  
Alt 22.03.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Ist nen Spread von 35 gut oder sollte er besser runter gestellt werden? So auf 30?
  #184 (permalink)  
Alt 22.03.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Wie schreibt man auf ner deutschen Tasta das Zeichen für "or/oder"? Ist es die Taste mit </> (||)?

Siehe Bild.
Angehängte Grafiken
Dateityp: jpg MQL4Oder.jpg (170,3 KB, 4x aufgerufen)
  #185 (permalink)  
Alt 24.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 199
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

AltGr - Taste gedrückt halten und dann 2x auf die Taste drücken auf der oben rechts der senkrechte Strich ist.
  #186 (permalink)  
Alt 24.03.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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);}
  #187 (permalink)  
Alt 25.03.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Wo will er hier 3 Semicolon haben?
Angehängte Grafiken
Dateityp: jpg 3SE.jpg (180,3 KB, 0x aufgerufen)
  #188 (permalink)  
Alt 25.03.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

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);}
  #189 (permalink)  
Alt 25.03.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.733
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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.
  #190 (permalink)  
Alt 25.03.16
Elite Mitglied
 
Registriert seit: Sep 2015
Beiträge: 1.178
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von traderdoc Beitrag anzeigen
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();
TimeCurrent(); steht da jetzt.

"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.
Thema geschlossen

Lesezeichen

Stichworte
expert advisor, gleitender durchschnitt, mql4, programmierung, programmierung metatrader, programmierung mql4, trading

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 00:30 Uhr.





Suchmaschine - Reisen - Wavesnode - Facebook Forum - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------