jarikn: Leute, helft mir, eine Meldung für einen Indikator zu erstellen. Ich möchte eine Kombination aus verschiedenen Indikatoren testen, benötige aber eine Warnfunktion. Ich möchte, dass die Meldung nur einmal angezeigt wird, wenn ein Pfeil erscheint. Wenn Sie nicht schwer sind, bitte helfen Sie mir eine solche Funktion zu schreiben, ich kann es nicht tun, Alarme Pop-up eine ganze Minute oder die ganze Zeit, auch mt4 hängt.
Eine Variable hinzufügen
wenn kein Signal vorliegt, wird die Variable falsch
Eine weitere Frage: Warum belastet dieser Indikator die CPU so stark? Ich öffne 10 Währungspaare und mt4 wird wirklich ausgebremst. Als Forex-Broker sollte ich nicht versuchen, ihn als Indikator zu verwenden, sondern als Expert Advisor.
Hallo zusammen, ich habe einen Indikator, der den Winkel des Trends in Grad anzeigt (allerdings nicht normalisiert). Auf der Karte ist alles in Ordnung. Sie kann auf der Winkelkurve selbst (blau) oder auf ihrer mittleren Kurve (grün) liegen - Abb. 1. Wennder Indikator im Expert Advisor über double Custom = iCustom(Symbol(), window, "Angle", 0, 1) aufgerufen wird, erzeugt das Programm einige riesige Zahlen - Abbildung 2. Das Dialogfenster - Chart-Periode, "Angle" - Indikator-Name, 0 - Null-Puffer, wo die blaue Linie berechnet wird (ich kann 1 - grün MA Puffer, aber das Ergebnis wird ähnlich sein), 1 - Verschiebung. Was könnte das Problem sein?
Свойства объектов - Константы объектов - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
Ich habe einen EA geschrieben und alles scheint zu funktionieren. Aber die Sache ist die, dass Aufträge bei Überschreiten der Zettel geschlossen werden sollten. Um genauer zu sein, wird nur der erste Auftrag geschlossen, und es spielt keine Rolle, welchen Weg er genommen hat, dann erzeugt das Protokoll den Fehler OrderClose error 4051. Was ist das Problem?
//-----------------------------------------------------------if (CountSell() == 0 && mama1<mama2 && cci>verh && cci1>verh && cci<cci1)
{
tiket = OrderSend(Symbol(), OP_SELL,Lots,Bid,Slippage,0,0,"",Magic,0, Red);
if (tiket>0)
{
SL=NormalizeDouble(Bid+StopLoss*Point,Digits);
TP=NormalizeDouble(Bid-TakeProfit*Point,Digits);
if (OrderSelect(tiket, SELECT_BY_TICKET))
if (!OrderModify(tiket,OrderOpenPrice(),SL,TP,0))
Print("Ошибка модификации ордера на продажу");
} elsePrint("Ошибка открытия ордера на продажу");
}
if (CountBuy() == 0 && mama1>mama2 && cci<nuz && cci1<nuz && cci>cci1)
{
tiket = OrderSend(Symbol(), OP_BUY,Lots,Ask,Slippage,0,0,"",Magic,0,Blue);
if (tiket>0)
{
SL=NormalizeDouble(Ask-StopLoss*Point,Digits);
TP=NormalizeDouble(Ask+TakeProfit*Point,Digits);
if (OrderSelect(tiket, SELECT_BY_TICKET))
if (!OrderModify(tiket,OrderOpenPrice(),SL,TP,0))
Print("Ошибка модификации ордера на покупку");
} elsePrint("Ошибка открытия ордера на покупку");
}
if(mama1>mama2 && CountSell()>0)
{
for(int i = OrdersTotal() -1;i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic && OrderType()==OP_SELL)
OrderClose(OrderType(),OrderLots(),Ask,Slippage,Black);
}
}
}
if(mama1<mama2 && CountBuy()>0)
{
for(int i = OrdersTotal() -1;i>=0; i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
if(OrderMagicNumber()==Magic && OrderType()==OP_BUY)
OrderClose(OrderType(),OrderLots(),Bid,Slippage,Black);
}
}
}
Tango_X: Können Sie mir bitte sagen, wie ich ein Objekt programmatisch markieren kann? Ich habe in der Hilfe nichts dergleichen gefunden.
Wenn Sie die Standardfunktion zur Erstellung von Objekten verwenden, ist die Standardeinstellung selection = true. Zum Beispiel für die Trendlinie, die 4. Linie von unten:
bool TrendCreate(constlong chart_ID = 0, // ID графикаconststring name = "TrendLine", // имя линииconstint sub_window = 0, // номер подокнаdatetime time1 = 0, // время первой точкиdouble price1 = 0, // цена первой точкиdatetime time2 = 0, // время второй точкиdouble price2 = 0, // цена второй точкиconstcolor clr = clrRed, // цвет линииconstENUM_LINE_STYLE style = STYLE_SOLID, // стиль линииconstint width = 4, // толщина линииconstbool back = false, // на заднем планеconstbool selection = true, // выделить для перемещенийconstbool ray_right = false, // продолжение линии вправоconstbool hidden = true, // скрыт в списке объектовconstlong z_order = 0) // приоритет на нажатие мышью
Versuchen Sie dies, es sollte funktionieren.
Nein. Es piept ständig. Hier ist der gesamte Code und die Ablässe. Vielleicht mache ich etwas falsch
Leute, helft mir, eine Meldung für einen Indikator zu erstellen. Ich möchte eine Kombination aus verschiedenen Indikatoren testen, benötige aber eine Warnfunktion. Ich möchte, dass die Meldung nur einmal angezeigt wird, wenn ein Pfeil erscheint. Wenn Sie nicht schwer sind, bitte helfen Sie mir eine solche Funktion zu schreiben, ich kann es nicht tun, Alarme Pop-up eine ganze Minute oder die ganze Zeit, auch mt4 hängt.
Eine Variable hinzufügen
wenn kein Signal vorliegt, wird die Variable falsch
wenn (Signal und Variable== false) {
Alarm;
variable=true;
}
Eine Variable hinzufügen
die Variable wird falsch, wenn eine neue Kerze erscheint
wenn (Signal und Variable== false) {
Alarm;
variable=true;
}
wird nicht mehr als 1 pro Kerze seinOK. Danke.
Okay, danke.
Ich habe es dort geändert.
Hallo zusammen, ich habe einen Indikator, der den Winkel des Trends in Grad anzeigt (allerdings nicht normalisiert). Auf der Karte ist alles in Ordnung. Sie kann auf der Winkelkurve selbst (blau) oder auf ihrer mittleren Kurve (grün) liegen - Abb. 1. Wenn der Indikator im Expert Advisor über double Custom = iCustom(Symbol(), window, "Angle", 0, 1) aufgerufen wird, erzeugt das Programm einige riesige Zahlen - Abbildung 2. Das Dialogfenster - Chart-Periode, "Angle" - Indikator-Name, 0 - Null-Puffer, wo die blaue Linie berechnet wird (ich kann 1 - grün MA Puffer, aber das Ergebnis wird ähnlich sein), 1 - Verschiebung. Was könnte das Problem sein?
Könnten Sie mir bitte sagen, wie man ein Objekt auswählbar macht? Ich konnte in der Hilfe nichts dergleichen finden
OBJPROP_SELECTED
Auswahl der Objekte
mql5
mql4
Können Sie mir bitte sagen, wie ich ein Objekt programmatisch markieren kann? Ich habe in der Hilfe nichts dergleichen gefunden.
Wenn Sie die Standardfunktion zur Erstellung von Objekten verwenden, ist die Standardeinstellung selection = true. Zum Beispiel für die Trendlinie, die 4. Linie von unten: