MT4インジケーターを数分以内にMT5に変える方法
公開: 2021-02-03MT4インジケーターを数分以内にMT5に変える方法: MT4で動作するように作られたエキスパートアドバイザーを変換して、MT5プラットフォームでも動作できるようにしますか?
ここに長い方法はありません!
MQL4コードをMQL5言語コードに簡単に変換する方法をご案内します。 あなたは喜ぶでしょう! 革新的なMetaTraderシリーズの成功の功績はMetaquotesIncにあり、今や彼らはMT5を将来のソフトウェアとしてマークすることを最終的に決定しました。
同社はその努力の大部分をMetaTrader5プラットフォーム(MT5)に集中しているようであり、間違いなく、MT4よりも優れています。
では、どのように移行しますか? 読み続けます!
数分以内にMT4からMT5に切り替える理由
この計画された移行でプログラマーとトレーダーが直面する最大の質問は、 MT4とMT5を同時に実行できないという事実を考慮して、MT5プラットフォームでMQL4言語でコーディングされたエキスパートを効率的に実行するにはどうすればよいかです。
この質問をさらに深く掘り下げると、次のようないくつかの事実に出くわします。
- MT4とMT5は同じプログラミング言語を使用して実行することはできません。 したがって、MT4で動作するようにコーディングされた専門家はMT5で動作せず、シーンを困難にします。
- MT4には非常に退屈で退屈な未来があり、MT4の将来のアップデートに関する発表に続いてそれを引用することができます。 したがって、ソフトウェアには現在十分なジュースがありません。
- MetaquotesはMT5の機能に多くの変更を加えました。これにより、MT4とは対照的に機能上の利点が得られます。
MT4インジケーターをMT5にうまく変える方法:コアプロセス
技術的に不可能と思われるMT5でMT4EAを使用し、MT5で完全に機能させるには、既存のMQ4 EAのソースファイル(その一部の要素)を変更する必要があります。
MQL4の言語と環境がMQL4のものとどのように異なるかについて十分な知識がある場合は、確かに、これらすべての変更を実行できます。
ここでは、Average.mq4EAによるMT4EAの助けを借りたMT4EAからMT5フォーマットへの変換をデモンストレーションします。 それを選択した理由は、第一に、すべてのMT4インストールがプリインストールされていること、そして第二に、プログラマーの大多数がこのEAに精通していることです。
「平均移動平均.mq4」の例を使用してMT4EAをMT5EAに変換する
- MetaEditor 4には、「MQL4 \ Experts\MovingAverage.mq4」という名前のソースファイルがあります。これを開く必要があります。
- Ctrl + A、Ctrl + Cを押して、[+すべてのテキストをコピー]を選択します。
- F4キーを押してMetaEditorを開くと、MT4クライアントターミナルが開いていることがわかります。
- 目的のブローカーからMT5デスクトップターミナルを正常にダウンロードしたら、MT5クライアントのインスタンスを開きます。
- 次に、MetaEditor 5を開き、新しいEA(テンプレート)を作成します。これは、ここで示したようなものです。
- 「名前」フィールドに入力し、EAテンプレートに適切な名前を割り当てます。 それが済んだら、次のEAをMT5上に構築することができます。
- ここで、Ctrl + Aをタップしてテンプレート上のすべてのテキストを選択し、それらをすべて削除した後、MT4からコピーしたテキストを貼り付けます。
MetaTrader 5には、他の注文システム(たとえば、開く、閉じる、選択、送信など)メソッドが付属しています。 ただし、MT4からMT5 EAへの変換では、専門家による最も簡単な方法は、1つのライブラリ( mq4.mqh)を使用することです。
さらに遠く…
プログラマーがMQL4と同じようにMQL5の注文を操作できるようにするため、このライブラリーをお勧めします。 つまり、ライブラリにより、OLS(順序言語システム)がMQL4と同様になることが許可されます。
選択したプログラマーからオンラインでmq4.mqhライブラリファイルを入手できます。 そのようなプログラマーから私たちのものを入手した後、私たちは少し機能を追加しました。 すべてを1つのファイルにまとめました。 このライブラリは、注文システムのみを対象としています。
- MT5プラットフォームのインスタンスが開いていることを確認します
- MT5プラットフォームを開いたら、[ファイル]->[データフォルダーを開く]…\MQL5\Includeをタップします。
- ライブラリファイル(mq4.mqh)をこのフォルダーにドロップします。
- MT5プラットフォームの更新は今重要です。 それを閉じて、もう一度開きます。
- 次に、MetaEditor5とエキスパートアドバイザーのソースコードを開きます。
- SimpleEA.mq5のソースコードに、次の文字列を追加します。 #include <mq4.mqh>
- ソースコードに文字列を追加したら、「F7」ボタンを押して、SimpleEA.mq5のソースコードをアセンブルします。 また、MetaEditor5のツールバーに記載されている「コンパイル」オプションがあります。
- 組み立てが完了すると、2つのエラーが発生します。 ここで、MT4プラットフォームとMT5プラットフォームの違いが強調されています。
MetaEditor 4でiMAを書くだけです。ここで、「シフト」はプライスキャンドルの番号です。 ハンドルは、そのハンドルによってEA /インジケーターから値を取得するために、MetaEditor5上のすべてのEAおよび関数に対して作成される必要があります。
MT4インジケーターをMT5に変える方法:ソースコードを変更する
このパートでは、MT4のソースコードを編集して、MT5で完全に機能するようにすることに焦点を当てます。 ここで変更するのはソースコードの1行だけなので、これらのソースコードの変更はインジケーターにのみ適用されます。
それでは、これらの変更を実行する手順について説明しましょう。 しましょうか?
- プロセスを開始するためのMAインジケーターハンドルの可変整数型を作成します。
- INVALID_HANDLEという値を割り当てます。 下の写真は同じことを説明しています。
エキスパートアドバイザーとインジケーターには、実行時の初期化用のOnInit()セクションが付属しています。 フォームは次のようなものです。
ヘルプファイルを使用してこれを読むことができます。 MetaEditor5のヘルプファイルにアクセスするには、「F1」キーをタップするだけです。 また、MQL5コミュニティには1つのドキュメントがあり、ヘルプファイルで見つけることができる多くの情報を提供します。 このドキュメントにアクセスするには、このリンクを使用してください–
https://www.mql5.com/en/docs/basis/function/events
- さらに、このコード(ソースコード)をEAのテキストに追加します。 このセクションがない場合は、MetaEditor5からAlt+Mを押します。
- 関数リストには5つの関数が表示されますが、OnInit()関数はデフォルトでは存在しないことがわかります。 したがって、手動でナレーションを付ける必要があります。下の画像は、その作成方法を示しています。
- OnInit()関数がソースコードとペアになっていることを確認するには、Alt+Mをタップするだけです。
- ここで、OnInit()セクションに次のコードを記述します。
MT4 MetaEditorでは、通常、次のコードを記述する必要があります。
一方、コードはMT5のインジケーターのハンドルとしてナレーションされているため、MT5で次のコードを記述します。
- ここで、移動平均EAから値を取得するには、次の画像に表示されるハンドルを使用して関数を記述します。
前に説明したように、MetaEditor5を使用してEA /インジケーターの値を取得するには関数を作成する必要があり、値を取得するために使用する関数には、CopyBuffer()と呼ばれる文字列があります。
その仕事は、インジケーターから配列にデータをコピーすることであり、特定の量の特定のインジケーターの特定のバッファーのデータを取得します。
リンク-https://www.mql5.com/en/docs/series/copybufferにアクセスして、利用可能なドキュメントを読んでください。
コードは次のようなものです。
MAには「0」として番号が付けられた1つのバッファがあります。 ここで、MAから1つの値をコピーします。 MetaTrader4では次のように書かれています:
最後の「0」は、チャートの最後のキャンドル(ゼロキャンドル)のMAの値と一致します。 MT5 MetaEditorでは、次のように記述されます。
- インデックス位置から、1つの値をMA配列にコピーする必要があります。
- コードをコンパイルしている間、最初に両方のエラーをクリアするために移動します。 これを行うには、最初のレコードエラーを指摘し、それをダブルクリックします。
- 次に、EAのMT5のソースコード内のエラーの場所に移動します。 このインスタンスの114行目にエラーコードが表示されます。
- エラーを示す行を削除し、MaGet(0)コードを含む文字列に置き換える必要があります。これは、ここで示した方法です。
エラーコードには常に赤インクで下線が引かれ、その真下にma MaGet(0)コードがあります。
- エラーコードを削除してMaGet(0)文字列を入力したら、F7キーを押して、コードをもう一度コンパイルできます。
- ソースコードをコンパイルした後、エラーが1つだけ表示されることに気付くでしょう。
- この最後のエラーコードを置き換えるには、前のエラーコードをクリアするときに採用したのと同じシーケンスに従う必要があります。 エラーコードの行に到達し、それをダブルクリックしてコメントし、置き換えます! それでおしまい!
- エラーコードの下に緑色のインクが表示されます。 すぐ下に、エラー部分を置き換えるコードがあります。 これがエラーを排除する方法です。
置換には次の文字列を使用する必要があり、現在、次のようになっています。
if(Open [1]> MAGet(0)&& Close [1] <MAGet(0)
- エラーコードにコメントを付けて置き換えた後、コードのコンパイルは必須です。 F7キーをタップして以前に行った方法でソースコードをコンパイルした後、すべてのエラーが削除されていることがわかります。
- MT4EAをMT5で使用できる適切なバージョンに変換するプロセス全体をカバーしました。 その結果、MT5プラットフォームで便利に実行できるようになりました!
MT4インジケーターをMT5に変える方法:結論
一見すると、 MT4インジケーターをMT5に変える方法は答えるのが難しい質問のようですが、上記の方法でこれが実現します。 MetaEditor 5プログラミングインターフェイスでプログラム全体を構築することがどれほど哀れなことか想像してみてください。それもまた、ゼロからです。
幸い、ショートカットが利用可能でした。ここでも同じことを説明しました。 最近ではMT5の利用が大幅に増えており、MT4からMT5への切り替えに関しては、新たな手法も登場することが予想されます。 MT5プラットフォームは継続的に開発されています。
MT5プラットフォームは多くの変更を経ており、今後も、さらにいくつかの機能が追加されることを期待しています。 間違いなく、MT4よりもはるかに優れています。
Forex Tradeの初心者ですか、それとも現在のForex VPSホスティングプランに不満がありますか?
さて、AccuwebホスティングのForexプランは、Forex VPSホスティングの新しいベンチマークを設定し、6つの異なる価格で非常に便利なプランを提示します。
ユーザーはこれらのプランでの外国為替取引の経験に陽気であり、あなたが外国為替に不慣れであるならば、チャンスを逃さないでください! 7日間の無料トライアルも受けられます。 詳細については、こちらをタップしてください。