[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 567
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
Eine weitere Frage eines Anfängers.
Ich verwende mehrere benutzerdefinierte Funktionen in meinem Expert Advisor. Wie kann ich diese Funktionen in einer Bibliothek zusammenfassen und im Hauptteil des Expert Advisors einfach von dort aus aufrufen?
Ich bin mit der Sprachsyntax in dieser Hinsicht nicht vertraut.
Bitte lesen Sie die Dokumentation oder den Abschnitt über Anleitungen. Ich habe es dort nicht gefunden.
https://book.mql4.com/ru/build/structure
https://www.mql5.com/ru/articles/1462
+ Und um das Ganze abzurunden... https://book.mql4.com/ru/appendix/examples
Wie schreibe ich eine Funktion, die prüft , ob eine Position am Null-Bar eröffnet ist oder wurde (vorzugsweise eine Auswahl an Zeitrahmen. OpenPosLastBar(string sym="", int tf=0, int op=-1, int mn=-1), oder diese Funktion macht das. So wie ich es verstanden habe, werden nur Positionen im Moment geöffnet, aber wenn sie offen waren und bereits geschlossen wurden, wird -1 zurückgegeben.
//+----------------------------------------------------------------------------+
//| Gibt die Taktnummer der zuletzt geöffneten Position oder -1 zurück. |
//| Parameter: |
//| sym - Instrumentenname ("" - aktuelles Symbol) |
//| tf - Zeitrahmen ( 0 - aktueller Zeitrahmen) |
//| op - Operation (-1 - beliebige Position) |
//| mn - MagicNumber (-1 - beliebige Magie) |
//+----------------------------------------------------------------------------+
int NumberOfBarLastPos(string sym="", int tf=0, int op=-1, int mn=-1)
{
datetime oot;
int i, k=OrdersTotal();
if(sym=="")
sym=Symbol();
for(i=0; ik; i++)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
{
if(OrderSymbol()==sym)
{
if(OrderType()==OP_BUY || OrderType()==OP_SELL)
{
if(op0 || OrderType()==op)
{
if(mn0 || OrderMagicNumber()==mn)
{
if(ootOrderOpenTime()) oot=OrderOpenTime();
}
}
}
}
}
}
return(iBarShift(sym, tf, oot, True));
}
//+----------------------------------------------------------------------------+
Нужно два цикла. В первом проходим по истории ордеров, во втором - по текущим ордерам. В обоих случаях если время открытия ордера больше или равно Time[0], то ордер был открыт на текущей свече. Это справедливо для всех таймфреймов.
Vielen Dank für Ihren Klick. Könnten Sie dies im Code verlangen
Спадибо, что аткликнулся. А можно попросить это в коде
Hier ist ein Beispiel für eine Geschichtspassage
Versuchen Sie, einen eigenen Code zu entwickeln, zumal Sie den Algorithmus und ein fertiges Beispiel vor sich haben.
ObjectDelete(a_name_0);
ObjectCreate(a_name_0, OBJ_ARROW, a_window_8, a_datetime_12, a_price_20);
ObjectSet(a_name_0, OBJPROP_ARROWCODE, ai_28);
ObjectSet(a_name_0, OBJPROP_COLOR, a_color_32);
ObjectSet(a_name_0, OBJPROP_WIDTH, a_width_36);
}
void _setabuy(string as_0) {
g_str_concat_356 = StringConcatenate(as_0, gi_120);
seta(g_str_concat_356, 0, TimeCurrent(), Bid + 15.0 * Point, SYMBOL_ARROWUP, Blue, 2);
gi_120++;
}
void _setasell(string as_0) {
g_str_concat_356 = StringConcatenate(as_0, gi_120);
seta(g_str_concat_356, 0, TimeCurrent(), Bid - 15.0 * Point, SYMBOL_ARROWDOWN, Red, 2);
gi_120++;
}
Вот пример прохода по истории
Попробуйте самостоятельно придумать код, тем более, что алгоритм и готовый пример у Вас перед глазами.
Ich danke Ihnen. Ich werde es ausprobieren.
Вот пример прохода по истории
Попробуйте самостоятельно придумать код, тем более, что алгоритм и готовый пример у Вас перед глазами.
Oder hier ist eine Funktion, die prüft, ob eine Position auf dem aktuellen Balken eröffnet wurde (mit einer Prüfung auf OrdersTotal() und OrdersHistoryTotal() ). Gibt true zurück, wenn ein Auftrag vom Typ "geöffnet" wurde.
Bitte sagen Sie mir, wie ich die Bedingung umsetzen kann.
Wenn (es gibt schwebende Aufträge), dann tun Sie dies und das;