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.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3367
Beiträge: 33884
Benutzer: 5.355
Aktive Benutzer: 613
Links: 79
Wir begrüßen unseren neuesten Benutzer: romahanover
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 8 Stunden
- romahanove...
vor 20 Stunden
- thaiquocba...
vor 20 Stunden
- patte
vor einem Tag
- boomo
vor einem Tag
- swiftusa

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 35
Gesamt: 37
Team: 0
Team:  
Benutzer:  patte, Stier
Freunde anzeigen

Empfehlungen

Werbung

Like Tree5Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #181 (permalink)  
Alt 22.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
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.
Mit Zitat antworten
  #182 (permalink)  
Alt 22.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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.
Mit Zitat antworten
  #183 (permalink)  
Alt 22.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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?
Mit Zitat antworten
  #184 (permalink)  
Alt 22.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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)
Mit Zitat antworten
  #185 (permalink)  
Alt 24.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
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.
Mit Zitat antworten
  #186 (permalink)  
Alt 24.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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);}
Mit Zitat antworten
  #187 (permalink)  
Alt 25.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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)
Mit Zitat antworten
  #188 (permalink)  
Alt 25.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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);}
Mit Zitat antworten
  #189 (permalink)  
Alt 25.03.16
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.522
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.
Mit Zitat antworten
  #190 (permalink)  
Alt 25.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 412
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.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
auftrag, biete, ea, expert advisor, gleitender durchschnitt, kleinanzeigen, suche


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 17:00 Uhr.



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