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: 3361
Beiträge: 33860
Benutzer: 5.343
Aktive Benutzer: 599
Links: 79
Wir begrüßen unseren neuesten Benutzer: sensemind
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 12 Stunden
- sensemind
vor einem Tag
- maxi
vor 2 Tagen
- athaclena
vor 2 Tagen
- Naale
vor 2 Tagen
- csabi911

Onlineuser
'Wer ist online' anzeigen Benutzer: 4
Gäste: 43
Gesamt: 47
Team: 0
Team:  
Benutzer:  jonnyfx, Kronenchakra, MA-EA, traderdoc
Freunde anzeigen

Empfehlungen

Werbung

Like Tree5Likes
Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #201 (permalink)  
Alt 27.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 409
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Soviel ich weiß, muss man ab 0:00 Uhr over Night Gebühren oder sowas zahlen. Das würde ich gerne vermeiden, in dem er zu bestimmten Uhrzeiten alle offenen Positionen, sofern vorhanden, automatisch schließt.

Keine Ahnung ob das so richtig ist:

Code:
extern string Close_all_Orders_after = "23:50:00";
extern string Close_all_Orders_before = "23:55:00";
Code:
datetime A = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Close_all_Orders_after);
datetime B = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Close_all_Orders_before);
Ist das mit dem Order schließen so besser? Bzw. überhaupt richtig?
Code:
//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) || (TC>A && TC<B)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);}

if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if ((LC>MA1 && MA1>MA2) || (TC>A && TC<B)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}}
Und ist "||" als Zeichen für "oder/or" richtig?

Edit: das Zeit gesteuerte schließen sollte man wohl besser optional einbaun mit "bool" true/false.
Angehängte Grafiken
Dateityp: jpg or_Zeichen.jpg (205,1 KB, 3x aufgerufen)
Mit Zitat antworten
  #202 (permalink)  
Alt 27.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 409
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hier mein Versuch, alle Orders zu bestimmten Zeiten zu schließen. Keine Ahnung ob das funktioniert.

Code:
//Globale Variablen
//Open Time
extern string Open_Orders_From = "08:00:30";
extern string Open_Orders_Till = "17:01:00";
extern string Always = "Open always if both 00:00:00";
//Close Time
extern string TF = "true=Yes/false=No";
extern bool Close_all_Orders_after_Time_O_Clock = true;
extern string Close_all_Orders_after = "23:50:00";
extern bool Close_all_Orders_before_Time_O_Clock  = true;
extern string Close_all_Orders_before = "23:55:00";
Code:
datetime CA = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Close_all_Orders_after);
datetime CB = StrToTime(TimeToStr(TimeCurrent(), TIME_DATE) + " " + Close_all_Orders_before);
bool CAA = (Close_all_Orders_after_Time_O_Clock);
bool CAB = (Close_all_Orders_before_Time_O_Clock);
Code:
if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if ((LC<MA1 && MA1<MA2) || (CAA=true && TC>CA) || (CAB=true && TC<CB)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);}

if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if ((LC<MA1 && MA1<MA2) || (CAA=true && TC>CA) || (CAB=true && TC<CB)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}}
Mit Zitat antworten
  #203 (permalink)  
Alt 27.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 409
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Ich glaube, beim Schließen war ein logischer Fehler drin. So müsste es richtig sein:

Code:
if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if ((LC<MA1 && MA1<MA2) || (CAA=true && TC>CA) || (CAA==true && TC>CA && CAB==true && TC<CB)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);}

if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if ((LC>MA1 && MA1>MA2) || (CAA=true && TC>CA) || (CAA==true && TC>CA && CAB==true && TC<CB)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}}

Geändert von MA-EA (27.03.16 um 22:31 Uhr)
Mit Zitat antworten
  #204 (permalink)  
Alt 27.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 409
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

So müsste es eigentlich reichen
Code:
if (OrderType()==OP_BUY && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if ((LC<MA1 && MA1<MA2) || (CAA=true && TC>CA)) OrderClose(OrderTicket(), OrderLots(), Bid, Slippage, DarkBlue);}

