2019年9月10日火曜日

[MT4] WebInstall フォルダは一度更新&削除するとしばらく更新されない

Build 1170 (20 Dec 2018) -> Build 1210 (06 Sep 2019) のアップデートで確認

MetaTrader 4 のアップデートは %APPDATA%\MetaQuotes\WebInstall 以下にダウンロードされ、複数の MetaTrader 間でシェアされます。

参考

MetaTrader 4 は勝手に再起動してアップデートすることがある | Strategy of C

この WebInstall フォルダ、最新版をダウンロードした後にこれを削除すると、しばらくの間は再ダウンロードが行われないようです。

ただし、異なるアカウントでアクセスした場合はダウンロードされます。

これらのことより、サーバー側にダウンロードした情報が残っており、しばらくの間は無駄にダウンロードし直さないようになっているのだと思われます。

とはいえ、これを削除するケースは滅多にないと思われるので、あまり気にする必要はないでしょう。

参考

私の場合は、/skipupdate オプションの動作を調べるためにやってみました

[MT4] /skipupdate は機能していない? | Strategy of C

2019年6月11日火曜日

[MT4] /skipupdate は機能していない?

MetaTrader 4 は terminal.exe /skipupdate で起動すると自動アップデートを抑制できるはずです。

参考

MT4 自動アップデート阻止方法 | FXmt

ところが、最近の挙動を見ていると、このオプションが効いてない様子。 ちょうど手元に Build 1090 (19 May 2017) 版があったので確認してみました。

2019年6月8日土曜日

MetaTrader を複数起動してストラテジーテスターを行う方法

MetaTrader は /portable オプションを付けることで、フォルダ単位に起動することができます。 つまり、フォルダをコピーすれば複数の MetaTrader を同時起動することができるということです。

しかし、都度フォルダをコピーするのは大変1。 そこで、MetaTrader を簡単に複数起動することができるスクリプトを作ってみました。

Windows のジャンクション機能を使っているので、普通にコピーするより速く起動します。

2019年6月6日木曜日

[MQL4] カスタムインジケーターを更新する際、最新値だけでは足りない

2019年5月8日水曜日

[MQL4] StringToCharArray() を使うと最後に '\0' が入るので注意

公式リファレンスにちゃんと書いてあるのですが、 StringToCharArray() を使うと最後に '\0'1 が入ります。

1
2
3
4
5
6
string hoge = "abc";
uchar arr_hoge[];
StringToCharArray(hoge, arr_hoge);
// arr_hoge は ['a', 'b', 'c', '\0']
Print(ArraySize(arr_hoge));
// 4

ArraySize()StringLen() のように使ったりすると不具合の原因になるので気をつけましょう2

2019年4月12日金曜日

MQL4 で配列用メモリを動的確保する方法

プログラムの動作中に配列長が決まるということはよくあります1

そういった場合、C++ では new 演算子で動的にメモリを確保するわけですが、MQL4 では new 演算子で配列用のメモリを確保することは出来ません。

その代わり、ArrayResize() を利用することでメモリを動的確保することができます。

2019年4月11日木曜日

MT4 Android 版で Notification の音を変更する方法

@Android版 MetaTrader 4 Build 1174 (05 Apr 2019)

MT4 Android 版で Notification の音が変更できない で書いたように MT4 Android 版 では Notification の音を変更することが出来なくなっていました1

アプリの更新が出るたびに、修正されているか確認しているのですが、未だに直っていないようです。

…と思ったら、アプリ内からは変更できないけど Android の設定からは変更できるようになっていました2。 Android 9 Pie で Notification の仕様が少し変わり、MetaTrader 4 アプリはそれに正しく対応出来ていないようですね。

なので、公式にはまだ直っているとは言い難いですが、Android の機能を使えば Notification の音を変更することが可能です。