Ich stimme zu, dass sich die Handelsklassen inzwischen genug stabilisiert haben. Warum also werden in den Beispielen Funktionen zum Abrufen von Instrumenteneigenschaften empfohlen, anstatt Methoden der CSymbolInfo-Klasse zu verwenden? Das erscheint inkonsequent.
Stellen Sie klar, was Sie meinen. Wenn Sie dazu aufrufen, überall Klassen zu schreiben, könnte das für einige Neulinge kompliziert und unverständlich sein.
Rosh: Klären Sie, was gemeint ist. Wenn Sie dazu aufrufen, überall Klassen zu schreiben, könnte das für einige Neulinge kompliziert und unverständlich sein.
Eigentlich bin nicht ich es, der in dem obigen Zitat dazu auffordert, Klassen derStandardbibliothek zu verwenden, ich stimme nur zu. Natürlich ist das Geschmackssache.
In einem etwas komplexeren EA gibt es viele Verweise auf Symboleigenschaften, und indem wir einmal eine Instanz der Klasse CSymbolInfo erstellen, vereinfachen wir die Verweise auf sie und die Wahrnehmung des Programms. Meine Meinung.
Ich entschuldige mich, ich wusste nicht, wo ich diese Frage stellen sollte und habe beschlossen, sie hier zu stellen, da ich denke, dass das Thema geeignet ist.
Wie kann ich alle Aufträge, die entweder nur zum Verkauf oder nur zum Kauf geöffnet sind, auf einmal schließen?
Ich entschuldige mich, ich wusste nicht, wo ich diese Frage stellen sollte und habe beschlossen, sie hier zu stellen, da ich denke, dass das Thema geeignet ist.
Wie kann ich alle offenen Kauf- und Verkaufsaufträge auf einmal schließen?
In MetaTrader 5 kann es für jedes Instrument nur eine offene Position geben. Vielleicht meinen Sie, dass Sie alle Positionen für alle Instrumente schließen können?
In der Spezifikation von Futures RTS-3.13 ist festgelegt, dass die Art der Aufträge - Gültig bis auf Widerruf. in der Warteschlange bis zur Stornierung.
Ich habe versucht, andere Typen ORDER_TIME_DAY, ORDER_TIME_SPECIFIED, ORDER_TIME_SPECIFIED_DAY zu verwenden - der Fehler verschwindet nicht.
Teil des Codes:
int digits = (int)SymbolInfoInteger(Ticket,SYMBOL_DIGITS);// Anzahl der Dezimalstellendouble point = SymbolInfoDouble(Ticket,SYMBOL_POINT); // para.double ask = SymbolInfoDouble(Ticket,SYMBOL_ASK); // Aktueller Einkaufspreisdouble price= 1000 * point; // nicht normalisierter Eröffnungspreis
price = NormalizeDouble(price, digits); // Normalisierung des Eröffnungskurses//Preis = NormalizeDouble(Anfrage + 1000, Ziffern); // ????Print("digits=", IntegerToString(digits), " point=", DoubleToString (point, 0), " ask=", DoubleToString (ask, 0),
" price=", DoubleToString (price, 0));
//--- alles ist bereit, senden Sie eine ausstehende Buy Stop Order an den Server if(!m_Trade.BuyStop(1, price, Ticket))
{
Print("Die Methode BuyStop() ist fehlgeschlagen. Return code="", m_Trade.ResultRetcode(),
". Beschreibung des Codes: ",m_Trade.ResultRetcodeDescription());
}
else
{
Print("Die Methode BuyStop() wurde erfolgreich ausgeführt. Return code="",m_Trade.ResultRetcode(),
" (",m_Trade.ResultRetcodeDescription(),")");
}
Im Strategy Tester wird der Eintrag protokolliert:
2012.12.1819:44:59 digits=0 point=1 ask=151830 price=10002012.12.1819:44:59 failed buy stop 1.00 RTS-3.13 at 1000 [Invalid expiration]
2012.12.1819:44:59 CTrade::OrderSend: buy stop 1.00 RTS-3.13 at 1000 [invalid expiration]
2012.12.1819:44:59 Метод BuyStop() потерпел неудачу. Код возврата=10022. Описание кода: invalid expiration
Was könnte das Problem sein? Bitte geben Sie mir einen Hinweis. Ich werde dankbar sein, wenn Sie antworten auf Mail nfo52^mail.ru, ICQ UIN: 4002787, skype: osipov52.
Wenn ich die Funktion BuyStop im Code für den Handel mit RTS-3.13 (RIH3) Futures verwende, tritt immer wieder ein Fehler auf:
10022 TRADE_RETCODE_INVALID_EXPIRATION - Ungültiges Verfallsdatum der Order
In der Spezifikation von Futures RTS-3.13 ist festgelegt, dass die Art der Aufträge - Gültig bis auf Widerruf. in der Warteschlange bis zur Stornierung.
Ich habe versucht, andere Typen ORDER_TIME_DAY, ORDER_TIME_SPECIFIED, ORDER_TIME_SPECIFIED_DAY zu verwenden - der Fehler verschwindet nicht.
Teil des Codes:
Im Strategy Tester wird der Eintrag protokolliert:
Was könnte das Problem sein? Bitte geben Sie mir einen Hinweis. Ich werde dankbar sein, wenn Sie antworten auf Mail nfo52^mail.ru, ICQ UIN: 4002787, skype: osipov52.
Ich danke Ihnen.
Win7 64 razr., MT5 , Demo-Konto DB Discovery.
Ähnliches Problem auf RTS-3.13 Otkritie-demo, versuchte alles (während Limit-Orders sind auf ORDER_TIME_SPECIFIED_DAY wie im Symbol-Profil geschrieben) !!!!. Während Buy-Stop-Order ist perfekt offen in den Markt manuell. Dies ist ein Terminal-Fehler, sollten Sie an die Entwickler schreiben
Ja, es könnte nicht einfacher sein! Sie haben sich da eine Menge einfallen lassen, und das noch unter Verwendung von Standardbibliotheken, und wenn ohne, sozusagen von Grund auf???? Der einfachste und schnellste Weg, einen Expert Advisor auf MQl4 zu programmieren!!!! Mein EA auf mql4 benötigt 70 Zeilen, ich habe ihn auf mql5 umgeschrieben, und es sind 198!!!!!! geworden. Der Titel mit dem Wort "einfach" ist also nicht angemessen.
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
zlodei: ...Mein mql4 EA braucht 70 Zeilen, ich habe ihn auf mql5 umgeschrieben, und es stellte sich heraus, dass es 198!!!!!! Der Titel mit dem Wort "einfach" ist also nicht angemessen.
Dies gilt, wenn die EA-Idee nicht kompliziert ist. Imho, je komplexer die Idee ist, desto mehr wird der Unterschied in der Anzahl der Codezeilen zwischen MQL4 und MQL5 zugunsten von letzterem ausfallen. Ich würde also nicht so kategorisch sein....
Sie sollten den Code dennoch vor der Veröffentlichung überprüfen.
Ich stimme zu, dass sich die Handelsklassen inzwischen genug stabilisiert haben. Warum also werden in den Beispielen Funktionen zum Abrufen von Instrumenteneigenschaften empfohlen, anstatt Methoden der CSymbolInfo-Klasse zu verwenden? Das erscheint inkonsequent.
Dies wurde schon vor langer Zeit, am Tag der Veröffentlichung, behoben.
Klären Sie, was gemeint ist. Wenn Sie dazu aufrufen, überall Klassen zu schreiben, könnte das für einige Neulinge kompliziert und unverständlich sein.
Eigentlich bin nicht ich es, der in dem obigen Zitat dazu auffordert, Klassen derStandardbibliothek zu verwenden, ich stimme nur zu. Natürlich ist das Geschmackssache.
In einem etwas komplexeren EA gibt es viele Verweise auf Symboleigenschaften, und indem wir einmal eine Instanz der Klasse CSymbolInfo erstellen, vereinfachen wir die Verweise auf sie und die Wahrnehmung des Programms. Meine Meinung.
Ich entschuldige mich, ich wusste nicht, wo ich diese Frage stellen sollte und habe beschlossen, sie hier zu stellen, da ich denke, dass das Thema geeignet ist.
Wie kann ich alle Aufträge, die entweder nur zum Verkauf oder nur zum Kauf geöffnet sind, auf einmal schließen?
Ich entschuldige mich, ich wusste nicht, wo ich diese Frage stellen sollte und habe beschlossen, sie hier zu stellen, da ich denke, dass das Thema geeignet ist.
Wie kann ich alle offenen Kauf- und Verkaufsaufträge auf einmal schließen?
Teil des Codes:
Im Strategy Tester wird der Eintrag protokolliert:
Was könnte das Problem sein? Bitte geben Sie mir einen Hinweis.
Ich werde dankbar sein, wenn Sie antworten auf Mail nfo52^mail.ru, ICQ UIN: 4002787, skype: osipov52.
Ich danke Ihnen.
Win7 64 mal, MT5, Demo-Account DB Otkrytie.
Teil des Codes:
Im Strategy Tester wird der Eintrag protokolliert:
Was könnte das Problem sein? Bitte geben Sie mir einen Hinweis.
Ich werde dankbar sein, wenn Sie antworten auf Mail nfo52^mail.ru, ICQ UIN: 4002787, skype: osipov52.
Ich danke Ihnen.
Win7 64 razr., MT5 , Demo-Konto DB Discovery.
...Mein mql4 EA braucht 70 Zeilen, ich habe ihn auf mql5 umgeschrieben, und es stellte sich heraus, dass es 198!!!!!! Der Titel mit dem Wort "einfach" ist also nicht angemessen.