Fehler, Irrtümer, Fragen - Seite 1797

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
Warum wirkt der doppelte Schrägstrich auf den Backslash? Und warum wird ein Makro mit einem doppelten Schrägstrich kommentiert, wenn es aktiviert wird?
Ein Kommentar ist nicht Teil eines Makros. Ein Makro muss kontinuierlich sein. Die Umkehrung \ setzt das Makro in der nächsten Zeile fort. // am Anfang der Zeile unterbricht das Makro, da eine solche Zeile nicht mit einem Backslash \ enden kann.
Metaquotes-Demo
SYMBOL_SESSION_PRICE_LIMIT_MIN == 1199.2. Aber selbst bei dem höheren Preis kann ich kein BuyLimit setzen.
Also fragte ich, warum das Makro eine Zeile mit einem doppelten Schrägstrich berücksichtigt? Das sollte es auch.
In diesem Fall wird der Kommentar durch eine leere Zeichenkette ersetzt(der Kommentartext wird ignoriert, während die Zeichenkette selbst erhalten bleibt), und die leere Zeichenkette unterbricht das Makro
if (true) \
{ \
Print(""); \
}
In diesem Fall wird der Kommentar durch eine Leerzeile ersetzt
if (true) \
{ \
Print(""); \
}
Die Bremsen scheinen nicht schwer zu beheben zu sein, wenn man ein kompetentes Skript schreibt. Bei einem Ping von 50 ms werden die folgenden Daten schnell angezeigt
2017.02.10 21:32:42.796 Trades '5122740': accepted exchange buy 1.00 Si-3.17 at market
2017.02.10 21:32:42.806 Trades '5122740': deal #117193624 buy 1.00 Si-3.17 at 58810 done (based on order #133580668)
2017.02.10 21:32:42.808 Trades '5122740': order #133580668 buy 1.00 / 1.00 Si-3.17 at 58810 done in 81.663 ms
2017.02.10 21:32:42.810 Trades '5122740': modify #133580668 buy 1.00 Si-3.17 sl: 0, tp: 0 -> sl: 58710, tp: 58910
2017.02.10 21:32:42.886 Trades '5122740': accepted modify #133580668 buy 1.00 Si-3.17 sl: 0, tp: 0 -> sl: 58710, tp: 58910
2017.02.10 21:32:42.888 Trades '5122740': modify #133580668 buy 1.00 Si-3.17 -> sl: 58710, tp: 58910 done in 78.188 ms
2017.02.10 21:32:42.888 Trades '5122740': exchange sell 1.00 Si-3.17 at market, close #133580668 buy 1.00 Si-3.17 58810
2017.02.10 21:32:43.079 Trades '5122740': accepted exchange sell 1.00 Si-3.17 at market, close #133580668 buy 1.00 Si-3.17 58810
2017.02.10 21:32:43.079 Trades '5122740': deal #117193626 sell 1.00 Si-3.17 at 58810 done (based on order #133580670)
2017.02.10 21:32:43.080 Trades '5122740': order #133580670 sell 1.00 / 1.00 Si-3.17 at 58810 done in 192.146 ms
2017.02.10 21:32:43.081 Trades '5122740': buy limit 1.00 Si-3.17 at 58713
2017.02.10 21:32:43.221 Trades '5122740': accepted buy limit 1.00 Si-3.17 at 58713
2017.02.10 21:32:43.222 Trades '5122740': order #133580671 buy limit 1.00 / 1.00 Si-3.17 at market done in 141.851 ms
2017.02.10 21:32:43.222 Trades '5122740': cancel order #133580671 buy limit 1.00 Si-3.17 at 58713
2017.02.10 21:32:43.652 Trades '5122740': accepted cancel order #133580671 buy limit 1.00 Si-3.17 at 58713
2017.02.10 21:32:43.653 Trades '5122740': cancel #133580671 buy limit 1.00 Si-3.17 at market done in 430.484 ms
2017.02.13 12:44:48.737 Trades '5122740': accepted buy limit 1.00 RTS-12.17 at 114430
2017.02.13 12:44:48.739 Trades '5122740': order #133670570 buy limit 1.00 / 1.00 RTS-12.17 at market done in 634.624 ms
Request.magic = 0
Request.order = 0
Request.symbol = RTS-12.17
Request.volume = 1.0
Request.price = 114430.0
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_BUY_LIMIT (2)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_DAY (1)
Request.expiration = 1970.01.01 00:00:00
Request.comment = My Order
Request.position = 0
Request.position_by = 0
Result.retcode = 10009
Result.deal = 0
Result.order = 133670570
Result.volume = 1.0
Result.price = 0.0
Result.bid = 0.0
Result.ask = 0.0
Result.comment = Request executed 634.708 + 0.002 ms
Result.request_id = 5827
Result.retcode_external = 0
MT5 wird leider immer langsamer.
Noch cooler - die Demo bestand aus 1,5 Sekunden Marschieren!
'5122740': deal #117297621 sell 1.00 DINRM at 149.07 done (based on order #133675793)
'5122740': order #133675793 sell 1.00 / 1.00 DINRM at 149.07 done in 1596.317 ms
Abfrage
Request.magic = 0
Request.order = 0
Request.symbol = DINRM
Request.volume = 1.0
Request.price = 149.04
Request.stoplimit = 0.0
Request.sl = 0.0
Request.tp = 0.0
Request.deviation = 100
Request.type = ORDER_TYPE_SELL (1)
Request.type_filling = ORDER_FILLING_RETURN (2)
Request.type_time = ORDER_TIME_GTC (0)
Request.expiration = 1970.01.01 00:00:00
Request.comment =
Request.position = 133675792
Request.position_by = 0
Result.retcode = 10009
Result.deal = 117297621
Result.order = 133675793
Result.volume = 1.0
Result.price = 149.07
Result.bid = 149.04
Result.ask = 149.06
Result.comment = Request executed 1596.364 + 0.209 ms
Result.request_id = 13486
Result.retcode_external = 0
Ich finde das unlogisch. Es sollte nicht einmal eine leere Zeichenkette vorhanden sein.
// bedeutet, dass der Kommentar dahinter steht, nicht die ganze Zeichenkette ist ein Kommentar. Wenn Sie // entfernen, erhalten Sie eine leere Zeichenfolge
Einverstanden! Im Falle von Makros ist dies jedoch unpraktisch.
Stellen Sie sich vor, Sie nehmen ein Stück Code und wollen es zu einem Makro machen. Ersetzen Sie zum Beispiel eine Funktion durch ein Makro.
Es sieht so aus, als ob Sie am Ende jeder Zeile einen Backslash einfügen, und das war's. Aber nein! Doppelte Schrägstriche sollten Sie durch /* */ ersetzen. Und wenn /* */ nicht in einer Zeile steht, ist das schade.