2019年4月12日金曜日
MQL4 で配列用メモリを動的確保する方法
プログラムの動作中に配列長が決まるということはよくあります
。
そういった場合、C++ では `new` 演算子で動的にメモリを確保するわけですが、MQL4 では `new` 演算子で配列用のメモリを確保することは出来ません。
その代わり、[ArrayResize()](https://docs.mql4.com/array/arrayresize) を利用することでメモリを動的確保することができます。
プログラムの動作中に配列長が決まるということはよくありますMQL だとそう多くはないかもしれないですが。
そういった場合、C++ では `new` 演算子で動的にメモリを確保するわけですが、MQL4 では `new` 演算子で配列用のメモリを確保することは出来ません。
その代わり、[ArrayResize()](https://docs.mql4.com/array/arrayresize) を利用することでメモリを動的確保することができます。
@Android版 MetaTrader 4 Build 1174 (05 Apr 2019) [MT4 Android 版で Notification の音が変更できない](https://strategyofc.blogspot.com/2018/08/mt4-android-notification.html) で書いたように [MT4 Android 版](https://play.google.com/store/apps/details?id=net.metaquotes.metatrader4) では Notification の音を変更することが出来なくなっていました少なくとも Android 9 Pie では。 アプリの更新が出るたびに、修正されているか確認しているのですが、未だに直っていないようです。 …と思ったら、アプリ内からは変更できないけど Android の設定からは変更できるようになっていましたもしかしたら 2018 Jun バージョンから出来たのかも。 Android 9 Pie で Notification の仕様が少し変わり、MetaTrader 4 アプリはそれに正しく対応出来ていないようですね。 なので、公式にはまだ直っているとは言い難いですが、Android の機能を使えば Notification の音を変更することが可能です。
昨日まで使えていた EA でテストをしようとしたところ、"tester cannot calculate prices" というエラーが出て、動かなくなってしまいました。 エラーの前に "margin exchange rate cannot be calculated" という警告が出ているのも気になります。 調べてみたところ、以下のような条件下でおこるようです条件が AND か OR か不確定。 - "Expert properties"(エキスパート設定)の "Initial deposit currency"(初期証拠金通貨)がブローカーのものと異なる - テストの "Symbol" (通貨ペア)が直接計算できない例えば、証拠金を「USD」にしていて、「EURJPY」で計算しようとしている場合など - サーバーと通信出来ていない
アプリケーション開発から組み込みまで手を出しているフリーランスのエンジニア
投資経験は10年以上
現在、完全自動売買を目指して研究中
当ブログ内の情報は環境等により動作が異なる場合があります。 情報は正確になるよう努めていますが、もし間違いを見つけた方はご一報いただけると幸いです。 なお、当ブログの情報によって損害が生じたとしても管理人は一切の責任を負いません。 全て自己責任でお願い致します。