Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 149
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Guten Tag.
Können Sie mir sagen, wie ich den richtigen Balken nach Datum und Uhrzeit finden kann, ohne alle Balken einzeln durchgehen zu müssen?
Guten Tag.
Können Sie mir sagen, wie ich den richtigen Balken nach Datum und Uhrzeit finden kann, ohne alle Balken einzeln durchgehen zu müssen?
Lesen Sie mehr über iBarShift
int TotalPos=-1;
void start()
{
//der Rest des Codes
//--
if(OrdersTotal()!=TotalPos) { // nicht jeden Tick foltern
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
Geschichte();
}
}}} TotalPos=OrdersTotal(); // Menge merken
//--
}
void Geschichte() {
string Ticket=(string)OrderTicket();
color col=Red;
if(OrderType()==0)col=Blue;
datetime a=OrderOpenTime();
double b=OrderOpenPrice();
datetime c=OrderCloseTime();
double d=OrderClosePrice();
double prSep=OrderProfit()+OrderCommission()+OrderSwap();
double prAll=0;
int cn=0;
string hTicket;
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
datetime ct=OrderCloseTime();
// 60 Sekunden Unterschied zwischen dem Abschluss des ersten und des letzten Auftrags im Raster
if(c<=ct+60 && c>=ct-60) {
prAll+=OrderProfit()+OrderCommission()+OrderSwap();
hTicket=(string)OrderTicket();
cn++;
}
}}}
ObjectCreate(Ticket+"Open",OBJ_ARROW,0,a,b);
ObjectSet(Ticket+"Open",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Open",OBJPROP_ARROWCODE,1);
ObjectCreate(Ticket+"Line",OBJ_TREND,0,a,b,c,d);
ObjectSet(Ticket+"Line",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Line",OBJPROP_WIDTH,1);
ObjectSet(Ticket+"Line",OBJPROP_STYLE,STYLE_DOT);
ObjectSet(Ticket+"Line",OBJPROP_RAY,0);
ObjectCreate(Ticket+"Close",OBJ_ARROW,0,c,d);
ObjectSet(Ticket+"Close",OBJPROP_COLOR,Green);
ObjectSet(Ticket+"Close",OBJPROP_ARROWCODE,3);
Ticket=cn>1?hTicket:Ticket;
ObjectCreate(Ticket+"Profit",OBJ_TEXT,0,c,d);
ObjectSet(Ticket+"Profit",OBJPROP_ANCHOR,0);
ObjectSetText(Ticket+"Gewinn",DoubleToString(prAll,2),10, "Arial",White);
ObjectSet(Ticket+"Gewinn",OBJPROP_PRICE1,d);
ObjectSet(Ticket+"Gewinn",OBJPROP_TIME1,c+Period()*60*2);
}
was dem Code dieser Funktion hinzuzufügen ist, um an diesen Stellen des Gewerbes eine waagerechte Linie zu ziehen
Koordinate von den Gewerben zum Rand des Diagramms Offset
Bitte um Hilfe beim Einlesen einer .crv-Datei
hat den folgenden Eintrag:
2010.03.18 01:35:00;1.37409;1.37119
wie man Code schreibt, um jeden Wert separat in einer Variablen zu erhalten
Bitte um Hilfe beim Einlesen einer .crv-Datei
hat den folgenden Eintrag :
2010.03.18 01:35:00;1.37409;1.37119
wie man Code schreibt, um jeden Wert separat in einer Variablen zu erhalten
int TotalPos=-1;
void start()
{
//der Rest des Codes
//--
if(OrdersTotal()!=TotalPos) { // nicht jeden Tick foltern
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
Geschichte();
}
}}} TotalPos=OrdersTotal(); // Menge merken
//--
}
void Geschichte() {
string Ticket=(string)OrderTicket();
color col=Red;
if(OrderType()==0)col=Blue;
datetime a=OrderOpenTime();
double b=OrderOpenPrice();
datetime c=OrderCloseTime();
double d=OrderClosePrice();
double prSep=OrderProfit()+OrderCommission()+OrderSwap();
double prAll=0;
int cn=0;
string hTicket;
for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if(OrderSymbol()==Symbol() && OrderType()<=1) {
datetime ct=OrderCloseTime();
// 60 Sekunden Unterschied zwischen dem Abschluss des ersten und des letzten Auftrags im Raster
if(c<=ct+60 && c>=ct-60) {
prAll+=OrderProfit()+OrderCommission()+OrderSwap();
hTicket=(string)OrderTicket();
cn++;
}
}}}
ObjectCreate(Ticket+"Open",OBJ_ARROW,0,a,b);
ObjectSet(Ticket+"Open",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Open",OBJPROP_ARROWCODE,1);
ObjectCreate(Ticket+"Line",OBJ_TREND,0,a,b,c,d);
ObjectSet(Ticket+"Line",OBJPROP_COLOR,col);
ObjectSet(Ticket+"Line",OBJPROP_WIDTH,1);
ObjectSet(Ticket+"Line",OBJPROP_STYLE,STYLE_DOT);
ObjectSet(Ticket+"Line",OBJPROP_RAY,0);
ObjectCreate(Ticket+"Close",OBJ_ARROW,0,c,d);
ObjectSet(Ticket+"Close",OBJPROP_COLOR,Green);
ObjectSet(Ticket+"Close",OBJPROP_ARROWCODE,3);
Ticket=cn>1?hTicket:Ticket;
ObjectCreate(Ticket+"Profit",OBJ_TEXT,0,c,d);
ObjectSet(Ticket+"Profit",OBJPROP_ANCHOR,0);
ObjectSetText(Ticket+"Gewinn",DoubleToString(prAll,2),10, "Arial",White);
ObjectSet(Ticket+"Gewinn",OBJPROP_PRICE1,d);
ObjectSet(Ticket+"Gewinn",OBJPROP_TIME1,c+Period()*60*2);
}
was dem Code dieser Funktion hinzuzufügen ist, um an diesen Stellen des Gewerbes eine waagerechte Linie zu ziehen
Koordinate von den Gewerben zum Rand des Diagramms Offset
etwa so:
string level="Level"+IntegerToString(iTime(_Symbol,iBarShift(OrderCloseTime())); // ид.уровня - по времени бара (!! не по тикету)
if (ObjectFind(level)==-1) {
// гор.вектора нет - видимо первый ордер из закрытых на баре
// сделать горизонтальную линию
ObjectCreate(0,level,OBJ_TREND,0,OrderCloseTime(),OrderClosePrice(),OrderCloseTime()+PeriodSeconds(_Period)*3,OrderClosePrice);
// указывающую только вправо
ObjectSetInteger(level,OBJPROP_RAY,1);
ObjectSetInteger(level,OBJPROP_RAYLEFT,0);
// украсить её как-то :-)
ObjectSetInteger(level,OBJPROP_COLOR,....)
....
} else {
// гор.уровень есть - значит были ордера закрытые на этом баре
// по фантазии - обновить метки/корректировать уровень/etc
}
Guten Tag!
Was sind die Gründe dafür, dass das Terminal keinen Roboter sieht? Es wurde von einem lokalen Programmierer geschrieben. Die anderen Roboter sind teilweise sichtbar und teilweise nicht.
Guten Tag!
Was sind die Gründe dafür, dass das Terminal keinen Roboter sieht? Es wurde von einem lokalen Programmierer geschrieben. Die anderen Roboter sind teilweise sichtbar und teilweise nicht.
Guten Abend!
Bitte helfen Sie mir, diesen Code zu schreiben, denn ich habe das Gefühl, dass ich es nicht selbst tun kann:
Wenn ich einen EA auf EURUSD laufen lasse, sollte ich zwei ausstehende Aufträge platzieren, wenn ich keine offenen/ausstehenden Aufträge für dieses Paar habe,
Wenn einer von ihnen ausgelöst wird, wird ein anderer nicht angezeigt, d.h. die Gesamtsumme aller schwebenden Aufträge für das Paar sollte 2 nicht überschreiten und schwebende/offene Aufträge, die bereits für andere Paare angezeigt werden, sollten nicht berücksichtigt werden.
Ich habe mir schon den Kopf zerbrochen, erst platziert er gar nichts, dann platziert er jedes Häkchen.
Dafür bin ich sehr dankbar.
Ich werde dafür sehr dankbar sein.
Guten Tag!
Was sind die Gründe dafür, dass das Terminal keinen Roboter sieht? Es wurde von einem lokalen Programmierer geschrieben. Die anderen Roboter sind teilweise sichtbar und teilweise nicht.
Der Roboter sollte sich im Ordner "experts" befinden und in der Form *.ex4 (*.ex5 für 5) vorliegen.
Im Terminal - Menü "Datei/Datenordner öffnen" dann "MQL4/Experts".
Und der *.mq4 *.mq5-Quellcode lässt sich nicht starten - er muss erst kompiliert werden.
Und in der Zwischenzeit reißen Sie dem Programmierer den Kopf ab, der Ihnen nicht gesagt hat, wie Sie sein Produkt benutzen sollen.