if (OrderType()==OP_SELL && OrderMagicNumber()==MagicNumber && OrderSymbol()==Symbol()){
if ((LC>MA1 && MA1>MA2) || (CAA=true && TC>CA)) OrderClose(OrderTicket(), OrderLots(), Ask, Slippage, FireBrick);}}}}
Mit Zitat antworten
  #205 (permalink)  
Alt 29.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 409
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Moin.

Ich versuche gerade, sowas wie eine Vola-Berechnung zu
programmieren. Allerdings erfolglos.

Eigentlich ist es einfach:

1. PRICE_HIGH - PRICE_CLOSE
2. PRICE_CLOSE - PRICE_LOW

Alles Kerze 1.

Wenn er dann Buy oder Sell machen will, soll er abfragen, welches Ergebnis größer ist. Und nur dann soll er in die entsprechende Richtung eine Order öffnen.
Mit Zitat antworten
  #206 (permalink)  
Alt 29.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Nimm doch gleich die ATR. Guck dir mal die iATR() Funktion an.
iATR(eine Periode)/iATR(zwei Perioden) >1

Da sparst Du Dir das manuelle Rechnen.
Mit Zitat antworten
  #207 (permalink)  
Alt 29.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 409
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Den ATR muss er auch erst mal berechnen.

Ist das alles richtig geschrieben? Kann er damit ohne Probleme arbeiten?
Code:
//Kurs
double LC = iClose(Symbol(), TimeFrame, 1);
double H = iHigh(Symbol(), TimeFrame, 1);
double L = iLow(Symbol(), TimeFrame, 1);

//HCL Berechnung
double HC = H-LC;
double CL = LC-L;

//Open
double O0 = iOpen(Symbol(), TimeFrame, 0);
double O1 = iOpen(Symbol(), TimeFrame, 1);
Mit Zitat antworten
  #208 (permalink)  
Alt 29.03.16
Mitglied
 
Registriert seit: Oct 2015
Ort: Karlshagen
Beiträge: 193
ralfbenker befindet sich auf einem aufstrebenden Ast
Standard

Die Berechnungen sind richtig. Aber ich versteh nicht so ganz wie du da ne Vola rauskriegen willst.
Nehmen wir an du hast ne positive Kerze H/L/O/C 10/5/6/9
Das Ergebnis wäre HC =1 CL=4

Wäre dieselbe Kerze negativ also 10/5/9/6 dann hättest du
HC = 4 und LC = 1

Ändert sich die Größe des Kerzenkörpers änderen sich HC und LC genau entgegengesetzt. Und wie berechnest du daraus ne Vola?
Mit Zitat antworten
  #209 (permalink)  
Alt 29.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 409
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Gar nicht. War da nicht mehr ganz wach. Wollte bloß berechnen lassen, obs stärker nach unten oder oben geht. Ne Vola-Berechnung hab ich noch
extra programmiert. Hoffentlich funktionier das alles auch.
Mit Zitat antworten
  #210 (permalink)  
Alt 29.03.16
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 409
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

Hallo.

Das mit der Vola scheint nix zu bringen, weil die auch bei nem
Trend <> als bei der Kerze davor sein kann.

Zu prüfen, ob Abstand zwischen High und Close <>
als Abstand zwischen Close und Low ist, scheint auch nicht zu helfen.

Deswegen hab ich die Beiden Funktionen rausgenommen. Und einen
Vergleich eingefügt, ob Open Kerze 0 <> Open Kerze 1 ist. Und
ob Close Kerze 1 <> Close Kerze 2 ist. Ich frag mich, ob man auch
Kerze 3 und vielleicht Kerze 4 vergleichen sollte. Da er sowieso aufs
Schneiden der GDs (2, 4, 8) warten muss, hätte man vielleicht noch etwas mehr Sicherheit, dass es kein Seitwärtstrend ist.
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 19:35 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.
-----------------------------------------------------------------------------------------------------------------------------