MetaTrader - 取引時間・スワップ・手数料・pips
取引時間
- MT4, 5両方とも同じ関数がありますが、下記で一応取引時間が取れました。(MT4で試しています)
- 戻り値がfalseの場合は、1日お休みということっぽい。
- ただ、3番目の引数が謎。session_index
- session_indexを1にしたら、全部falseになった。
string days[] = {SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY};for (int i = 0; i < 7; i++) { datetime from; datetime to; bool result = SymbolInfoSessionTrade(pair, days[i], 0, from, to); Print(i, ": ", result, " ", days[i], " ", from, " ", to);}実行結果
0: false 0 1970.01.01 00:00:00 1970.01.01 00:00:001: true 1 1970.01.01 00:05:00 1970.01.02 00:00:002: true 2 1970.01.01 00:00:00 1970.01.02 00:00:003: true 3 1970.01.01 00:00:00 1970.01.02 00:00:004: true 4 1970.01.01 00:00:00 1970.01.02 00:00:005: true 5 1970.01.01 00:00:00 1970.01.01 23:50:006: false 6 1970.01.01 00:00:00 1970.01.01 00:00:00懸案点
https://mqldiscussions.com/t/how-to-detect-if-the-market-is-closed/751/6 — mqldiscussions.com
- 上記によると、経験的に使えないときもあるよと言っている人もいるし、期限切れでも時間返ってくると言っている人もいる。
- また、謎のsession_indexはとりあえず0にしておけばいいらしい。
スワップ
- swapLong, swapShortはMarketInfoでとれる。
手数料
- MT5なら、Commission()関数でとれるらしいので、やってみよう。
- アカウントもってなかった。
- しかし、ポジションの手数料と書いてあるから無理かもしれない。GUIだとしっかり表示される。
pips
https://mt4-ea.com/blog/4542/ — mt4-ea.com
- あー分かりやすい。最高。
- USD/JPYみたいに、なんとかJPYは全部同じで、1pips = 0.01円(小数点第二位)らしい。
- そして、右側が日本円以外は、1pips = 0.0001(小数点第四位)らしい。
- 右側がJPYの場合、大体の場合、小数点3位まで表示されるらしい。
- 右側がJPYじゃない場合、大体の場合、小数点5位まで表示されるらしい。
- MTもこのルール通りだから、下記のようにしたら、pointをpipsに変えられる。
- digitsが3なら、1pips = 0.01円だから、point / 10。
- digitsが5なら、1pips = 0.0001だから、point / 10。
https://minagachi.com/price-to-pips — minagachi.com
- これによると、digitが2、4のものもあるらしい。
- 2, 4の場合は、pips == pointらしい。
- 小数点そろえたいときは、とりあえず NormalizeDouble を使っておけば間違いないらしい。
NormalizeDouble( stoploss , Digits());