2018年6月21日木曜日

[MQL4] 現在のタイムフレームを秒で取得する

[Period()](https://docs.mql4.com/check/period) は現在のチャートの時間軸を**分**で返すので、この値に60をかければ、秒に変換できます。

また、[PeriodSeconds()](https://docs.mql4.com/common/periodseconds) は入力タイムフレームの時間軸を**秒**で返します。

私は`PeriodSeconds()` の存在を知らずに、ずっと `Period()` を60倍していました。
どちらを使っても大した差はありませんが。
2018年6月17日日曜日

MT4 のヒストリカルデータを Python で読み込んでみた

MetaTrader のフォーラムに `.hst` ファイルフォーマットについて書かれていたので、Python で読み込むクラスを作ってみました。

> 参考
>
> [.hst file format . . . Old and New (Jan 2014) - Symbols - MQL4 and MetaTrader 4 - MQL4 programming forum](https://www.mql5.com/en/forum/149178)

2018年6月16日土曜日

[MT4] 指定日時のチャートを表示する方法

MT4 には Fast Navigation という機能があり、これを使うとチャートを指定した日時までジャンプさせることが出来ますチャートの時間指定ジャンプはこれしか方法が無いようなので、Fast Navigation という名前はいかがなものかと思う
2018年6月8日金曜日

[MQL4] マルチタイムフレーム対応インジケーターの作り方

[iBarShift()](https://docs.mql4.com/series/ibarshift) を使うと比較的簡単に作ることが出来ます。

2018年6月7日木曜日

[MQL4] カスタムインジケーターを最新値で更新する方法2種

2019/06/05 追記
コードを少し修正しました。 理由については以下にまとめてあります。 [カスタムインジケーターを更新する際、最新値だけでは足りない](https://strategyofc.blogspot.com/2019/06/mql4.html)
MQL のカスタムインジケーターは便利ですが、 作り方を間違えると不思議な動作をするので注意が必要です。
2018年6月6日水曜日

[MQL4] input parameters をドロップダウンリストにする方法

MQL で input を定義する際、型を [enum](https://docs.mql4.com/basis/types/integer/enumeration) にすることで input parameters をドロップダウンリストにすることができます。

2018年6月3日日曜日

[MQL4] input parameters にスペースを入れたりして見やすくする方法

`input` の終わりにコメントを書くとそちらが表示されます。

```mq4
#property strict
//--- input parameters
input int    MiddleMa;  // 中期トレンドを見るためのEMA期間 [本数]
input int    ShortMa;   // 仕掛けのためのEMA期間 [本数]
input double StopPoint; // 許容される最大ストップ [Point]
```

> 参考 > > [Input Variables - Variables - Language Basics - MQL4 Reference](https://docs.mql4.com/basis/variables/inputvariables) 特に単位などを明示するのに便利。 ### 注意点 使用に際して以下のような制約があるので気をつけましょう。 - 長さは63文字まで - strict モードじゃないといけない ### 日本語は使わない方が良い ところで、例として日本語を使っておいて何ですが、日本語は使わない方がよいと思います。 > 参考 > > [MQL4 内で日本語は使わない方が良い | Strategy of C](https://strategyofc.blogspot.com/2018/05/mql4.html)
2018年6月2日土曜日

[MQL4] metaeditor.exe を使ってコマンドラインで mq4 ファイルをコンパイルする方法

コマンドラインで mql4 ファイルをコンパイルしたい場合、`metaeditor.exe` のオプションが使えます。

> 参考
>
> [コンパイル - プログラム作成 - MetaTrader 5](https://www.metatrader5.com/ja/metaeditor/help/development/compile)