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
Ich hab's - danke - die Fehler sind fast weg, aber einer ist noch da:
'OrderCloseBy' - Funktion nicht definiert cPoza13-1.mqh 1885 8
//+------------------------------------------------------------------------------------------------------------------------------------+
//| Возвращает TRUE, если один ордер закрылся другим
//+------------------------------------------------------------------------------------------------------------------------------------+
bool cPoza::closeBy(int ticketB, int ticketA)
{
if(ticketB > 0 && ticketA > 0)
{
if(OrderCloseBy(ticketB, ticketA)) return true;
else Print("Magic=", mMagic, " ",__FUNCTION__, " Встречное закрытие не вышло ticketB=", ticketB, " ticketA=", ticketA, " вызвало ошибку-", _LastError);
}
else return false;
return false;
}
// CloseBy-Momente - dazu hatte ich noch keine Zeit. Vielleicht in der Zukunft, wenn nötig.
// TP und SL von geschlossenen Positionen bestimmen - derzeit (Build 1368) weiß MQL5 nicht, wie man das macht.
Ich habe die Bibliothek für mich selbst geschrieben, und ich benutze CloseBy nicht. Deshalb habe ich es nicht implementiert. Vielleicht werde ich es mit Geschwindigkeit hinzufügen.
Als vorübergehende Lösung fügen Sie diese Zeilen hinzu, bevor Sie Ihre Bibliothek einbinden
bool OrderCloseBy( const int Ticket, const int Opposite, const color Arrow_Color = clrNONE )
{
return(false);
}
#endif
Das ist natürlich möglich. Ich habe keine Notwendigkeit dafür gesehen.
Offensichtlich sollte es getan werden.Ich muss auch aktiv mit der Historie arbeiten, wenn ich Grids mit Mittelwertbildung aufbaue. Tatsache ist, dass der DC die maximale Anzahl von Aufträgen begrenzt, und wenn das Konto 15-20 Expert Advisors mit Grids hat, besteht die Lösung darin, einige der Grids im Moment der Annäherung an das Auftragslimit zu minimieren, bzw. wir müssen in der Historie graben, um das tatsächliche finanzielle Ergebnis der Position zu verstehen.
// CloseBy-Momente - dazu hatte ich noch keine Zeit. Vielleicht in der Zukunft, wenn nötig.
// TP und SL von geschlossenen Positionen bestimmen - derzeit (Build 1368) weiß MQL5 nicht, wie man das macht.
Das wäre sehr gut, danke. CloseBy ist eine praktische Sache, um einen Teil einer Position in einem berechneten Punkt zu fixieren.
Wir müssen auch aktiv mit der Geschichte arbeiten, wenn wir Grids mit Mittelwertbildung aufbauen. Tatsache ist, dass der DC die maximale Anzahl von Aufträgen begrenzt, und wenn das Konto 15-20 Expert Advisors mit Grids hat, wird die Lösung als der Zusammenbruch eines Teils der Grids zum Zeitpunkt der Annäherung an das Limit für Aufträge gesehen, bzw. wir müssen in der Geschichte graben, um das tatsächliche finanzielle Ergebnis der Position zu verstehen.
// CloseBy-Momente - dazu hatte ich noch keine Zeit. Vielleicht in der Zukunft, wenn nötig.
// TP und SL von geschlossenen Positionen bestimmen - derzeit (Build 1368) weiß MQL5 nicht, wie man das macht.
Ich habe die Bibliothek für mich selbst geschrieben, und ich verwende CloseBy nicht. Deshalb habe ich es nicht implementiert. Vielleicht füge ich es hinzu, sobald ich mich auf den neuesten Stand gebracht habe.
Als vorübergehende Lösung fügen Sie diese Zeilen hinzu, bevor Sie Ihre Bibliothek aktivieren
bool OrderCloseBy( const int Ticket, const int Opposite, const color Arrow_Color = clrNONE )
{
return(false);
}
#endif
Danke - die Kompilierung war erfolgreich in dem Teil, der mit Bestellungen arbeitet! Jetzt werde ich den Rest der Fehler beheben, die durch Sprachinkompatibilität verursacht werden...
Ich werde CloseBy und History Acceleration im nächsten Build hinzufügen. Ich verstehe nur nicht, ob dies in der Nachfrage (Bibliothek verwendet wird) oder nur eine Empfehlung nur für den Fall ist.
Ich benutze es, es gibt sehr interessante Ergebnisse, aber ich habe es (die Funktion) noch nicht auf einem echten Konto verwendet - bald.
Es wird funktionieren! Ich mache alles am Aktienmarkt über MT4Orders. Ich beschränke mich nicht durch die Anzahl der offenen Positionen.
kann keinen Stop-Loss an der Börse setzen, sondern eröffnet Trades
Und meiner Meinung nach haben Sie es nicht in der Lib für Änderungen.
Request.type_filling = ORDER_FILLING_RETURN;
Ich verstehe, dass Sie es hier hinzufügen müssen:
{
MqlTradeRequest Request = {0};
// Der Fall, dass ein Auftrag und eine Position mit demselben Ticket vorhanden sind, wird berücksichtigt
bool Res = ((Ticket != MT4ORDERS::Order.Ticket) || (MT4ORDERS::Order.Ticket <= OP_SELL)) ?
(MT4ORDERS::ModifyPosition(Ticket, Request) ? true : MT4ORDERS::ModifyOrder(Ticket, Price, Expiration, Request)) :
(MT4ORDERS::ModifyOrder(Ticket, Price, Expiration, Request) ? true : MT4ORDERS::ModifyPosition(Ticket, Request));
if (Res)
{
Request.tp = TP;
Request.sl = SL;
if ((ENUM_SYMBOL_TRADE_EXECUTION)::SymbolInfoInteger(Request.symbol, SYMBOL_TRADE_EXEMODE) == SYMBOL_TRADE_EXECUTION_EXCHANGE)
Request.type_filling = ORDER_FILLING_RETURN;
Res = MT4ORDERS::NewOrderSend(Request);
}
return(Res);
}
An der Börse kann er keinen Stop-Loss setzen, aber er eröffnet Geschäfte.
In der Tat ist dies fast ein Fehler der Entwickler. Fügen Sie diese Zeile hinzu
{
const bool Res = ::PositionSelectByTicket(Ticket);
if (Res)
{
Request.action = TRADE_ACTION_SLTP;
Request.position = Ticket;
Request.symbol = ::PositionGetString(POSITION_SYMBOL); // Die Angabe eines Tickets ist nicht ausreichend!
}
return(Res);
}
Und meiner Meinung nach, in lib Sie nicht angeben, es für die Änderung.
Eigentlich ist es fast ein Entwicklerfehler. Fügen Sie diese Zeile hinzu
{
const bool Res = ::PositionSelectByTicket(Ticket);
if (Res)
{
Request.action = TRADE_ACTION_SLTP;
Request.position = Ticket;
Request.symbol = ::PositionGetString(POSITION_SYMBOL); // Die Angabe eines Tickets ist nicht ausreichend!
}
return(Res);
}