![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Frage für Coder
Hallo
ich habe Alert geschrieben, aber es funktioniert nur, wenn ich ein Fenster mit meinem Indikator öffne. Es funktioniert auch nur, wenn ich zwischen zwei Chart-Fenstern springe, mit anderen Worten, wenn ich zwischen den Chart-Zeitebenen springe. Es scheint, dass der Indikator nicht zählen kann, wenn whorks. Wie kann ich mein Problem lösen? Ich brauche Hilfe. Hängt es mit Indicatorcounted zusammen? Sollte ich etwas im Parameter von Alert tun. Wie kann ich das tun?
Sollte ich etwas verwenden wie:
double
? = ObjectGetValueByShift(string name, int shift));
if (???????????)
Alert("Muster auf " + Symbol() + " " + Zeitraum());
Pucio
Dumme Frage...
Irgendjemand? Ich versuche, das wohl einfachste Indy aller Zeiten zu erstellen und vermassle es...
Eingabe: Letzter Tic-Wert von (1) Paar X und (2) Paar Y.
(beide CDF "Paare" ..d.h. 3 Buchstaben Symbole))
Ausgabe 1: Druck auf dem Bildschirm X-Y
Ausgabe 2: Plot im Indikatorfenster MA von X-Y..
Einmal alarmieren
Hallo,
Könnten Sie bitte ein Beispiel für einen Code schreiben, in dem Alert nur einmal erscheint?
Wenn ein Objekt im Diagramm auftaucht und Sie einmalig einen Alarm auslösen möchten.
Pucio
Hallo!
Könnten Sie bitte ein Beispiel für einen Code schreiben, in dem Alert nur einmal erscheint?
Wenn ein Objekt im Diagramm auftaucht und Sie möchten, dass der Alarm nur einmal erscheint.
PucioVielleicht könnten Sie dieses Stück Code verwenden: https://www.mql5.com/en/forum/general
Ich habe einen ähnlichen Indikator wie diesen. Weiß jemand, wie man seine Werte an EA übergeben kann? Ich habe versucht, einen Puffer zu verwenden, und zwar folgendermaßen
double Trend[];
...
SetIndexPuffer(0,Trend);
...
Trend[0]=UpRating;
return(0);
}
Ich weiß nicht, ob es funktioniert, aber ich weiß, dass die Beschriftung aller Indikatoren verschwunden ist. Irgendwelche Ideen dazu?
brauche Hilfe beim Umbau
Hallo Handelskollegen
ich brauche Hilfe bei diesem Code.
Die aktuelle Funktion schließt die ersten offenen Aufträge nach Zeit und alle folgenden Aufträge, d.h. es können mehr als 2 Aufträge in der gleichen Zeit geschlossen werden.
Frage: wie ändere ich es so, dass nur die ERSTEN 2 offenen Aufträge nach Zeit geschlossen werden.
Hier der Code.
Danke für die Hilfe
//+------------------------------------------------------------------+
//| Close Condition Type 2
//+------------------------------------------------------------------+
void CheckCloseConditionType2()
{
int Orders[];
int i, j;
ArrayResize(Orders, 0);
int cnt = OrdersTotal();
for (i=0; i < cnt; i++)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
if (OrderSymbol() != Symbol()) continue;
if (OrderMagicNumber() != Magic) continue;
int type = OrderType();
if (type == OP_BUY || type == OP_SELL)
{
int size = ArraySize(Orders);
ArrayResize(Orders, size+1);
Orders = OrderTicket();
}
}
//-----
size = ArraySize(Orders);
for (i=0; i < size; i++)
{
if (!OrderSelect(Orders, SELECT_BY_TICKET)) continue;
if (OrderCloseTime() > 0) continue;
datetime tm1 = OrderOpenTime();
for (j=i+1; j < size; j++)
{
if (!OrderSelect(Orders[j], SELECT_BY_TICKET)) continue;
if (OrderCloseTime() > 0) continue;
datetime tm2 = OrderOpenTime();
wenn (tm1 > tm2)
{
int ticket = Orders;
Orders = Orders[j];
Orders[j] = ticket;
}
}
}
//-----
for (i = size-1; i >= 1; i--)
{
double Profit = ArrayGetOrdersProfit(Orders);
if ((Profit >= TotalTakeProfit && TotalTakeProfit > 0) || (Profit >= Profit2Exit && Profit2Exit > 0))
{
Print("[Enter] Close by condition Type2");
string msg1 = "";
string msg2 = "";
double P;
double T.P = 0;
for (j=0; j < size; j++)
{
if (Orders[j] == -1) continue;
if (!OrderSelect(Orders[j], SELECT_BY_TICKET)) continue;
if (OrderCloseTime() > 0) continue;
if (StringLen(msg1) > 0) msg1 = msg1 + " + ";
msg1 = msg1 + "Auftrag " +Orders[j];
GetOrderProfit(Orders[j], P);
if (StringLen(msg2) > 0) msg2 = msg2 + " + ";
msg2 = msg2 +DoubleToStr(P, 2);
T.P += P;
}
Print("Close: " + msg1);
Print("Profit: " + msg2 + " = " + DoubleToStr(T.P, 2));
ArrayCloseOrders(Orders);
Print("[Exit] Close by condition Type2");
zurück;
}
Orders = -1;
}
}
Wie man die Anzahl der Pips zählt
Hallo,
Ich habe festgestellt, dass, nachdem der Markt für eine große bewegt (nach oben oder unten Trend) gegangen ist. Der verbleibende Markt ist irgendwie riskant, mit zu handeln. Ich versuche, ein EA zu programmieren, um zu vermeiden, die Eingabe von Geschäften sagen, nach einer großen Bewegung von etwa 90pips.
Ich muss wissen, wie ich die Anzahl der Pips vom ersten Balken um 8 Uhr (Londoner Marktöffnung) bis zum aktuellen Balken berechnen kann. Wenn der Markt bereits für mehr als 90pips bewegt worden ist, werde ich keinen Handel nehmen.
Kann jemand ein paar Zeilen programmieren, um mir einige Hinweise zu geben? Vielen Dank und herzlichen Dank.
Shek
Hallo,
Ich erkannte, dass, nachdem der Markt für eine große bewegt (nach oben oder unten Trend) gegangen ist. Der verbleibende Markt ist irgendwie riskant, mit zu handeln. Ich versuche, ein EA zu programmieren, um zu vermeiden, die Eingabe von Geschäften sagen, nach einer großen Bewegung von etwa 90pips.
Ich muss wissen, wie ich die Anzahl der Pips vom ersten Balken um 8 Uhr (Londoner Marktöffnung) bis zum aktuellen Balken berechnen kann. Wenn der Markt bereits für mehr als 90pips bewegt worden ist, werde ich keinen Handel nehmen.
Kann jemand ein paar Zeilen programmieren, um mir einige Hinweise zu geben? Vielen Dank und vielen Dank.
ShekWenn nötig, überprüfen Sie zuerst, dass Sie später als 8 Uhr sind:
Then, find the max and min of the current day. (if its ok for you, its easier than from 8 am): [PHP]double Max = iHigh(Symbol(), PERIOD_D1, 0);
double Min = iLow(Symbol(), PERIOD_D1, 0);
int Range = (Max - Min) / Point;
if(Range > 90) return;
...
Ich versuche, eine neue Funktion zu diesem Indikator High_Low (Zigzag) V2 hinzuzufügen, so dass für jedes Mal, wenn es ein neues Hoch-Tief bildet, die ZZ mich alarmiert. Ich weiß nicht, wo es schief gehen. Stattdessen erscheint der Indikator nicht auf meinem Bildschirm. Kann mir jemand helfen? Helfen Sie mir bitte. Ich bin neu in der Codierung, bitte verfeinern, was ich getan habe, so dass die indi wird genau wie das, was ich in der oben wollen. Hier ist der Code.
hoch_niedrig_v2_zigzag_mit_alarm.mq4
Hallo!
Wie kann man einen rechteckigen Hintergrund zeichnen? Ich meine durch conding. Ich weiß, dass es ObjectCreate() verwendet, aber ich weiß nicht, wie es zu schreiben, die Art und Weise, die ich annehmen, um.