'5122740': accepted exchange sell 1.00 DINRM at market, close #133675792 buy 1.00 DINRM 149.07 '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
なぜダブルスラッシュはバックスラッシュの上に作用するのですか?また、マクロを起動すると、なぜダブルスラッシュのコメントが付くのでしょうか?
コメントはマクロの一部ではありません。マクロは連続的でなければならない。逆は、次の行からマクロを継続します。行頭の // はマクロを中断させるので、そのような行はバックスラッシュで終わることができないからです。
Metaquotes-デモ
SYMBOL_SESSION_PRICE_LIMIT_MIN == 1199.2 しかし、高い価格でもBuyLimitを設定することができません。
そこで、「なぜマクロはスラッシュが2つある行を考慮するのですか?そのはずです。
この場合、コメントは空文字列に置き換えられ(コメント文は 無視され、文字列自体は残る)、空文字列がマクロに割り込んできます
if (true) \
{ \
Print(""); \
}
この場合、コメントは空行に 置き換えられます。
if (true) \
{ \
Print(""); \
}
ブレーキは有能なスクリプトを書けば、直すのは難しくなさそうだ。以下は、ping50msでかなり高速に表示されるものです。
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は、残念ながらスピードが落ちています。
デモは1.5秒のマーチング!さらにクールです。
'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
クエリ
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
私は、これは非論理的だと思います。空文字列もないはずです。
// は、コメントが後にあることを意味し、文字列全体がコメントであることを意味するものではありません。を削除すると、空の文字列が表示されます。
同意見です!しかし、マクロの場合、これが不便なのです。
あるコードの一部をマクロ化することを想像してください。例えば、関数をマクロに置き換える。
各行の末尾にバックスラッシュを付ければ完了のようです。でも、違うんです!ダブルスラッシュは、/* */に置き換えてください。また、/* */が1行に収まっていない場合は、残念なことになります。