MT4 2019 アップデートまとめ
公開日:
:
MT4/MT5使い方 MT4バージョン情報
目次/もくじ
MT4 2019 アップデートまとめ
build 1260 2020.01.23
このアップデートは、バグの修正と安定性の向上を提供します。
build 1220 2019.09.14
- MQL4プログラムの多数のグラフィカルオブジェクトを使用した操作が原因で発生することがあるスローダウンが修正されました。
- MQL4プログラムからDLL関数への非定数文字列パラメーターの受け渡しが修正されました。
- クラッシュログで報告されるエラーが修正されました。
build 1210 2019.09.03
- 最適化された「市場」および「シグナル」セクション。新しいバージョンでは、製品とシグナルのショーケースがより高速に実行されるため、ブラウジングエクスペリエンスが向上します。
- Wineに「市場」、「シグナル」、「検索」のサポートを追加しました。 LinuxおよびMac OSユーザーは、コピートレーディングサービスとともに、トレーディングアプリケーションの最大のストアにアクセスできるようになりました。
- ブローカーサーバーに接続するときのアクセスポイントの検索の改善。
- インターフェイスの翻訳を更新および改善しました。トレーダーにシームレスなユーザーエクスペリエンスを提供するために、利用可能な38の言語のそれぞれを改訂しました。
- クラッシュログで報告されるエラーが修正されました。
build 1170 2018.12.19
Windows XP / 2003 / Vistaを含むオペレーティングシステムの古いバージョンのサポートが終了したことをお知らせします。クライアント端末の最小許容OSバージョンはWindows 7です。
build 1160 2018.12.12
- MetaEditorのMQL5ストレージ操作プロトコルを変更しました
共有プロジェクトをサポートするために、 MQL5 Storageの操作プロトコルを更新しました。したがって、プラットフォームの更新後にストレージからすべてのデータのチェックアウトを実行する必要があります。 MQL5ストレージに保存されているデータは、更新中に失われたり影響を受けたりすることはありません。コミットする操作を実行して、更新する前にすべてのローカル変更をMQL5ストレージに送信することをお勧めします。
- エラーを修正し、プラットフォームの安定性が改善されました。
- Windows XP / 2003 / Vistaを含むオペレーティングシステムの古いバージョンのサポートが終了したことをお知らせします。クライアント端末の最小許容OSバージョンはWindows 7です。
beta build 1145 2018.11.09
この更新プログラムはエラーを修正し、プラットフォームの安定性を向上させます。
build 1090 2017.05.18
新しいバージョンは、クライアントターミナルの操作におけるいくつかのバグが修正されました。
build 1080 2017.05.10
1か月前、MicrosoftはオペレーティングシステムWindows 10 Creators Update (バージョン1703)のメジャーアップデートをリリースしました。このアップデートをインストールした後、一部のユーザーは端末でMQL4プログラムを実行できませんでした。この問題は、新しいMetaTrader 4プラットフォームビルド1080で修正されました。更新されたMetaEditorを使用した再コンパイルは不要ですが、Expert Advisorsとインディケーターはチャート上で正しく実行されます。
1065未満のMetaTrader 4クライアントターミナルバージョンのサポートは、2017年10月1日に終了します。サポートされていないターミナルビルドは、新しいサーバーバージョンに接続できません。事前に端末を更新することを強くお勧めします。
build 1045 2017.02.02
MetaTrader 4プラットフォームアップデートは2017年2月3日にリリースされ、Windows 10 Insider Previewビルド15007のリリースに関連します。新しいWindows 10システムバージョンのセキュリティアップデートにより、MetaTrader 4クライアントターミナルが起動できない場合があります。
新しいプラットフォームバージョンをインストールして、今後のWindows 10アップデートの準備をします。
build 1031 2016.12.14
クラッシュレポートに基づいていくつかのバグが修正されました。
build 1010 2016.08.16
- ターミナル:32ビットWindows 10、ビルド1607で実行されているターミナルでMQL4アプリケーションの実行を妨げるエラーが修正されました。
- ターミナル:検索ボタンとチャットボタンの不正確な表示が修正されました。
- ターミナル:デモアカウントを開いたときに、ターミナルに配信される不定期のウェルカムメールが修正されました。
- MQL4:新しい ‘void *’ポインターを追加して、ユーザーがオブジェクトの抽象的なコレクションを作成できるようにします。任意のクラスのオブジェクトへのポインターは、このタイプの変数に保存できます。キャストバックするには、演算子dynamic_cast <class name *>(void * pointer)を使用することをお勧めします。変換できない場合、結果はNULLです。
123456789101112131415161718192021<span class="keyword">class</span> CFoo { };<span class="keyword">class</span> CBar { };<span class="comment">//+------------------------------------------------------------------+</span><span class="comment">//| Script program start function |</span><span class="comment">//+------------------------------------------------------------------+</span><span class="keyword">void</span> <span class="functions">OnStart</span> (){<span class="keyword">void</span> *vptr[ <span class="number">2</span> ];vptr[ <span class="number">0</span> ]= <span class="keyword">new</span> CFoo();vptr[ <span class="number">1</span> ]= <span class="keyword">new</span> CBar();<span class="comment">//---</span><span class="keyword">for</span> ( <span class="keyword">int</span> i= <span class="number">0</span> ;i< <span class="functions">ArraySize</span> (vptr);i++){<span class="keyword">if</span> (dynamic_cast<CFoo *>(vptr[i])!=NULL)<span class="functions">Print</span> ( <span class="string">"CFoo * object at index "</span> ,i);<span class="keyword">if</span> (dynamic_cast<CBar *>(vptr[i])!=NULL)<span class="functions">Print</span> ( <span class="string">"CBar * object at index "</span> ,i);}CFoo *fptr=vptr[ <span class="number">1</span> ]; <span class="comment">// Will return an error while casting pointers, vptr[1] is not an object of CFoo</span>}<span class="comment">//+------------------------------------------------------------------+</span> - MQL4:文字列の演算子[]のサポートが追加されました。この演算子を使用すると、ユーザーはインデックスによって文字列からシンボルを取得できます。指定されたインデックスが文字列の外側にある場合、結果は0です。
12<span class="keyword">string</span> text= <span class="string">"Hello"</span> ;<span class="keyword">ushort</span> symb=text[ <span class="number">0</span> ]; <span class="comment">// Will return the code of symbol 'H'</span> - MQL4:履歴データとティックデータをコピーするCopyXXX関数が高速になりました。
- MQL4: ObjectDeleteAll関数を使用して、指定されたプレフィックスを持つ複数のグラフィカルオブジェクトの削除が修正されました。更新前に、この関数の実行後、残りのオブジェクトが間違った順序で表示される可能性がありました。
- MQL4:時間枠を変更した後のグラフィカルオブジェクト表示の不正確な順序が修正されました。
- ホスティング:仮想サーバーとの端末同期中、カスタムインジケーターがこれらのチャートで実行されている場合でも、Expert Advisorのないチャートは無視されるようになりました。カスタム指標を移行する必要がある場合は、操作を実行しない「空の」Expert Advisorのチャートで実行してください。このようなExpert Advisorは、「Expert Advisor:template」を選択することにより、MetaEditorのMQL4ウィザードを使用して簡単に生成できます。この更新は、インジケーターが意図的に移行されるようにするためのものです。
- ホスティング:名前に非ラテン文字(キリル文字や中国語文字など)が含まれるExpert Advisorとカスタムインジケーターを同期できるようになりました。
- クラッシュログで報告されるエラーが修正されました。
Build 988 2016.07.05
ObjectDeleteAll関数を使用したプレフィックスによるグラフィカルオブジェクトの一括削除が修正されました。以前は、この関数を実行すると、残りのオブジェクトの描画順序が間違っていました。
Android build 996 2016.10.17
MetaTrader 4 Androidの新バージョンは、トレーダーが他のMQL5.communityメンバーとチャットできる無料の組み込みチャットを特徴としています。このユーザーのモバイルデバイスにメッセージを直接送信するには、メッセージ受信者のセクションで目的のユーザーのログインを指定します。
組み込みのチャットを使用すると、MQL5.com WebサイトまたはAndroidデバイスを介して、いつでもどこでもトレーダーと通信できます。既にご存知かもしれませんが、MetaTrader 5 Androidのチャットは2016年8月にリリースされました。
build 985 2016.06.30
2016年7月1日に終了する940未満のMetaTrader 4ターミナルバージョンのサポート
2016年7月1日以降、940より下のMetaTrader 4ターミナルバージョンはサポートされなくなります。サポートされていないターミナルビルドは、新しいサーバーバージョンに接続できません。したがって、端末を更新することを強くお勧めします。
MetaTrader 4クライアントターミナルビルド985
- ターミナル:新しい組み込みチャット。これで、トレーダーはプラットフォームから直接MQL5.communityの友人や仲間のトレーダーとチャットできます。チャットは、メッセージの履歴を保持するだけでなく、未読メッセージの数を特徴とします。チャットを開始するには、チャットウィンドウから直接、またはプラットフォーム設定を介してMQL5アカウントにログインします:[ツール]-> [オプション]-> [コミュニティ]。
- ターミナル:ターミナル起動時の内部メールデータベースの読み取りの最適化。
- MQL4:任意のチャートで価格と時間スケールを表示/非表示するオプションが追加されました。以前のバージョンでは、MQL4アプリケーションは、それが実行されていたチャートのCHART_SHOW_PRICE_SCALEおよびCHART_SHOW_DATE_SCALEプロパティのみを変更できました。
- MQL4:MarketInfo関数の新しいMODE_CLOSEBY_ALLOWEDプロパティ。 TRUEは、指定された金融シンボルに対してClose By操作(カウンターポジションによるクローズ)が許可されることを意味します。
- MQL4:OnChartEventエントリポイントへの文字列パラメーターの受け渡しが修正されました。このエラーにより、パラメーターの値が誤っている可能性があります。 OnChartEventを使用すると、キーイベント、マウスの動きなどのチャートイベントを追跡できます。
- MQL4:ObjectsDeleteAll関数を使用して、複数のグラフィカルオブジェクトの削除を高速化。
- シグナル:RUBおよびRURを含む通貨ペアの自動マッチングの改善。
- テスター:テスト中のグラフィカルオブジェクト作成時間のスタンプが修正されました。以前のバージョンでは、テスト時間の代わりに現在のターミナル時間が追加されました。
- MetaEditor:置換ダイアログボックスを開くときのテキスト置換フィールドのフォーカス設定が修正されました。
- MetaEditor:現在の位置から上方向に検索する際の複数のテキストオカレンスの置換が修正されました。
- クラッシュログで報告されるエラーが修正されました。
iOS build 975 2016.08.29
iPhone / iPad用の最新のMetaTrader 4は、まったく新しいデザインのメッセージを特徴としています。デスクトッププラットフォームからのMQL5.communityメッセージとプッシュ通知は、一般的なメッセージングアプリで使用されるものと同様のチャットとして表示されます。さらに、プラットフォームから直接22の利用可能な言語のいずれかに切り替えることが可能になりました。デバイスの言語を変更せずに、設定で優先言語を指定します。
Build 971 2016.06.08
build970の修正です。
色が[なし]に指定されている場合、カスタムインジケーターラインの色の保存が修正されます。以前は、この設定は端末を再起動した後にリセットされ、ラインが黒で表示されました。
Build 970 2016.06.01
デモ口座開設の簡素化とMQL4機能の拡張
2016年7月1日、940より下のMetaTrader 4ターミナルバージョンのサポートは終了します
940未満のMetaTrader 4ターミナルビルドのサポートは2016年7月1日に終了します。サポートされていないターミナルビルドは新しいサーバーバージョンに接続できません。したがって、ターミナルをアップグレードすることを強くお勧めします。
- ターミナル:デモアカウント作成ダイアログの簡略化。これ以上大きなフォームに入力する必要はありません。基本データを指定し、取引パラメータを選択するだけです:口座タイプ、預金、レバレッジ。
- MQL4:MQL4言語の新しい機能を実装するために、実行可能なEX4ファイルの形式が変更されました。 MetaEditorの以前のビルドでコンパイルされたすべてのEX4アプリケーションは、更新後に正しく動作します。したがって、上位互換性は完全に保持されます。
ビルド970以降でコンパイルされたEX4プログラムは、古いターミナルビルドでは実行されません-下位互換性はサポートされていません。
- MQL4:抽象クラスと純粋仮想関数のサポートが追加されました。
抽象クラスは、より具体的な派生クラスを作成するために使用する一般的なエンティティを作成するために使用されます。抽象クラスは、他のクラスの基本クラスとしてのみ使用できます。そのため、抽象クラスタイプのオブジェクトを作成することはできません。
少なくとも1つの純粋仮想関数を含むクラスは抽象クラスです。したがって、抽象クラスから派生したクラスは、その純粋な仮想関数をすべて実装する必要があります。実装しない場合、それらは抽象クラスにもなります。
仮想関数は、純粋指定子構文を使用して「純粋」として宣言されます。一般的な機能を提供するためだけに作成されたCAnimalクラスの例を考えてみましょう。CAnimal型のオブジェクトは実用的ではありません。したがって、CAnimalは抽象クラスの良い例です。
12345678<span class="keyword">class</span> CAnimal{<span class="keyword">public</span> :CAnimal(); <span class="comment">// Constructor</span><span class="keyword">virtual</span> <span class="keyword">void</span> Sound() = <span class="number">0</span> ; <span class="comment">// A pure virtual function</span><span class="keyword">private</span> :<span class="keyword">double</span> m_legs_count; <span class="comment">// How many feet the animal has</span>};ここで、Sound()は、純粋仮想関数PURE(= 0)の指定子で宣言されているため、純粋仮想関数です。
純粋仮想関数は、PURE指定子が設定されている仮想関数(= NULL)または(= 0)のみです。抽象クラスの宣言と使用の例:
123456789101112131415161718<span class="keyword">class</span> CAnimal{<span class="keyword">public</span> :<span class="keyword">virtual</span> <span class="keyword">void</span> Sound()=NULL; <span class="comment">// PURE method, should be overridden in the derived class, CAnimal is now abstract and cannot be created</span>};<span class="comment">//--- Derived from an abstract class</span><span class="keyword">class</span> CCat : <span class="keyword">public</span> CAnimal{<span class="keyword">public</span> :<span class="keyword">virtual</span> <span class="keyword">void</span> Sound() { <span class="functions">Print</span> ( <span class="string">"Myau"</span> ); } <span class="comment">// PURE is overridden, CCat is not abstract and can be created</span>};<span class="comment">//--- examples of wrong use</span><span class="keyword">new</span> CAnimal; <span class="comment">// Error of 'CAnimal' - the compiler returns the "cannot instantiate abstract class" error</span>CAnimal some_animal; <span class="comment">// Error of 'CAnimal' - the compiler returns the "cannot instantiate abstract class" error</span><span class="comment">//--- examples of correct use</span><span class="keyword">new</span> CCat; <span class="comment">// no error - the CCat class is not abstract</span>CCat cat; <span class="comment">// no error - the CCat class is not abstract</span>抽象クラスの制限
抽象クラスのコンストラクターが純粋な仮想関数を(直接または間接的に)呼び出す場合、結果は未定義です。1234567891011121314151617181920212223<span class="comment">//+------------------------------------------------------------------+</span><span class="comment">//| An abstract base class |</span><span class="comment">//+------------------------------------------------------------------+</span><span class="keyword">class</span> CAnimal{<span class="keyword">public</span> :<span class="comment">//--- a pure virtual function</span><span class="keyword">virtual</span> <span class="keyword">void</span> Sound( <span class="keyword">void</span> )=NULL;<span class="comment">//--- function</span><span class="keyword">void</span> CallSound( <span class="keyword">void</span> ) { Sound(); }<span class="comment">//--- constructor</span>CAnimal(){<span class="comment">//--- an explicit call of the virtual method</span>Sound();<span class="comment">//--- an implicit call (using a third function)</span>CallSound();<span class="comment">//--- a constructor and/or destructor always calls its own functions,</span><span class="comment">//--- even if they are virtual and overridden by a called function in a derived class</span><span class="comment">//--- if the called function is purely virtual</span><span class="comment">//--- the call causes the "pure virtual function call" critical execution error</span>}};ただし、抽象クラスのコンストラクターとデストラクターは、他のメンバー関数を呼び出すことができます。
- MQL4:イベントモデルの配置を簡素化する関数へのポインターのサポートを追加しました。
関数へのポインターを宣言するには、「関数へのポインター」タイプを指定します。次に例を示します。
1<span class="keyword">typedef</span> <span class="keyword">int</span> (*TFunc)( <span class="keyword">int</span> , <span class="keyword">int</span> );現在、TFuncは型であり、関数への変数ポインターを宣言することができます。
1TFunc func_ptr;func_ptr変数は、後で宣言するための関数へのポインターを格納できます。
123456789101112<span class="keyword">int</span> sub( <span class="keyword">int</span> x, <span class="keyword">int</span> y) { <span class="keyword">return</span> (x-y); }<span class="keyword">int</span> add( <span class="keyword">int</span> x, <span class="keyword">int</span> y) { <span class="keyword">return</span> (x+y); }<span class="keyword">int</span> neg( <span class="keyword">int</span> x) { <span class="keyword">return</span> (~x); }func_ptr=sub;<span class="functions">Print</span> (func_ptr( <span class="number">10</span> , <span class="number">5</span> ));func_ptr=add;<span class="functions">Print</span> (func_ptr( <span class="number">10</span> , <span class="number">5</span> ));func_ptr=neg; <span class="comment">// error: neg is not of int (int,int) type</span><span class="functions">Print</span> (func_ptr( <span class="number">10</span> )); <span class="comment">// error: there should be two parameters</span>関数へのポインタを保存し、パラメータとして渡すことができます。非静的クラスメソッドへのポインタを取得することはできません。
- MQL4:TERMINAL_SCREEN_DPI値をENUM_TERMINAL_INFO_INTEGERクライアント端末プロパティ列挙に追加しました—データ表示解像度はインチあたりのドット数(DPI)で測定されます。このパラメーターの知識により、グラフィカルオブジェクトのサイズを指定できるため、解像度が異なるモニターでも同じように見えます。
- MQL4:ENUM_TERMINAL_INFO_INTEGER クライアントターミナルプロパティに TERMINAL_PING_LAST値が追加されました。これは、マイクロ秒単位の取引サーバーへのpingの最後の既知の値です。 1秒は100万マイクロ秒で構成されます。
- MQL4:DRAW_NONEバッファー(グラフィカルな構成なし)は、カスタムインジケーターのチャートウィンドウの最小および最大計算に参加しなくなりました。
- MQL4:OBJ_LABELおよびOBJ_TEXTタイプのオブジェクト上でのマウスの動きとマウスボタンの押下に関連するイベントの生成が修正されました。以前は、イベントがOBJ_RECTANGLE_LABELおよびOBJ_RECTANGLEタイプの他のオブジェクト内にある場合、誤って生成されていました。
- MQL4:カスタムインジケーターの高さゼロのヒストグラムバーのプロットが修正されました。以前は、このようなバーは表示されませんでしたが、現在は高さが1ピクセルです。
- シグナル:シグナルプロバイダーとサブスクライバーの利用可能な取引シンボルを比較する際の取引シンボルの検索が修正されました。
- テスター:現在のスプレッドがテスト設定で使用されている場合、fxtファイルでのスプレッドの使用が修正されました。
- マーケット:マーケットのショーケース表示エラーが修正されました。
- MetaEditor:「Match Whole Word Only」モードでのファイルによる単語の検索を修正。
- MetaEditor:必要なファイルのコンパイル結果行をダブルクリックしてファイルに移動する機能を追加しました。
- MetaEditor:Windows XPの一部のコントロール要素の表示が修正されました。
- クラッシュログで報告されるエラーが修正されました。
Android build 952 2016.05.18
- 取引に関する詳細情報を含むポップアップウィンドウが追加されました。注文のオープン時間とクローズ時間を調べ、ポジションへのコメントを閲覧し、ワンタップでブローカーの手数料を見つけます。
- 最後のバーの売値に対応する赤い線が追加され、取引をより正確に管理できるようになりました。
- ニュース管理の改善。本当に役立つニュースを選択して読んで、希望する資料をお気に入りに追加してください。
- 分析オブジェクト設定のすべての変更は、アプリケーションを閉じた後に保存されます。
build 950 2015.12.22
- ホスティング:ビデオチュートリアル「仮想プラットフォームをレンタルする方法」へのリンクを[仮想ホスティングウィザード]ダイアログに追加しました。 2分間のビデオを見て、トレーディングロボットを簡単に起動したり、24時間年中無休でシグナルをコピーする方法を学びます。
このビデオおよび他の多くのビデオは、 公式のMetaQuotes Software Corp. YouTubeチャンネルで入手できます。
- ターミナル:ナビゲーターウィンドウのサブフォルダーでのMQL4プログラムのソートが修正されました。アプリケーションは名前でソートされます。
- ターミナル:超高解像度画面(4K)のネットワーク接続ステータスインジケーターの描画が修正されました。
- ターミナル:[ニュース]セクションの印刷プレビューウィンドウの表示が修正されました。
- ターミナル:フル機能の検索機能が、ターミナルのログビューアー、エキスパートアドバイザー、ストラテジーテスター、および仮想ホスティングに追加されました。前後に検索したり、単語全体を検索したり、大文字と小文字の区別を切り替えたりできます。
-
MetaEditor:MQL4ウィザードにチュートリアルビデオ「トレーディングロボットを組み立てる方法」へのリンクを追加しました。 3分のビデオを見て、コードを1行も書かずに取引ロボットを開発してください。
このビデオおよび他の多くのビデオは、 公式のMetaQuotes Software Corp. YouTubeチャンネルで入手できます。
- MQL4:SignaBaseTotal関数によって返される値が修正されました。場合によっては、端末で使用可能なシグナルの総数ではなく、関数がゼロ値を返すことがありました。
- MQL4:MQL4プログラムとは異なる時間枠でのグラフィカルオブジェクトの可視性の編集が修正されました。場合によっては、このプロパティを変更した後、オブジェクトがチャート上で見えなくなる可能性があります。
- テスター:テスト結果の価格値とSL TPレベルの表示が修正されました。
- クラッシュログで報告されるエラーが修正されました。
iOS build 947 2016.05.06
iPhone / iPad向けの人気のMetaTrader 4モバイルプラットフォームの新しいビルドがリリースされ、セキュリティが改善されました。これで、PINコードを設定したり、Touch IDを使用してアプリケーションへのアクセスを制限したりできます。 iPhoneまたはiPadが他人の手に渡った場合、取引口座は安全なままです。
新しい機能を有効にするには、設定/バージョン情報ウィンドウでロック画面を有効にし、4桁の組み合わせを設定します。
build 940 2015.12.08
- ターミナル:ターミナルインターフェイスは、高解像度画面(4K)に完全に適合しています。すべてのユーザーインターフェイス要素は、大きな画面に適切に表示されます。小さい画面では、読みやすくするためにUI要素が自動的に拡大されます。
- MQL4:Windows 10でのコンパイル中に「EX4の書き込みエラー」が発生することがあるバグが修正されました。
- MQL4:スクリプトおよびExpert Advisorで外部DLLをロードしているときに時々エラーを引き起こす可能性があったバグが修正されました。
- ホスティング:インジケーターがExpert Advisorから呼び出される場合、EX4ライブラリー呼び出しを含むカスタムインジケーターを使用した取引環境の移行が修正されました。
- シグナル:シグナルサブスクリプションページのエラー通知が修正されました。たとえば、コピーに必要なシンボルがないこと、さまざまな取引条件などに関する通知。
- MetaEditor:開いているウィンドウのいずれかが最大化されている場合、それらの配置が修正されました。開いているファイルは、[ウィンドウ]メニューの適切なコマンドを使用して、タイル、カスケード、垂直および水平に配置できます。
- クラッシュログで報告されるエラーが修正されました。
Build 920 2015.11.24
- ターミナル:取引口座開設ダイアログでの取引サーバーの初期および定期スキャンが修正されました。現在、可用性とpingはタイムリーに定義され、手動でスキャンする必要はありません。
- ターミナル:クライアントターミナルの操作を最適化および高速化しました。
- ターミナル:ターミナルインターフェイスは、高解像度画面(4K)にさらに適合しています。
- MQL4: MQL4アプリケーションのリソースからカスタムインジケーターをダウンロードする問題が修正されました。インジケータは、#resourceディレクティブを介してリソースに含まれます。これにより、配布がはるかに簡単な「オールインワン」アプリケーションを作成できます。
- MQL4:カスタム指標のレベル値表示の精度が修正されました。以前は、精度は常に小数点以下4桁で構成されていましたが、現在では適切なカスタムインジケーター値の精度に依存しています。
- MQL4:メソッド関数パラメーターとしてオブジェクトを渡すとき、継承の結果として、あるタイプのオブジェクトを別のタイプに減らす可能性のチェックが修正されました。
- MQL4:固定サイズの配列によってデータが設定されている場合の、指定されたバッファー(iIndicatorOnArray)の標準インジケーターの再計算が修正されました。以前は、インジケーターは時々再計算されませんでした。
- MQL4:クラステンプレートのエラーが修正されました。
- テスター:設定iniファイルからテスターを起動するときに、視覚化モードを管理する機能が追加されました。新しいTestVisualEnableパラメーター(true / false)が実装されています。パラメーターが指定されていない場合、現在の設定が使用されます。
- テスター:CopyXXX関数のエラーが修正されました。これにより、テスト履歴データではなく、実際の履歴データが返されていました。
- テスター:コマンドラインで渡された構成iniファイルからのテストパラメーターの読み取りが修正されました。
- テスター:視覚的なテストチャートを閉じた後の過剰なメモリ割り当て解除が修正されました。これにより、実際にExpert Advisorを操作するために履歴データが使用できなくなることがありました。
- クラッシュログで報告されるエラーが修正されました。
Build 910 2015.11.10
- コードベース:コードベースからのMQL4プログラムのダウンロードを修正および加速しました。プラットフォームで取引ロボットとインディケータの無料ソースコードを直接ダウンロードします。
- ターミナル:メモリからの価格履歴のアンロードが修正されました。メモリ不足の場合、以前にエラーが発生しました。
- ターミナル:Windows 10での作業時の一部のユーザーインターフェイス要素の表示が修正されました。
- ターミナル:Backspaceキーを使用してグラフからグラフィカルオブジェクトを削除する問題が修正されました。
- シグナル:取引シグナルのショーケースの翻訳の改善および修正。
- MQL4: ENUM_SYMBOL_INFO_INTEGER列挙にSYMBOL_VISIBLE読み取り専用プロパティを追加しました。
- MQL4:テンプレート操作が修正されました。
- MQL4:データソースとレシーバーのデータ領域が完全にまたは部分的に重複する場合に文字列配列をコピーするときのArrayCopy関数の動作が修正されました。
- テスター:インディケーターのデモバージョンとMQL5マーケットのエキスパートアドバイザーをテストする際の制限を追加しました。現在、有料製品のデモバージョンのテストは、現在の最終日の1週間前に強制的に完了します。
- MetaEditor:ツールチップと他のアプリケーションとの間の不定期の競合が修正されました。
- クラッシュログで報告されるエラーが修正されました。
Build 900 2015.10.20
- ターミナル:非アクティブ(未接続)アカウントのパスワードの変更が修正されました。
- ターミナル:大量の履歴データを操作するときのメモリの使用と解放を最適化しました。
- ターミナル:多数のニュースカテゴリでの動作を修正および最適化しました。
- シグナル:ナビゲーターウィンドウのコンテキストメニューを使用したシグナルのサブスクライブ解除が修正されました。
- MQL4:C ++のようにパラメーター化されたクラスを作成できるクラステンプレートが追加されました。これにより、さらに抽象化され、同じコードを使用して、異なるクラスのオブジェクトを一定の方法で操作できるようになります。使用例:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105<span class="comment">//+------------------------------------------------------------------+</span><span class="comment">//| TemplTest.mq5 |</span><span class="comment">//| Copyright 2015, MetaQuotes Software Corp. |</span><span class="comment">//| https://www.mql5.com |</span><span class="comment">//+------------------------------------------------------------------+</span><span class="preprocessor">#property </span> copyright <span class="string">"Copyright 2015, MetaQuotes Software Corp."</span><span class="preprocessor">#property </span> link <span class="string">"https://www.mql5.com"</span><span class="preprocessor">#property </span> version <span class="string">"1.00"</span><span class="comment">//+------------------------------------------------------------------+</span><span class="comment">//| Declare a template class |</span><span class="comment">//+------------------------------------------------------------------+</span><span class="keyword">template</span> < <span class="keyword">typename</span> T><span class="keyword">class</span> TArray{<span class="keyword">protected</span> :T m_data[];<span class="keyword">public</span> :<span class="keyword">bool</span> Append(T item){<span class="keyword">int</span> new_size= <span class="functions">ArraySize</span> (m_data)+ <span class="number">1</span> ;<span class="keyword">int</span> reserve =(new_size/ <span class="number">2</span> + <span class="number">15</span> )&~ <span class="number">15</span> ;<span class="comment">//---</span><span class="keyword">if</span> ( <span class="functions">ArrayResize</span> (m_data,new_size,reserve)!=new_size)<span class="keyword">return</span> (false);<span class="comment">//---</span>m_data[new_size- <span class="number">1</span> ]=item;<span class="keyword">return</span> (true);}T <span class="keyword">operator</span> []( <span class="keyword">int</span> index){<span class="keyword">static</span> T invalid_index;<span class="comment">//---</span><span class="keyword">if</span> (index< <span class="number">0</span> || index>= <span class="functions">ArraySize</span> (m_data))<span class="keyword">return</span> (invalid_index);<span class="comment">//---</span><span class="keyword">return</span> (m_data[index]);}};<span class="comment">//+------------------------------------------------------------------+</span><span class="comment">//| Template class of a pointer array. In the destructor, it deletes |</span><span class="comment">//| the objects, the pointers to which were stored in the array. |</span><span class="comment">//| |</span><span class="comment">//| Please note the inheritance from the TArray template class |</span><span class="comment">//+------------------------------------------------------------------+</span><span class="keyword">template</span> < <span class="keyword">typename</span> T><span class="keyword">class</span> TArrayPtr : <span class="keyword">public</span> TArray<T *>{<span class="keyword">public</span> :<span class="keyword">void</span> ~TArrayPtr(){<span class="keyword">for</span> ( <span class="keyword">int</span> n= <span class="number">0</span> ,count= <span class="functions">ArraySize</span> (m_data);n<count;n++)<span class="keyword">if</span> ( <span class="functions">CheckPointer</span> (m_data[n])==POINTER_DYNAMIC)<span class="keyword">delete</span> m_data[n];}};<span class="comment">//+------------------------------------------------------------------------+</span><span class="comment">//| Declare the class. Pointers to its objects will be stored in the array |</span><span class="comment">//+------------------------------------------------------------------------+</span><span class="keyword">class</span> CFoo{<span class="keyword">int</span> m_x;<span class="keyword">public</span> :CFoo( <span class="keyword">int</span> x):m_x(x) { }<span class="keyword">int</span> X( <span class="keyword">void</span> ) <span class="keyword">const</span> { <span class="keyword">return</span> (m_x); }};<span class="comment">//+------------------------------------------------------------------+</span><span class="comment">//| |</span><span class="comment">//+------------------------------------------------------------------+</span>TArray< <span class="keyword">int</span> > ExtIntArray; <span class="comment">// instantiate TArray template (specialize TArray template by the int type)</span>TArray< <span class="keyword">double</span> > ExtDblArray; <span class="comment">// instantiate TArray template (specialize TArray template by the double type)</span>TArrayPtr<CFoo> ExtPtrArray; <span class="comment">// instantiate TArrayPtr template (specialize TArrayPtr template by the CFoo type)</span><span class="comment">//+------------------------------------------------------------------+</span><span class="comment">//| Script program start function |</span><span class="comment">//+------------------------------------------------------------------+</span><span class="keyword">void</span> <span class="functions">OnStart</span> (){<span class="comment">//--- fill arrays with data</span><span class="keyword">for</span> ( <span class="keyword">int</span> i= <span class="number">0</span> ;i< <span class="number">10</span> ;i++){<span class="keyword">int</span> integer=i+ <span class="number">10</span> ;ExtIntArray.Append(integer);<span class="keyword">double</span> dbl=i+ <span class="number">20.0</span> ;ExtDblArray.Append(dbl);CFoo *ptr= <span class="keyword">new</span> CFoo(i+ <span class="number">30</span> );ExtPtrArray.Append(ptr);}<span class="comment">//--- output the array contents</span><span class="keyword">string</span> str= <span class="string">"Int:"</span> ;<span class="keyword">for</span> (i= <span class="number">0</span> ;i< <span class="number">10</span> ;i++)str+= <span class="string">" "</span> +( <span class="keyword">string</span> )ExtIntArray[i];<span class="functions">Print</span> (str);str= <span class="string">"Dbl:"</span> ;<span class="keyword">for</span> (i= <span class="number">0</span> ;i< <span class="number">10</span> ;i++)str+= <span class="string">" "</span> + <span class="functions">DoubleToString</span> (ExtDblArray[i], <span class="number">1</span> );<span class="functions">Print</span> (str);str= <span class="string">"Ptr:"</span> ;<span class="keyword">for</span> (i= <span class="number">0</span> ;i< <span class="number">10</span> ;i++)str+= <span class="string">" "</span> +( <span class="keyword">string</span> )ExtPtrArray[i].X();<span class="functions">Print</span> (str);<span class="comment">//--- CFoo objects created via new should not be deleted, since they are deleted in the TArrayPtr<CFoo> object destructor</span>}実行結果:
TemplTest EURUSD,M1: Ptr: 30 31 32 33 34 35 36 37 38 39
TemplTest EURUSD,M1: Dbl: 20.0 21.0 22.0 23.0 24.0 25.0 26.0 27.0 28.0 29.0
TemplTest EURUSD,M1: Int: 10 11 12 13 14 15 16 17 18 19 - MQL4:MQL4プログラムのクラッシュを時折引き起こす可能性のあるArrayCopy関数のメモリ再割り当てが修正されました。
- テスター:インディケーターのテスト後、グローバルレベルで宣言された変数のNULLを時折引き起こすエラーが修正されました。
- テスター:取引サーバーへの接続が失われたときのテストが修正されました。
- MetaEditor:型キャストがある場合にMetaAssistで関数名を定義する問題が修正されました。
- MetaEditor:大きなファイルを開くのを修正。
- MetaEditor:[コードベース]タブから検索機能を呼び出すFホットキー、およびコードを操作するためのコマンドのステータスバーにある複数のヒント:インデントの増加/減少、ナビゲーション、ケースシフトなど。
- クラッシュログで報告されるエラーが修正されました。
Build 890 2015.09.24
- Signal:[シグナル]タブのナビゲーションが修正されました。
- テスター: インジケーターテストの完了後に削除されたOnCalculateハンドラーの不要な呼び出し。
- MQL4:カスタムインジケーターで、CHARTEVENT_OBJECT_CHANGEハンドラーのObjectMove関数を使用してグラフィカルオブジェクトを移動する禁止を削除しました。
- MQL4:すべてのコンストラクターパラメーターにデフォルト値があり、コンストラクターがクラスとは別に実装されている場合のクラスコンパイルが修正されました。例:
123456789class CFoo<span class="rules">{public: <span class="value">CFoo(int x= <span class="number">0)</span> ;</span>}</span> ;CFoo::CFoo(int x)<span class="rules">{}</span> - MetaEditor:Windows 10でDPIを変更した後の多くのダイアログの表示を修正。
- クラッシュログで報告されるエラーが修正されました。
build 880 2015.09.18
- ウェブトレード:取引プラットフォームの最初のウェブ版がリリースされました。これでブラウザを使用するだけで市場の分析を行ったり、取引をすることができます!ウェブプラットフォームの使用は安全で、全ての送信される情報は安全にシグナル化されます。
ウェブトレードは現在はMQL5.communityのサイト上でのみ利用することができます。新セクション『取引』に移動してください。iframeを介して便利なウィジェットとして、ウェブターミナルを簡単にHTMLページと統合することができる為、将来的には、自分のブローカーのサイトから直接取引を行うことができるようになります。
取引アカウントを追加します。サーバの番号と名前を追加し、そこに接続する為のパスワードを入力してください。
ウェブプラットフォームのインターフェイスは、デスクトップ版と同じなので理解しやすいです。現在利用可能な主要な機能:
- あらゆるタイプの取引操作の実行:成行注文と指値注文の発注
- マーケットウォッチでリアルタイムの相場を表示
- カスタマイズ可能な相場チャート
- 9つの期間のチャート
- 主要な分析オブジェクト:水平・垂直・トレンドライン、等距離チャンネルとフィボナッチライン
ウェブターミナルの機能はさらに拡張されます。
自分の取引アカウントの操作は、プロフィールの新セクション『取引アカウント』で行うことができます。
- ホスティングとシグナル:仮想ホスティングと取引シグナルの購読への支払いは、支払いシステムを介して直接行うことができます。
ホスティングの支払いの為に、MQL5.communityに移動し、アカウントに入金する必要はありません。これからは、直接プラットフォームで、支払いシステムのうちの一つから支払いを行うことができます。
ご自分に合ったシステムを選択し、支払いを行ってください。
同様に、お客様に合った支払システムを選択していただくだけで、直にターミナルから、有料取引シグナル購読の手続きが行えます。
必要な金額がお客様のMQL5.communityのアカウントに入金され、その後、そこから支払いが行われます。このようにして、ホスティングレンタル やシグナル購読の履歴を常に明瞭にすることができます。また、MQL5.communityのサービスに自身が行った全ての支払いを見ることができます。
- ターミナル:ウェブターミナルへの素早い接続の為のコンテキストメニューのコマンドが追加されました。これからは、プラットフォームから直接 必要な取引アカウントがあるウェブターミナルを開くことができ、その際アカウントやパスワード、取引サーバ名を入力する必要はありません。全て自動で行わ れます。
現時点では、ウェブターミナルはMetaQuotes-Demoのデモサーバ上でのみ利用することができます。あなたのブローカーがMetaTrader 4プラットフォームを更新し、サーバ上でウェブトレードの機能を有効にすると、あなたはウェブターミナルを介して自分のブローカーの取引アカウント上で取引を行うことができます。
- ターミナル:OTP認証の機能を追加しました。OTP(ワンタイムパスワード)の使用は、取引アカウントを使用した作業をより安全に行う為のものです。アカウントへの接続時に、毎回ワンタイムパスワードの入力が要求されます。
ワンタイムパスワードは、iPhone/Android用MetaTrader 4モバイルターミナルで生成されます。
OTPを有効にする方法
ワンタイムパスワードを使用するには、自分の取引アカウントをパスワードのジェネレーター(iPhone/Android用MetaTrader 4モバイルターミナル)と接続する必要があります。OTPの使用はMetaQuotes-Demoサーバ上でのみ利用可能です。あなたのブローカーの取引サーバ上では、新しい機能は、ブローカーが自分のMetaTrader 4プラットフォームを更新し、そこでOTP機能を有効にした後で利用することができるようになります。
モバイルターミナルの『設定』画面に移動し、OTPを選択します。セクションが最初に開かれた時、セキュリティ上の理由から、4桁のパスワードの設定を要求されます。パスワードは、パスワードのジェネレーターに接続する度に入力する必要があります。.
開いているウィンドウで『アカウントに接続する』を選択してください。
次に取引アカウント、アカウント番号、マスターパスワードが開かれているサーバ名を入力してください。『バウンド』オプションはオンにしておく必要があり ます。これは、指定したアカウントのジェネレーターとの結合を解除し、ワンタイムパスワードを使用しない場合にオフにする必要があります。
ウィンドウ上部にある『バウンド』ボタンを押すと、取引アカウントはジェネレーターと接続され、メッセージが表示されます。
同様に、無数の取引アカウントをジェネレーターに接続することもできます。
ワンタイムパスワードは、OTPページの上部に表示されています。その下の青い線は、このパスワードの有効時間を表示しています。有効時間が切れると、パスワードは使用できなくなり、新しいものが生成されます。
追加コマンド:
- パスワードの変更。ジェネレーターへアクセスするためのパスワードを変更する。
- 時間を同期。参照サーバとモバイルデバイスの時間を同期させる。
精度要件としては、ワンタイムパスワードは現在の時間間隔に接続され、その時間はクライアントターミナルとサーバが一致していなければいけません。
デスクトップターミナルでのOTPの使用
ジェネレーターへの接続後、デスクトップターミナルを介して接続を試みると追加のワンタイムパスワードが要求されます。
このパスワードを取得する為には、ご自分のスマートフォンのMetaTrader 4モバイルターミナルを開き、OTPページへ移動し、ワンタイムパスワード取得の確認コードを入力してください。.
MetaTrader 4 Android MetaTrader 4 iPhone - ターミナル:プラットフォームの使用方法についてのチュートリアルビデオシリーズを作製しました。(シグナル、マーケット、仮想ホスティング)これらのビデオはプラットフォームから直接閲覧可能です。
このビデオや、その他のビデオはYoutubeのMetaQuotes Software Corp.公式チャンネルにてご覧いただけます。
- ターミナル:取引シンボルのパラメータリストが大幅に拡張されました。詳細を開くための新しいコマンドが、マーケットウォッチのコンテキストメニューに追加されました。
次のパラメータが追加されました。
- 最小ボリュームーシンボルごとの最小取引量。
- 最大ボリュームーシンボルごとの最大取引量。
- ボリュームステップーボリューム変更ステップ。
- 凍結レベルー市場に近くにある注文とポジションの凍結レベル。注文やポジションの価格が凍結レベルと同等またはそれ以下の場合、対応する注文またはポジションの変更や削除、クローズを禁じます。
- マージン比率ーシンボルタイプに応じて計算されたマージンの初期値からどの部分が徴収されるかを定義します。
- マージン通貨ーマージンの計算通貨。
- 取引ーそのシンボルで取引をすることを許可します。(Full accessーポジションのオープン/クローズの許可、Close onlyークローズのみ、Noー取引の完全な禁止)
- 実行ーシンボルごとの実行タイプ。(即時、指値、カウントダウン)
- トリプルスワップ日ートリプルスワップが適応される曜日。
- 開始日ー金融シンボルの取引を開始した日。
- 最終日ー金融シンボルの取引を終えた日。
- ターミナル:ストラテジーテスターでの実行の為のプログラム選択がとても便利になりました。アドバイザーとインディケーターがあるディレクトリと適合するツリー形式でリストが表示されます。
- Terminal: The tooltips in the list of open orders and trade history now additionally contain information about the reason/source of the placed order.
- Terminal: Hovering a mouse cursor on the group of applied graphical objects now calls a tooltip of the last added object, i.e. the top one. Before the correction, a tooltip of the last object in alphabetical order was displayed.
- Terminal: Information about the PC hardware characteristics and the operating system is now logged to a Journal at the start of the client terminal. Example:
1232015.09.14 14:48:18.486 Data Folder: E:ProgramFilesMetaTrader 42015.09.14 14:48:18.486 Windows 7 Professional (x64 based PC), IE 11.00, UAC, 8 x Intel Core i7 920 @ 2.67GHz, RAM: 8116 / 12277 Mb, HDD: 534262 / 753865 Mb, GMT+03:002015.09.14 14:48:18.486 MetaTrader 4 build 872 started (MetaQuotes Software Corp.) - ターミナル:開いている注文のリストや取引履歴のツールチップに発注理由の表示が追加されました。
- ターミナル:適応されたグラフィックオブジェクトのグループの上にマウスカーソルを置くと、最後に描かれたもの、つまり一番上のオブジェクト がツールチップに表示されます。修正前は、オブジェクトのツールチップには、アルファベット順で一番最後のものが表示されていました。
- ターミナル:クライアントターミナルの起動時の、コンピュータとオペレーションシステムの性能についての記録がログに追加されました。例:
1232015.09.14 14:48:18.486 Data Folder: E:ProgramFilesMetaTrader 42015.09.14 14:48:18.486 Windows 7 Professional (x64 based PC), IE 11.00, UAC, 8 x Intel Core i7 920 @ 2.67GHz, RAM: 8116 / 12277 Mb, HDD: 534262 / 753865 Mb, GMT+03:002015.09.14 14:48:18.486 MetaTrader 4 build 872 started (MetaQuotes Software Corp.) - ターミナル:いくつかのケースで、選択したものの代わりに、最後に追加したグラフィックオブジェクトが削除されるエラーが修正されました。
- ターミナル:等距離チャンネル、回帰チャンネルなどのグラフィックオブジェクト/チャンネルの充填が修正されました。
- ターミナル:『ボリンジャーバンド』インディケータの入力パラメータのチェックが修正されました。
- ターミナル:いくつかのケースで、ニュースの長時間の参照時に、ターミナルがフリーズするエラーが修正されました。
- ターミナル:内部メールの動作が改訂および最適化されました。
- ターミナル:ユーザーインターフェースの翻訳が更新されました。(ポルトガル語、ハンガリー語、チェコ語、ドイツ語)
- ターミナル:高解像度の画面での動作へのインターフェースの適応作業を続けています。
- マーケット:支払システムUnionPayでの直接の製品購入ができるようになりました。
- マーケット:MQL5マーケットの製品データベースの動作が改良および最適化されました。
- マーケット:VPSでのターミナル使用による、MQL5.communityのアカウントを持たない購入が禁止されました。今後はターミナルの設定内でMQL5.communityのアカウントを表示する必要があります。ツール―オプション―コミュニティ
- テスター:エキスパートアドバイザの最適化時に、テストパラメータに設定されているスプレッドの適用が修正されました。以前はいくつかのケースで、設定されたものの代わりに現在のスプレッドが使用されていました。
- MQL4:ArrayCopy関数が修正および最適化されました。動作速度が20%増加し、配列のコピーが修正されました。
- MQL4:いくつかのケースで、MQL4プログラムからグラフィックオブジェクトを削除した際に、ターミナルのクラッシュにつながっていたエラーが修正されました。
- MQL4:文字列として、日付を除いた時間だけ(例、『21:03』)を送信するときの、StringToTime関数の動作を修正しまし た。以前は日付として、UTCタイムゾーンに対応する日付が使用されていました。今後はローカルタイムゾーンの現在の時刻に対応した日付が使用されます。
- MQL4:新しいバージョンのコンパイラの初回起動時の、MQL4プログラムの再コンパイルの速度が改善されました。
- MQL4: 新しい操作*と&が追加され、参照による変数の受信や変数への参照の受信が可能になりました。
- MQL4:いくつかのケースの為のArrayResize関数の動作が修正されました。
- ホスティング:FTPエクスポートの設定移行が修正されました。この設定は、『サービス』タブの『設定』-『FTP』で設定することができます。
- ホスティング:仮想ホスティングの移行ウィザードを再設計し簡素化しました。
- メタエディター:MQL4プログラムのデバッグとプロファイリングの強制停止が修正されました。以前は、いくつかのケースでデバッグとプロファイリングが停止しませんでした。
- メタエディター:ユーザーインターフェイスにチェコ語とタイ語の翻訳が追加されました。
関連記事
-
-
MT5の使い方(MetaTrader5) インストールから~バックテストまで
MT5はMT4に慣れ親しんだトレーダーであれば比較的簡単に移行することができるトレードプラットフォー
-
-
MT4/MT5ダウンロードリンク
各FX会社のMT4/MT5のインストール実行ファイルです。各社のサーバーがどこにあるのかをpingで
-
-
MT4の使い方~インストールから自動売買まで~
MT4はFX業界では9割がた使われているトレードツールです。4という名前からして汎用性がなさそうな印