メタトレーダー5を始めるには - ページ 110

 
Sergey Golubev:

と以下の記事-。



私は新人です、助けていただけますか?

 
armynnoow:

初心者なんだけど、助けてくれる?


初心者向けの投稿が1件あります(「何から始めればいいのか」について)-。

取引、自動取引システム、取引戦略のテストに関するフォーラム

メタトレーダー5を始めるには

セルゲイ・ゴルベフ, 2017.10.03 06:39

初心者の方だけに(例えばこのサイトに初めてアクセスされた方) - 以下の記事・投稿・スレッドを読まれることを強くお勧めします - 。

============

1.ユーザーメモ

取引、自動売買システム、取引戦略のテストに関するフォーラム

メタトレーダー5を始めるには

セルゲイ・ゴルベフ, 2016.12.30 17:26

投稿にコードを挿入する方法についての注意事項(新規ユーザー/初心者向け) -ここを 読んで、記事を全部読んでください。MQL5.community - ユーザーメモ



2.フォーラム/mql5ポータルで検索を行う方法



3.サマリー

3.1.MT5の始め方、まとめ!(前スレ含む:MetaTraderとFXの始め方、はじめに)
MetaTrader4ヘルプ - クライアント端末 - ユーザーガイド
MetaTrader5ヘルプ - 取引プラットフォーム - ユーザーマニ ュアル

3.2.ストラテジーテスター、最適化、クラウドについてのすべて(まだない) 情報

3.3.ASCTREND SYSTEMの概要(2つの優れたEAを含む)

3.4.BRAINTRADING SYSTEM HowTo

3.5.PriceChannel Parabolic システム(2つのEAを含む)

3.6.マーケットコンディション評価(2つのEAを作成)

3.7.イチモク

3.8.金融・トレーディングビデオ - 目次

3.9.カレンダータブとマクロ経済 イベントのすべて

3.10MQL5ウィザードのすべて : プログラミングなしでロボットを作成 する

============

4.最初の重要な記事:
MetaTrader 5 - More Than You Can Imagine!

============

5.2 つ目の重要な記事:
MetaTrader 5 と MQL5 で無限の可能性

============

6.MT5にブローカーを追加する方法。

6.1.MetaTrader 5 ヘルプ -口座を 開設する

6.2.MetaTrader 5 Android OS ヘルプ -デモ口座の 開設

6.3. MetaTrader 5 iPhone/iPad ヘルプ -口座への接続とデモ口座 の開設

============

7.シグナル

============

8.マーケット

============

9.MT4/MT5用のMQL5 VPS

9.1.VPSの購読方法https://www.mql5.com/en/forum/187872#comment_4851530

9.2.あるアカウントから別のアカウントにVPSのサブスクリプションを移動することができます
https://www.mql5.com/en/forum/172120#comment_4166892

9.3.MQL5 VPSの説明
https://www.mql5.com/en/forum/172553#comment_4185979

9.4.VPSを監視する
https://www.mql5.com/en/forum/188920#comment_4800677

9.5.同期 -
https://www.mql5.com/en/forum/211508

============

10.ブローカー

10.1.ブローカー名でサーバを探す:
https://www.mql5.com/en/forum/9950/page88#comment_3981953
https://www.mql5.com/en/forum/214820

10.2.初心者のためのヘルプ
https://www.mql5.com/en/forum/214904

10.3.米国のブローカー
https://www.mql5.com/en/forum/12423/page500#comment_4736742

============

11.プロモーション:
https://www.mql5.com/en/forum/9950/page88#comment_3982032
https://www.mql5.com/en/forum/9950/page88#comment_3982030
https://www.mql5.com/en/forum/9950/page88#comment_3982036

============

12.フリーランス、デコンパイル、ルール、デコンパイルされたコードの例:
https://www.mql5.com/en/forum/203200

============

13.フォーラムにおける一般的なルールとベストプラクティス

13.1.議論するスレッド

13.2.フォーラムのルール

============

14.スレッドについてのスレッドどこでもフォーラムの周り何が起こっている
あなたが新しい、モダンな何かを探している場合は良いスレッド(とフリー1)。

============

15.MT5、mql5、mql5.com改善スレッドのための提案

============

16.トピックを購読したり、トピックに人を招待する方法-スレッド

============


 

MetaEditor(メタトレーダーと一緒にアップデートされるもの)が大幅にバージョンアップしました。
たくさん!?
コード保護、プロジェクト、その他もろもろ。

自分で探してみてもいいし、今週中に公開されるリリースを待ってもいい。

参考までに。

 

特にMetaEditorのアップデートは非常に興味深いので、勉強が必要そうです -。

------------------

取引、自動売買システムとテストの取引戦略に関するフォーラム

MetaTrader 5プラットフォームベータ版1700。MetaEditorと合成金融商品でのプロジェクト

MetaQuotes Software Corp., 2017.12.05 14:33

MetaTrader 5 Platform Beta Build 1700。MetaEditorと合成金融商品でのプロジェクト

更新されたMetaTrader 5プラットフォームのベータ版は、2017年12月6日にリリースされる予定です。access.metatrader5.com:443にある公開MetaQuotes-Demoサーバーを更新します。更新されたプラットフォームの機能を評価し、開発者がエラーを修正するのを助けるために、すべてのトレーダーにテストに参加するよう呼びかけます。

MetaTrader 5 プラットフォームをビルド 1700 にアップデートするには、access.metatrader5.com server:443 に接続します。

新しいMetaTrader 5プラットフォームの最終ビルドは、パブリックベータテスト後にリリースされる予定です。

旧バージョンのターミナルサポート終了について
デスクトップおよびモバイル端末の旧バージョンのサポートは、新プラットフォームのバージョンのリリースと同時に終了します。
  • クライアントターミナル:730以下のバージョン、2012年11月23日現在
  • モバイルターミナル(iPhone用):1171以下のバージョン、2015年11月11日
  • モバイルターミナル for Android:1334以下のバージョン、2016年8月5日
サポートされていないターミナルビルドは、新しいサーバーバージョンに接続することができません。事前に端末をアップデートすることを強くお勧めします。

MQL5 ストレージオペレーションプロトコルの変更
新しい共有プロジェクトに対応するため、MQL5 Storageとの操作プロトコルを更新しました。そのため、プラットフォームアップデート後にストレージの全データのチェックアウトを実施する必要があります。MQL5 Storageに保存されているデータは、アップデート中に失われたり、影響を受けたりすることはありません。

プラットフォームを新しいバージョンにアップデートする前に、コミット操作を実行して、すべてのローカルの変更をMQL5 Storageに送信することをお勧めします。

このアップデートでは、以下の変更が行われます。

  1. MetaEditorでフル機能のプロジェクトが利用できるようになりました。プログラム開発工程がより便利になりました。

    現在、メインのMQ5プログラムファイルは、プロジェクトとして表示されません。プロジェクトは独立した "MQPROJ "ファイルで、プログラム設定、コンパイルパラメータ、使用するすべてのファイルに関する情報を保存します。メイン・プロジェクトの設定は、別のダイアログ・ボックスからアクセスできるため、現在では#propertyを介してソース・コードで指定する必要はありません。

    ナビゲータに別のタブが用意され、プロジェクトで便利に作業できるようになりました。インクルードファイル、リソースファイル、ヘッダーファイルなど、すべてのファイルがこのタブでカテゴリに分類されます。すべてのファイルは、プロジェクトナビゲータに自動的に追加されます。例えば、新しいMQHファイルをインクルードすると、ナビゲータの「Dependencies」セクションに自動的に表示されます。

    新しいプロジェクトのサポートは、更新されたMQL5 Storageオンラインリポジトリにも実装されています。これは、MQL5.コミュニティの他のメンバーとのコラボレーションによる大規模なプロジェクトを開発するための便利なオプションです。

    グループプロジェクトのために、新たにShared Projectsセクションが用意されました。このセクションで作成されたプロジェクトは、すぐにストレージに送信されます。他のユーザーに権限を付与し、すぐにコラボレーションを開始することができます。





    Shared Projects でプロジェクトをコンパイルすると、プログラムの種類に応じて、実行可能な EX5 ファイルがローカルの Experts、Indicators、Scripts ディレクトリに自動的にコピーされます。ファイルを手動でコピーすることなく、チャート上で簡単にプログラムを起動することができます。


    MQL5ストレージ操作の新機能
    新しい共有プロジェクトのサポートを実装するために、MQL5 Storageとの操作プロトコルを変更しました。そのため、プラットフォームのアップデート後に、ストレージからすべてのデータのチェックアウトを行う必要があります。なお、アップデート中にMQL5ストレージに保存されているデータが消失したり、影響を受けたりすることはございません。
    プラットフォームを新しいバージョンに更新する前に、コミット操作を実行して、すべてのローカルな変更をMQL5ストレージに送信することをお勧めします。
    ストレージからのチェックアウト」コマンドは、Shared Projectsでのみ使用できるようになりました。MQL5フォルダ内の他のカタログでは、'Activate MQL5 Storage' と 'Update from Storage' コマンドが使用されます。

    • 現在のMetaEditorインスタンスでMQL5ストレージを使用していない場合は、Navigatorウィンドウのコンテキストメニューで「MQL5ストレージを有効にする」をクリックします。ストレージで利用可能なすべてのカタログとファイルが、ローカルコンピューターにアップロードされます。
    • すでにストレージで作業している場合は、ナビゲーターのルートMQL5要素のコンテキストメニューで「ストレージからファイルを更新」をクリックし、ストレージからすべてのデータを受信します。


    新規プロジェクト。作成と操作の詳細の例
    MetaEditorに新しいプロジェクトエンティティが追加されました。プロジェクトとは、共通のプログラムプロパティと、使用する全てのファイルに関する情報を保存するmqprojファイルのことです。これにより、ソースコード内のプロパティを手動で変更する(#propertyディレクティブを使用する)代わりに、別のMetaEditorダイアログからプログラムのプロパティを便利に管理することができます。

    利用可能なコードがある場合、「ソースから新規プロジェクト」コマンドを使用して、新しいプロジェクトを簡単にテストすることができます。




    選択したファイルがあるディレクトリに、同じ名前で拡張子がmqprojの新しいプロジェクトファイルが作成されます。名前、著作権、バージョン、開発者のサイトへのリンク、プログラムの説明など、ソースコードで#propertyを介して指定された主なプログラムのプロパティがプロジェクトに自動的に追加されます。
    プロジェクト ファイル内のプログラム プロパティ セットは、プログラム コード内で指定されたプロパティよりも優先度が高くなります。プロジェクトとソースファイルの両方でプロパティが指定されている場合、プロジェクトのプロパティが使用されます。




    MQL5プログラムをコンパイルするための2つの新しいオプションが、プロジェクトのプロパティに追加されました。

    • 追加最適化を有効にする:最適化を無効にしたアプリケーションは、コンパイルは速くなりますが、実行は遅くなります。
    • 浮動小数点数の除算をチェックする:コード実行中にゼロ除算エラーがチェックされないため、チェックを無効にしたアプリケーションの動作が若干速くなります。

    プロジェクトで作業するには、Navigatorウィンドウの独立したプロジェクトタブを使用します。プロジェクトで使用されるすべてのファイルは、このタブに便利な形で表示されます。ソースファイルからプロジェクトが生成されると、使用されるすべてのインクルードファイル(メインのMQ5ファイルとそのインクルードファイルで#includeディレクトリを使用して指定)が自動的に「Dependencies」セクションに追加されます。

    新しいインクルード・ファイルがソース・コードに追加されると、プロジェクト・ナビゲーターにも表示されます。使用されたヘッダーファイルはHeaderセクションに追加され、リソースとしてプロジェクトで使用されるイメージ、サウンド、その他のMQL5プログラムはResourcesセクションに追加されます。ソースコード付きのMQ5ファイルは、「Sources」セクションに表示されます。設定とファイル」セクションには、テスト用のセットファイルやチャートテンプレートなど、その他のファイルを追加することができます。

    プロジェクトに既存のファイルを追加したり、プロジェクトからファイルを削除するには、コンテキストメニューコマンドを使用します。ファイルを削除する場合、プロジェクトからの削除(バインディングの削除)、ハードディスクからの完全削除が可能ですので、注意が必要です。



    新しいプロジェクトの作成は、通常のMQL5プログラムの作成と同じように簡単に行えます。新規プロジェクト」をクリックし、新規プログラムの種類を選択し、MQL5ウィザードでプロパティ(名前、イベントハンドラなど)を指定します。

    実行可能なEX5ファイルを取得するには、プロジェクトを開いてF7キー(コンパイルコマンド)を押すか、プログラムのメインMQ5ファイルを開いてコンパイルします。

    MQL5ストレージの共有プロジェクト。操作の詳細
    共有プロジェクトは、別のShared Projectsセクションから管理します。まだストレージに接続していない場合は、目的のフォルダのコンテキストメニューから'Activate MQL5 Storage'コマンドを実行します。MetaEditorはストレージに保存されたデータがあるかどうか、利用可能な共有プロジェクトがあるかどうかを確認します。利用可能なデータはすべてストレージから取得され、コンピューターにアップロードされます(チェックアウト操作)。利用可能なグループプロジェクトは、「共有プロジェクト」セクションに表示されます。プロジェクトを取得するには、コンテキストメニューから「ストレージからチェックアウト」を実行します。

    新しいグループプロジェクトを作成するには、Shared Projects フォルダを選択し、「New Project」をクリックします。



    その後、MQL5の標準的な手順を実行します:目的のプログラムのタイプ、名前、プロパティを設定します。グループプロジェクトでは、他の参加者が簡単に見つけられるように、明確でわかりやすい名前を使用する必要があります。プロジェクト名には、スペースを含まないラテン文字のみを使用することができます。

    作成されたオブジェクトは、すぐにMQL5ストレージに追加されます。プロジェクトで使用されている標準ライブラリ ファイルはストレージに追加されず、手動で追加することができます。

    他の参加者がプロジェクトで作業できるようにするには、そのプロパティを開きます。ここから、MQL5.communityのログインを指定して選択したユーザーに権限を付与したり、グループ作業用の共通パラメータを設定することができます。

    • プライベートプロジェクト
    • 無料で参加できるプロジェクト
    • リクエストプロジェクトに参加する



    グループプロジェクトをコンパイルすると、プログラムの種類に応じて、実行可能なEX5ファイルがローカルのExperts、Indicators、Scriptsディレクトリに自動的にコピーされます。これにより、手動で適切なディレクトリにコピーすることなく、ターミナルで即座にプログラムを実行することができます。

  2. ターミナルこの取引プラットフォームでは、合成金融商品、つまり、1つまたは複数の既存の金融商品に基づいたシンボルを作成することができます。ユーザーは相場の計算式を設定する必要があり、その後、プラットフォームはリアルタイムで合成金融商品のティックを生成し、その分履歴を作成することができます。

    どのように機能するか
    • あなたは、合成楽器を作成し、価格計算のための式を設定します。
    • プラットフォームは、数式で使用される金融商品の少なくとも1つの価格が変更されていることを条件に、1秒間に10回の頻度でティックを計算します。
    • また、計算式に使用されている金融商品の分足バーを基に、1分足バーの履歴(過去2ヶ月分)を計算します。すべての新しいバー(現在とそれ以降)は、合成インストルメントの生成されたティックを基にリアルタイムで構築されます。
    例えば、ドルインデックス(USDX)を表示する金融商品を作成することができます。これは以下の計算式を使用します。
    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)
    注: USDEUR および USDGBP ペアは、ソース ドル インデックス式で使用されます。プラットフォームではリバースペアのみが利用可能なため、合成シンボル式では負のパワーとBidの代わりにAskが使用されます。

    プラットフォームは、ブローカーから提供された他の6つのシンボルの相場に基づいて、新しい楽器の価格をリアルタイムで計算します。価格の変化は、マーケットウォッチウィンドウとチャート上に表示されます。



    新しいカスタムシンボルを作成し、その仕様を開き、数式を入力します。



    数式エディタでは、シンボルと関数の名前を入力すると、可能なオプションのリストが表示され、便利です。

    合成商品のティックと1分足の計算は、この商品が Market Watch に追加された時点で開始されます。また、合成価格の計算に必要なシンボルもすべて自動的に Market Watch に追加されます。計算開始に関するエントリーは、プラットフォームジャーナルに追加されます。Synthetic Symbol USDX: 処理が開始されました。
    • 合成商品の計算は、マーケットウォッチから削除されると停止します。
    • 現在、合成シンボル価格の計算に使用されているシンボルは、Market Watch から非表示にすることはできません。

    相場のリアルタイム計算
    100 ms ごとに(つまり 1 秒に 10 回)、計算に使用されるシンボルの価格がチェックされます。そのうちの少なくとも1つが変更された場合、合成シンボルの価格が計算され、新しいティックが生成されます。計算はBid、Ask、Last価格の3つのスレッドで並行して行われます。例えば、計算式がEURUSD*GBPUSDの場合、合成シンボルの価格は以下のように計算されます。

    • ビッド = ビッド(EURUSD)*ビッド(GBPUSD)
    • アスク = アスク(EURUSD)*アスク(GBPUSD)
    • ラスト = ラスト(EURUSD)*ラスト(GBPUSD)

    変更の可否は各価格ごとに個別にチェックされます。たとえば、ソース商品の入札価格のみが変更された場合、合成商品の適切な価格のみが計算されます。

    分足バーの履歴の作成
    リアルタイムでティックを収集するだけでなく、プラットフォームは合成楽器の分単位の履歴を作成します。これにより、トレーダーは通常のチャートと同様の合成シンボルチャートを表示したり、オブジェクトやインジケータを使用してテクニカル分析を行うことができます。

    トレーダが合成商品を Market Watch に追加すると、計算された分単位の履歴が存在するかどうかが チェックされます。存在しない場合は、過去 60 日間の履歴が作成され、これには約 50,000 本のバーが含まれます。プラットフォーム設定の「Max.bars in chart」パラメータにこれより低い値が指定されている場合は、適切な制限が適用されます。

    この期間内のバーの一部が既に作成されている場合、プラットフォームは新しいバーを追加で作成します。ユーザーがチャート上で古い期間を表示しようとした場合(スクロールバックやMQL5プログラムからのアクセス)、より深い履歴が作成されます。

    合成商品の1分足の履歴は、計算式に使用されている商品の1分足(ティックではありません)を基に計算されます。例えば、合成シンボルの1分足の始値を計算する場合、プラットフォームはその計算式で使用されるシンボルの始値を使用します。高値、安値、終値も同様に計算されます。

    必要なバーがいずれかの金融商品で利用できない場合、プラットフォームは前のバーの終値を使用します。例えば、3つの商品が使用されているとします。EURUSD、USDJPY、GBPUSDです。12:00に対応するバーの計算で、USDJPYの必要なバーが利用できない場合、次の価格が計算に使用されます。

    • オープンEURUSDオープン12:00、USDJPYクローズ11:59、GBPUSDオープン12:00
    • 高値:EURUSD高値12:00、USDJPY終値11:59、GBPUSD高値12:00
    • 安値: EURUSD安値12:00、USDJPY終値11:59、GBPUSD安値12:00
    • 閉じるEURUSD終値12:00、USDJPY終値11:59、GBPUSD終値12:00

    分足バーが計算式に使用されるすべての商品で利用できない場合、合成商品の適切な分足バーは計算されません。

    新しい分バーの描画
    合成商品のすべての新しいバー(現在およびそれ以降のバー)は、生成されたティックを基に作成されます。バーを構築するために使用される価格は、仕様のチャートモードパラメータの値に依存します。




    シンボル・フォーミュラで使用できる操作について
    ブローカーが提供する価格データおよび既存のシンボルの一部のプロパティを、合成価格の計算に使用することができます。以下を指定します。

    • Symbol name - 計算する合成価格に応じて、指定した商品のBid、Ask、Lastが使用されます。たとえば、EURUSD*GBPUSD が指定された場合、Bid は bid(EURUSD)*bid(GBPUSD) として計算され、Ask = ask(EURUSD)*ask(GBPUSD) として計算されます。
    • bid(symbol name) - 指定されたシンボルの買値は、合成商品の買値を計算するために強制的に使用されます。このオプションは、前のオプション (価格の種類が指定されていない場合) に似ています。
    • ask(symbol name) - 指定されたシンボルの売呼値は、合成商品の買呼値を計算するために使用されます。指定された金融商品の買値は、Ask を計算するために使用されます。指定されたシンボルの最終価格は、最終の計算に使用されます。ask(EURUSD)*GBPUSDが指定された場合、以下の計算が行われます。
      • Вid = ask(EURUSD)*bid(GBPUSD)
      • アスク = ビッド(EURUSD)*アスク(GBPUSD)
      • ラスト = last(EURUSD)*last(GBPUSD)
    • last(シンボル名) - 指定されたシンボルの最後の価格は、合成商品のすべての価格(入札、アスク、最後)の計算で使用されます。last(EURUSD)*GBPUSD が指定された場合、次の計算が使用されます。
      • Вid = last(EURUSD)*bid(GBPUSD)
      • アスク=last(EURUSD)*ask(GBPUSD)
      • ラスト = last(EURUSD)*last(GBPUSD)
    • volume(シンボル名) - 指定された商品のティックボリュームが数式で使用されます。ボリューム情報がこのシンボルのブローカーによって提供されていることを確認します。
    • point(シンボル名) - 指定された商品の最小価格変動が計算で使用されます。
    • digits(シンボル名) - 指定されたシンボル価格の小数点以下の桁数が計算式で使用されます。

    シンボルの名前が複雑な場合(ハイフン、ドットなどを含む)、引用符で囲んで記述する必要があります。例"RTS-6.17 "のようになります。
    加算(+)、減算(-)、乗算(*)、除算(/)、除算余り(%)の算術演算が計算式に使用できます。例えば、EURUSD+GBPUSDは、EURUSDとGBPUSDの価格の合計として計算されることを意味します。また、単項のマイナスを使用して、例えば、-10*EURUSDのように符号を変更することができます。

    算術演算の優先順位に注意してください。

    • 乗算、除算、余りの演算が最初に行われ、次に加算と減算の演算が行われます。
    • 演算は、左から右の順に実行されます。数式で同じ優先順位の演算(乗算と除算など)を複数使用する場合は、左側の演算が先に実行されます。
    • 大括弧(および)を使用して、演算の優先順位を変更することができます。括弧内の演算は、計算の優先順位が最も高くなります。左から右への原則は、これらにも適用されます。左側の括弧内の演算が先に計算されます。

    計算式に定数を使用することができます。

    • 数値演算(整数と浮動小数点)。例eurusd*2+gbpusd*0.7.
    • 記号のプロパティ _Digits および _Point。これらは、仕様にあるカスタム シンボルの適切なプロパティを数式に追加します。桁数] は機器価格の小数点以下の桁数、[ポイント] はシンボル価格の最小の変化量を表します。

    MathSrand、MathRand、MathIsValidNuberを除く、MQL5でサポートされているすべての数学関数を 数式内で使用することもできます。すべての関数には、fabs()、acos()、asin()などの短い名前のみが使用されます。

  3. ターミナル。新しいオプションが実装され、リアルタイムでカスタム商品のクォートを追加することができるようになりました。これにより、指定されたカスタムシンボルの価格を供給するMQL5 Expert Advisorを開発することが可能になりました。CustomTicksAdd 関数がそのために使用されます。
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    CustomTicksAdd関数は、あたかもブローカーのサーバーから受信したかのような気配値をフィードすることができます。データは、ティックデータベースに直接書き込まれるのではなく、Market Watch ウィンドウに送信されます。そして、端末は Market Watch からデータベースへティックを保存します。一回の呼び出しで大量のデータが渡された場合、リソースを節約するために関数の動作が変更されます。256ティック以上のデータが転送された場合、データは2つに分割されます。大きな部分はティックデータベースに直接記録されます(CustomTicksReplaceと同様)。最後の128ティックからなる2番目の部分は、マーケットウォッチに送信され、そこから端末がティックをデータベースに保存します。

  4. MQL5です。新しいオンラインサービスMQL5 Cloud Protectorが追加され、MQL5プログラムに追加の保護を提供します。この保護機能は、取引アプリケーションの最大のストアであるMetaTrader Marketで 使用されているオプションに似ており、販売者から提出されたEX5製品ファイルは、追加でネイティブコードにコンパイルされます。

    現在、このタイプの保護は、すべてのプラットフォーム ユーザーが利用できます。ファイルを保護するには、MetaEditorで次のコマンドを実行します。ツール-MQL5クラウドプロテクターMQL5 Cloud ProtectorがMarketで使われている仕組みと唯一違う点は、ファイルがユーザーのコンピューターにリンクされていないことです。MQL5 Cloud Protectorで保護されたファイルは、一般的なEX5ファイルと同様に、どのコンピューター上でも実行することができます。
    MQL5 Cloud Protectorは安全なサービスです。追加保護はコンパイルされたファイルに対してのみ適用されます。ソースコードはサービスに渡されません。まず、ユーザーのパソコンでEX5ファイルにコンパイルされ、その後、コンパイルされたファイルが暗号化された経路でサービスに送られ、そこで保護されてユーザーに返却されます。



  5. ターミナルマーケットウォッチウィンドウに高値と安値が追加表示されるようになりました。これらの列はデフォルトでは非表示になっています。コンテキストメニューで有効にすることができます。




    シンボルチャートが入札価格を使用して構築されている場合(仕様設定による)、このシンボルの入札高値と入札安値が表示されます。シンボルチャートがLast priceを使用して構築されている場合、このシンボルのLast HighとLast Lowが表示されます。

    Market Watch に Last price でチャートを作成するシンボルが 1 つ以上ある場合、High/Low に加えて Last 欄が自動的に有効になります。

  6. ターミナルカスタム金融商品のティック履歴を編集することができるようになりました。Market Watch のコンテキストメニューから「Symbols」をクリックし、カスタムシンボルを選択し、Ticks タブで必要なデータ間隔を要求します。

    • ダブルタップして値を変更します。
    • コンテキストメニューを使用して、エントリーを追加または削除します。
    • 複数のバー/ティックを一度に削除する必要がある場合、ShiftまたはCtrl+Shiftを押しながらマウスで選択してください。



    便宜上、変更された項目は以下のようにハイライト表示されます。

    • 緑色の背景は、変更されたエントリーを表します。
    • 灰色の背景は削除されたエントリーを意味します
    • 黄色の背景は、追加されたエントリーを示します

    変更を保存するには、ウィンドウの下部にある「変更を適用」をクリックします。

  7. ターミナルQuotesウィンドウにミリ秒単位での時間表示を追加しました。




  8. ターミナル新規アカウント開設ダイアログで、利用可能なサーバーのスキャンがより速くなりました。
  9. ターミナルRay Left と Ray Right オプションを有効にした場合のトレンドライングラフィックオブジェクトの表示を修正しました。
  10. ターミナルTerminal: 大量の社内メール(数十万通)がある場合の動作を最適化しました。
  11. ターミナル大量の取引ツール(50,000以上)を使用する場合のターミナルの動作を最適化しました。
  12. MQL5:カスタム金融 商品を扱うための新機能が追加されました。

    機能 動作内容
    カスタムシンボル作成 指定されたグループに指定された名前のカスタムシンボルを作成します。
    カスタムシンボル削除(CustomSymbolDelete 指定された名前のカスタムシンボルを削除します。
    CustomSymbolSetInteger カスタム シンボルの整数型プロパティの値を設定します。
    CustomSymbolSetDouble カスタムシンボルの実数型プロパティの値を設定する
    CustomSymbolSetString カスタム シンボルの文字列型のプロパティ値を設定する
    CustomSymbolSetMarginRate(カスタムシンボルのマージン率設定 カスタム シンボルの注文タイプおよび方向によってマージン率を設定する
    CustomSymbolSetSessionQuote(カスタムシンボルセッションクォート 指定されたシンボルと曜日について、指定された相場セッションの開始と終了の時刻を設定する
    カスタムシンボルセッショントレード(CustomSymbolSetSessionTrade 指定されたシンボルと週日の指定された取引セッションの開始と終了の時刻の設定
    カスタムレートデリート(CustomRatesDelete 指定された時間間隔でカスタムシンボルの価格履歴からすべてのバーを削除する
    カスタムレートリプレイス 指定された時間間隔内のカスタムシンボルの価格履歴をMqlRates型配列からのデータで完全に置き換える
    CustomRatesUpdate カスタムシンボルの履歴に欠落しているバーを追加し、既存のデータをMqlRatesタイプの配列からのデータで置き換える
    カスタムティックスアッド MqlTickタイプの配列からのデータをカスタムシンボルの価格履歴に追加します。カスタムシンボルは、Market Watch ウィンドウで選択されている必要があります。
    CustomTicksDelete カスタムシンボルの価格履歴から指定された時間間隔ですべてのティックを削除します。
    カスタムティックの置換 指定された時間間隔内のカスタムシンボルの価格履歴をMqlTick型配列からのデータで完全に置き換えます。

  13. MQL5:ユニオン データ型のテンプレートのサポートを追加しました。
  14. MQL5:SYMBOL_VISIBLEトレーディング・インストルメント・プロパティが 追加されました。SymbolInfoInteger(symbol, SYMBOL_VISIBLE)の呼び出しは、指定されたシンボルがマーケットウォッチで表示されていない場合、falseを返します。
  15. MQL5:新しいCHARTEVENT_MOUSE_WHEELプロパティを 追加しました。このイベントは、チャート上でマウス・ホイールがスクロールされたとき、または押されたときに呼び出されます(チャートに対してCHART_EVENT_MOUSE_WHEEL=trueの 場合)。
  16. MQL5。次のチャートプロパティが 追加されました。

    • CHART_EVENT_MOUSE_WHEEL - CHART_EVENT_MOUSE_WHEEL (チャート上のマウススクロールおよびクリックイベント) の生成を有効/無効にします。可能な値。0と1。
    • CHART_CROSSHAIR_TOOL - ミドルクリックでカーソルをクロスヘアモードに切り替えるかどうかを設定します。可能な値。0および1。
    • CHART_CONTEXT_MENU- 右クリックでチャートのコンテキスト メニューを表示するかどうかを設定します。可能な値。0および1。

  17. MQL5:DRAW_NONEスタイルの 描画バッファは、インジケータ・ウィンドウのスケールを計算する際に考慮されないようになりました。
  18. MQL5:チャートのCHART_SCALEFIX(固定スケール)プロパティを設定する際に、CHARTEVENT_CHART_CHANGE イベントを生成するようにしました。
  19. MQL5:ArraySwap関数が 追加され、動的配列の内容を素早く入れ替えることができるようになりました。
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    この関数は、同じ型、同じ次元の動的配列を受け付けます。多次元配列の場合、最初の次元を除くすべての次元の要素数が一致する必要があります。

  20. シグナルシグナルに従って開いたポジションを強制決済する場合の注文充填タイプの表示を固定しました。口座がXXX USDより低い場合は停止する」オプションがシグナルコピー・オプションで提供されます:株式が指定されたレベルより低くなった場合、取引シグナルのコピーは自動的に終了し、すべてのポジションは閉じられます。以前は、強制決済の場合、ポジション決済注文に不正な充填タイプが設定されることがありました。現在、ターミナルはシンボル設定で許可された充填タイプをチェックし、適切なオプションを表示します。
  21. テスター。Strategy Tester のHistoryOrderSelect 関数の動作が、クライアントターミナルの同関数に対応するようになりました。
  22. テスターです。Strategy TesterのCopyTicksと CopyTicksRange 関数の動作が、クライアントターミナルの同関数に対応するようになりました。
  23. Tester:ビジュアルテスト中のグラフィックオブジェクトの表示を最適化しました。
  24. テスター為替商品のテスト結果の表示を修正しました(為替リスク管理モデルで)。現在、チャートにはエクイティのみが表示され、残高と入金負荷は表示されません。このような口座の取引状況は、自己資本レベルに基づいて評価されます。残高は口座の金額のみを表示し、トレーダーの資産や負債は無視されます。為替計算モードでは、証拠金は資産・負債の現在の割引価値と等しく、資本とともに変化するため、預金負荷(証拠金/資本金)は表示されません。
  25. MetaEditor:プログラムコードにプロパティやリソースを簡単に挿入できる機能が追加されました。例えば、インクルードされたファイルをコードに素早く追加することができます。Insert-MQH as #incude "コマンドを使用し、必要なインクルードファイルを選択します。選択されたファイルへの適切なパスを持つ#includeディレクティブがプログラムコードに挿入されます。



    同じメニューで、バイナリまたはテキスト配列の形式でプログラムコードにファイルを追加することができます。特に、エキスパートアドバイザーやインジケーターと一緒にチャートテンプレートを転送することができます:プログラムコードにテンプレートを配列として挿入し、FileSave機能を使ってディスクに保存してください。その後、テンプレートはExpert AdvisorからChartApplyTemplate関数を使って目的のチャートに直接適用することができます。
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  26. MetaEditor:ASCII、HEX、Base64フォーマット間で文字列を変換するためのオプションを追加しました。ソースコードの行を選択し、Edit-Convertメニューから目的のコマンドをクリックします。




  27. MetaEditor:ファイル内の大文字小文字を区別しない検索を修正しました。
  28. MetaEditor:x.y[0][1].z のような式を計算するときに発生する可能性のあるデバッガーエラーを修正しました。
  29. MetaEditor:ForwardとBackボタンによるコードナビゲーションを修正しました。
  30. ユーザーインターフェースはオランダ語でも利用可能になりました。
  31. ドキュメントを更新しました。


このアップデートは、LiveUpdateシステムを通じて提供されます。


 

本日、非常に興味深い記事が掲載されました -。

----------------

MetaTrader 5を使用して外部の暗号通貨取引所で取引する方法

少し前に、MQL5言語開発者は、カスタムシンボルとチャートを開発する能力を特徴とする更新された機能を導入しました。しかし、簡単で控えめなブレインストーミングでさえ、カスタムシンボルに隠された大きな可能性を示しています。他のMQLツールと共に、最も大胆で興味深いアイデアの多くを実装することができます。

今後、MetaTrader 5は、1つのDCと相互作用する単なる端末ではなくなります。代わりに、APIを介して様々な取引所に接続し、価格の動きや取引の流れを可視化することができる自給自足の分析プラットフォームとなるのです。小さな新機能のセットは、端末を、限られた数の取引ツールを含むツールボックスではなく、オープンシステムに変えます。私見では、カスタム・ツールは強力な分析機能にもなり得ます。

暗号通貨を例にとって、新しい言語機能を説明しましょう。カスタムシンボルに対するコミュニティの関心がさらに高まると信じています。

記事から利益を得るかもしれない人

  • 暗号通貨取引所のトレーダー。
  • MetaTrader 5 とポートフォリオ投資に精通している投資家。
  • 暗号通貨取引に関連する顧客の注文をよりシンプルな(そして安価な)方法で実行できるようになったフリーランスのプログラマー。
  • MetaTrader 5とMQL5言語の新機能を追うすべての人々。
 

取引、自動取引システム、取引戦略のテストに関するフォーラム

新しいMetaTrader 5 Build 1730: MetaEditorと合成金融商品におけるプロジェクト

MetaQuotes Software Corp., 2017.12.20 13:49

新しいMetaTrader 5ビルド1730:MetaEditorとSynthetic financial instrumentsのプロジェクト

MetaTrader 5プラットフォームのアップデートは、2017年12月21日にリリースされます。

旧バージョンの端末のサポート終了について
デスクトップおよびモバイル端末の旧バージョンのサポートは、新プラットフォームバージョンのリリースと同時に終了します。
  • クライアントターミナル:730以下のバージョン、2012年11月23日リリース
  • モバイルターミナル for iPhone:1171以下のバージョン、2015年11月11日
  • Android用モバイルターミナル:1334以下のバージョン、2016年8月5日
サポートされていない端末のビルドは、新しいサーバーバージョンに接続することができません。事前に端末をアップデートすることを強くお勧めします。

MQL5 ストレージオペレーションプロトコルの変更
新しい共有プロジェクトに対応するため、MQL5 Storageとの操作プロトコルを更新しました。そのため、プラットフォームアップデート後にストレージの全データのチェックアウトを実施する必要があります。MQL5 Storageに保存されているデータは、アップデート中に失われたり、影響を受けたりすることはありません。

プラットフォームを新しいバージョンにアップデートする前に、コミット操作を実行して、すべてのローカルの変更をMQL5 Storageに送信することをお勧めします。

今回のアップデートでは、以下の変更が行われます。

  1. MetaEditorでフル機能のプロジェクトが利用できるようになりました。プログラム開発作業がより便利になりました。

    現在、メインのMQ5プログラムファイルは、プロジェクトとして表示されません。プロジェクトは独立した "MQPROJ "ファイルで、プログラム設定、コンパイルパラメータ、使用するすべてのファイルに関する情報を保存します。メイン・プロジェクトの設定は、別のダイアログ・ボックスからアクセスできるため、現在では#propertyを介してソース・コードで指定する必要はありません。

    プロジェクト内での作業の利便性を高めるため、ナビゲータに別のタブが用意されています。インクルードファイル、リソースファイル、ヘッダーファイルなど、すべてのファイルがこのタブでカテゴリー別に整理されています。すべてのファイルは、プロジェクトナビゲータに自動的に追加されます。例えば、新しいMQHファイルをインクルードすると、ナビゲータの「Dependencies」セクションに自動的に表示されます。

    新しいプロジェクトのサポートは、更新されたMQL5 Storageオンラインリポジトリにも実装されています。これにより、MQL5.コミュニティの他のメンバーとのコラボレーションによる大規模プロジェクトの開発がより便利になりました。

    グループプロジェクト用に「共有プロジェクト」セクションを新たに用意しました。このセクションで作成されたプロジェクトは、すぐにストレージに送信されます:他のユーザーに権限を付与し、すぐにコラボレーションを開始することができます。




    共有プロジェクトでプロジェクトをコンパイルすると、プログラムの種類に応じて、実行可能な EX5 ファイルがローカルの Experts、Indicators、Scripts ディレクトリに自動的にコピーされます。ファイルを手動でコピーすることなく、チャート上で簡単にプログラムを起動することができます。


    MQL5 Storageの運用における新機能

    新しい共有プロジェクトのサポートを実装するために、MQL5 Storageとの操作プロトコルを変更しました。そのため、プラットフォームのアップデート後に、ストレージからすべてのデータのチェックアウトを行う必要があります。MQL5ストレージに保存されているデータは、アップデート中に失われたり、影響を受けたりすることはありません。

    プラットフォームを新しいバージョンにアップデートする前に、コミット操作を実行して、すべてのローカルの変更をMQL5 Storageに送信することをお勧めします。

    ストレージからのチェックアウト]コマンドは現在使用できません。代わりに、'Activate MQL5 Storage' と 'Update from Storage' コマンドがデータの受信に使用されます。

    • 現在のMetaEditorインスタンスでMQL5 Storageを使用していない場合、Navigatorウィンドウのコンテキストメニューで'Activate MQL5 Storage'をクリックします。ストレージで利用可能なすべてのカタログとファイルがローカルコンピューターにアップロードされます。
    • すでにストレージを使用している場合は、特定のプロジェクトまたはナビゲーターウィンドウのルートMQL5要素のコンテキストメニューで「ストレージからファイルを更新」をクリックすると、ストレージからデータを受信することができます。

    新規プロジェクトの作成と操作の詳細の例

    MetaEditorに新しいプロジェクトエンティティが追加されました。プロジェクトはmqprojファイルで、共通のプログラムプロパティと、使用するすべてのファイルに関する情報を保存します。これにより、ソースコード内のプロパティを手動で変更する(#propertyディレクティブを使用する)代わりに、別のMetaEditorダイアログからプログラムのプロパティを便利に管理することができます。

    利用可能なコードがある場合、「ソースから新規プロジェクト」コマンドを使用して、新しいプロジェクトを簡単にテストすることができます。




    選択したファイルがあるディレクトリに、同じ名前で拡張子がmqprojの新しいプロジェクトファイルが作成されます。ソースコードで#propertyによって指定された主なプログラムプロパティ(名前、著作権、バージョン、開発者のサイトへのリンク、プログラムの説明など)がプロジェクトに自動的に追加されます。

    プロジェクトファイル内のプログラムプロパティセットは、プログラムコード内で指定されたプロパティよりも高い優先順位が与えられます。プロジェクトとソースファイルの両方でプロパティが指定されている場合、プロジェクトのプロパティが使用されます。




    MQL5プログラムをコンパイルするための2つの新しいオプションが、プロジェクトプロパティに追加されました。

    • 追加の最適化を有効にする:最適化を無効にしたアプリケーションは、コンパイルは速くなりますが、実行は遅くなります。
    • 浮動小数点数の除算をチェックする:チェックを無効にしたアプリケーションは、コード実行中にゼロ除算エラーがチェックされないので、少し速く動作します。

    プロジェクトで作業するには、Navigatorウィンドウで独立したプロジェクトタブを使用します。プロジェクトで使用されるすべてのファイルは、このタブに便利な形で表示されます。ソース・ファイルからプロジェクトが生成されると、使用されるすべてのインクルード・ファイル(メインのMQ5ファイルとそのインクルード・ファイルで#includeディレクトリを使用して指定)が自動的に「Dependencies」セクションに追加されます。

    新しいインクルード・ファイルがソース・コードに追加されると、プロジェクト・ナビゲーターにも表示されます。使用されたヘッダーファイルはHeaderセクションに追加され、リソースとしてプロジェクトで使用されるイメージ、サウンド、その他のMQL5プログラムはResourcesセクションに追加されます。ソースコード付きのMQ5ファイルは、「Sources」セクションに表示されます。設定とファイル」セクションには、テスト用のセットファイルやチャートテンプレートなど、その他のファイルを追加することができます。

    プロジェクトに既存のファイルを追加したり、プロジェクトからファイルを削除するには、コンテキストメニューコマンドを使用します。ファイルを削除する場合、プロジェクトからの削除(バインディングの削除)、ハードディスクからの完全削除が可能ですので、注意が必要です。




    新しいプロジェクトの作成は、通常のMQL5プログラムの作成と同じように簡単に行えます。新規プロジェクト」をクリックし、新規プログラムの種類を選択し、MQL5ウィザードでプロパティ(名前、イベントハンドラなど)を指定します。

    実行可能なEX5ファイルを取得するには、プロジェクトを開いてF7キー(コンパイルコマンド)を押すか、プログラムのメインMQ5ファイルを開いてコンパイルします。


    MQL5ストレージの共有プロジェクト。操作の詳細

    共有プロジェクトは、別のShared Projectsセクションから管理します。まだストレージに接続していない場合は、目的のフォルダのコンテキストメニューから'Activate MQL5 Storage'コマンドを実行します。MetaEditorはストレージに保存されたデータがあるかどうか、利用可能な共有プロジェクトがあるかどうかを確認します。利用可能なデータはすべてストレージから取得され、コンピューターにアップロードされます(チェックアウト操作)。利用可能なグループプロジェクトは、「共有プロジェクト」セクションに表示されます。プロジェクトを取得するには、コンテキストメニューから「ストレージからチェックアウト」を実行します。

    新しいグループプロジェクトを作成するには、Shared Projectsフォルダを選択し、"New Project "をクリックします。




    その後、MQL5の標準的な手順を実行します:目的のプログラムのタイプ、名前、プロパティを設定します。グループプロジェクトでは、他の参加者が簡単に見つけられるように、明確でわかりやすい名前を使用する必要があります。プロジェクト名には、スペースなしのラテン文字と数字のみを使用することができます。

    作成されたオブジェクトは、すぐにMQL5ストレージに追加されます。プロジェクトで使用される標準ライブラリ ファイルはストレージに追加されず、手動で追加することができます。

    他の参加者がプロジェクトで作業できるようにするには、そのプロパティを開きます。ここから、MQL5.communityのログインを指定して選択したユーザーに権限を付与したり、グループ作業用の共通パラメータを設定することができます。

    • プライベートプロジェクト
    • 参加自由なプロジェクト
    • リクエストによるプロジェクトに参加




    グループ・プロジェクトをコンパイルすると、プログラムの種類に応じて、実行可能な EX5 ファイルがローカルの Experts、Indicators、Scripts の各ディレクトリに自動的にコピーされます。これにより、手動で適切なディレクトリにコピーすることなく、ターミナルで即座にプログラムを実行することができます。


    MQL5ストレージの公開プロジェクト開発への参加

    前述の通り、MQL5 Storageの各グループプロジェクトには公開設定があり、プロジェクトを非公開にしたり、他のユーザーに公開したりすることができます。今回、自由に参加できるプロジェクトはすべて「公開プロジェクト」という独立したタブに表示されるようになりました。

    誰もがエキサイティングなプロジェクトを見つけ、その開発に参加することができます。参加]をクリックするだけで、ストレージからプロジェクトを受け取ることができます。




    参加したユーザーは、それぞれ読み取り専用の権限を持ちます。プロジェクトの作者に連絡すれば、変更を反映させることができます。作者のログイン情報を知るには、コンテキストメニューからプロジェクトのプロパティを開いてください。

  2. ターミナルこの取引プラットフォームでは、合成金融商品、つまり1つまたは複数の既存の金融商品に基づいたシンボルを作成することができます。ユーザーは相場の計算式を設定する必要があり、その後、プラットフォームはリアルタイムで合成金融商品のティックを生成し、その分履歴を作成することができます。


    操作方法

    • 合成通貨を作成し、価格計算式を設定します。
    • 計算式で使用される金融商品のうち少なくとも1つの価格が変更された場合、プラットフォームは1秒間に10回の頻度でティックを計算します。
    • また、このプラットフォームは、その計算式で使用される金融商品の分足バーに基づいて、1分足バーの履歴(過去2ヶ月間)を計算します。すべての新しいバー(現在とそれ以降)は、合成楽器の生成されたティックを基にリアルタイムで構築されます。

    たとえば、ドルインデックス(USDX)を表示する金融商品を作成できます。この場合、以下の計算式が使用されます。

    50.14348112 * pow(ask(EURUSD),-0.576) * pow(USDJPY,0.136) * pow(ask(GBPUSD),-0.119) * pow(USDCAD,0.091) * pow(USDSEK,0.042) * pow(USDCHF,0.036)

    注:USDEURとUSDGBPのペアは、ソースドルのインデックス式で使用されています。プラットフォームでは逆ペアしか利用できないため、合成シンボル式では負のべき乗とBidの代わりにAskが使用されます。

    プラットフォームは、ブローカーから提供された他の6つのシンボルの相場に基づいて、新しい楽器の価格をリアルタイムで計算します。価格の変化は、マーケットウォッチウィンドウとチャート上に表示されます。




    新しいカスタムシンボルを作成し、その仕様を開き、数式を入力します。




    数式エディタでは、シンボルと関数の名前を入力すると、可能なオプションのリストが表示され、便利です。

    合成商品のティックと 1 分足の計算は、この商品が Market Watch に追加された時点で開始されます。また、合成価格の計算に必要なシンボルもすべて自動的に Market Watch に追加されます。計算開始に関するエントリーは、プラットフォームジャーナルに追加されます。Synthetic Symbol USDX: 処理が開始されました。
    • 合成商品の計算は、Market Watch から削除された時点で停止します。
    • 現在、合成シンボル価格の計算に使用されているシンボルは、Market Watch から非表示にすることができません。

    相場のリアルタイム計算
    100 ms ごとに(つまり 1 秒に 10 回)、計算に使用されるシンボルの価格がチェックされます。そのうちの少なくとも1つが変更された場合、合成シンボルの価格が計算され、新しいティックが生成されます。計算はBid、Ask、Last価格の3つのスレッドで並行して行われます。例えば、計算式がEURUSD*GBPUSDの場合、合成シンボルの価格は以下のように計算されます。

    • ビッド = ビッド(EURUSD)*ビッド(GBPUSD)
    • アスク = アスク(EURUSD)*アスク(GBPUSD)
    • ラスト = ラスト(EURUSD)*ラスト(GBPUSD)

    変更の可否は各価格ごとに個別にチェックされます。たとえば、ソース商品の入札価格のみが変更された場合、合成商品の適切な価格のみが計算されます。

    分足バーの履歴の作成
    リアルタイムでティックを収集するだけでなく、プラットフォームは合成楽器の分単位の履歴を作成します。これにより、トレーダーは通常のチャートと同様の合成シンボルチャートを表示したり、オブジェクトやインジケータを使用してテクニカル分析を行うことができます。

    トレーダが合成商品を Market Watch に追加すると、計算された分単位の履歴が存在するかどうかが チェックされます。存在しない場合は、過去 60 日間の履歴が作成され、これには約 50,000 本のバーが含まれます。プラットフォーム設定の「Max. bars in chart」パラメータにこれより低い値が指定されている場合、適切な制限が適用されます。

    この期間内のバーの一部が既に作成されている場合、プラットフォームは新しいバーを追加で作成します。ユーザーがチャート上で古い期間を表示しようとした場合(スクロールバックやMQL5プログラムからのアクセス)、より深い履歴が作成されます。

    合成商品の1分足の履歴は、計算式に使用されている商品の1分足(ティックではありません)を基に計算されます。例えば、合成シンボルの1分足の始値を計算する場合、プラットフォームはその計算式で使用されるシンボルの始値を使用します。高値、安値、終値も同様に計算されます。

    必要なバーがいずれかの金融商品で利用できない場合、プラットフォームは前のバーの終値が使用されます。例えば、3つの商品が使用されているとします。EURUSD、USDJPY、GBPUSDです。12:00に対応するバーの計算で、USDJPYの必要なバーが利用できない場合、次の価格が計算に使用されます。

    • オープンEURUSDオープン12:00、USDJPYクローズ11:59、GBPUSDオープン12:00
    • 高値:EURUSD高値12:00、USDJPY終値11:59、GBPUSD高値12:00
    • 安値: EURUSD安値12:00、USDJPY終値11:59、GBPUSD安値12:00
    • 閉じるEURUSD終値12:00、USDJPY終値11:59、GBPUSD終値12:00

    分足バーが計算式に使用されるすべての商品で利用できない場合、合成商品の適切な分足バーは計算されません。

    新しい分バーの描画
    合成商品のすべての新しいバー(現在およびそれ以降のバー)は、生成されたティックを基に作成されます。バーを構築するために使用される価格は、仕様のチャートモードパラメータの値に依存します。





    シンボル・フォーミュラで使用できる操作について
    ブローカーが提供する価格データおよび既存のシンボルの一部のプロパティを、合成価格の計算に使用することができます。以下を指定します。

    • Symbol name - 計算する合成価格に応じて、指定した商品のBid、Ask、Lastが使用されます。たとえば、EURUSD*GBPUSD が指定された場合、Bid は bid(EURUSD)*bid(GBPUSD) として計算され、Ask = ask(EURUSD)*ask(GBPUSD) として計算されます。
    • bid(symbol name) - 指定されたシンボルの買値は、合成商品の買値を計算するために強制的に使用されます。このオプションは、前のオプション (価格の種類が指定されていない場合) に似ています。
    • ask(symbol name) - 指定されたシンボルの売呼値は、合成商品の買呼値を計算するために使用されます。指定された金融商品の買値は、Ask を計算するために使用されます。指定されたシンボルの最終価格は、最終の計算に使用されます。ask(EURUSD)*GBPUSDが指定された場合、以下の計算が行われます。
      • Вid = ask(EURUSD)*bid(GBPUSD)
      • アスク = ビッド(EURUSD)*アスク(GBPUSD)
      • ラスト = last(EURUSD)*last(GBPUSD)
    • last(シンボル名) - 指定されたシンボルの最後の価格は、合成商品のすべての価格(入札、アスク、最後)の計算で使用されます。last(EURUSD)*GBPUSD が指定された場合、次の計算が使用されます。
      • Вid = last(EURUSD)*bid(GBPUSD)
      • アスク=last(EURUSD)*ask(GBPUSD)
      • ラスト = last(EURUSD)*last(GBPUSD)
    • volume(シンボル名) - 指定された商品のティックボリュームが数式で使用されます。ボリューム情報がこのシンボルのブローカーによって提供されていることを確認します。
    • point(シンボル名) - 指定された商品の最小価格変動が計算で使用されます。
    • digits(シンボル名) - 指定されたシンボル価格の小数点以下の桁数が計算式で使用されます。

    シンボルの名前が複雑な場合(ハイフンやドットなどを含む)、引用符で囲んで書く必要があります。例"RTS-6.17 "のように。
    加算(+)、減算(-)、乗算(*)、除算(/)、除算余り(%)の算術演算が計算式に使用できます。例えば、EURUSD+GBPUSDは、EURUSDとGBPUSDの価格の合計として計算されることを意味します。また、単項のマイナスを使用して、例えば、-10*EURUSDのように符号を変更することができます。

    算術演算の優先順位に注意してください。

    • 乗算、除算、余りの演算が最初に行われ、次に加算と減算の演算が行われます。
    • 演算は、左から右の順に実行されます。数式で同じ優先順位の演算(乗算と除算など)を複数使用する場合は、左側の演算が先に実行されます。
    • 大括弧(および)を使用して、演算の優先順位を変更することができます。括弧内の演算は、計算の優先順位が最も高くなります。左から右への原則は、これらにも適用されます。左側の括弧内の演算が先に計算されます。

    計算式に定数を使用することができます。

    • 数値演算(整数と浮動小数点)。例eurusd*2+gbpusd*0.7.
    • 記号のプロパティ _Digits および _Point。これらは、仕様にあるカスタム シンボルの適切なプロパティを数式に追加します。桁数] は機器価格の小数点以下の桁数、[ポイント] はシンボル価格の最小の変化量を表します。

    MathSrand、MathRand、MathIsValidNumberを除く、MQL5でサポートされているすべての数学関数を 数式内で使用することもできます。fabs()、acos()、asin()など、すべての関数には短い名前のみが使用されます。

  3. ターミナル。新しいオプションが実装され、リアルタイムでカスタム商品のクォートを追加できるようになりました。これにより、指定されたカスタムシンボルの相場を提供するMQL5 Expert Advisorを開発することが可能になりました。CustomTicksAdd 関数がそのために使用されます。
    int  CustomTicksAdd(
       const string           symbol,       // Symbol name
       const MqlTick&         ticks[]       // The array with tick data that should be applied to the custom symbol
       );
    CustomTicksAdd関数は、あたかもブローカーのサーバーから受信したかのような気配値をフィードすることができます。データは、ティックデータベースに直接書き込まれるのではなく、Market Watch ウィンドウに送信されます。そして、端末は Market Watch からデータベースへティックを保存します。一回の呼び出しで大量のデータが渡された場合、リソースを節約するために関数の動作が変更されます。256ティック以上のデータが転送された場合、データは2つに分割されます。大きな部分はティックデータベースに直接記録されます(CustomTicksReplaceと同様)。最後の128ティックからなる2番目の部分は、マーケットウォッチに送信され、そこから端末がティックをデータベースに保存します。

  4. MQL5です。新しいオンラインサービスMQL5 Cloud Protectorが追加され、MQL5プログラムに追加の保護を提供します。この保護機能は、取引アプリケーションの最大のストアであるMetaTrader Marketで 使用されているオプションに似ており、販売者から提出されたEX5製品ファイルは、追加でネイティブコードにコンパイルされます。

    現在、このタイプの保護は、すべてのプラットフォーム ユーザーが利用できます。ファイルを保護するには、MetaEditorで次のコマンドを実行します。ツール-MQL5クラウドプロテクターMQL5 Cloud ProtectorがMarketで使われている仕組みと唯一違う点は、ファイルがユーザーのコンピューターにリンクされていないことです。MQL5 Cloud Protectorで保護されたファイルは、一般的なEX5ファイルと同様に、どのコンピューター上でも実行することができます。
    MQL5 Cloud Protectorは安全なサービスです。追加保護はコンパイルされたファイルに対してのみ適用されます。ソースコードはサービスに渡されません。まず、ユーザーのパソコンでEX5ファイルにコンパイルされ、その後、コンパイルされたファイルが暗号化された経路でサービスに送られ、そこで保護されてユーザーに返却されます。



  5. ターミナルマーケットウォッチウィンドウに高値と安値が追加表示されるようになりました。これらの列はデフォルトでは非表示になっています。コンテキストメニューで有効にすることができます。




    シンボルチャートが入札価格を使用して構築されている場合(仕様設定による)、このシンボルの入札高値と入札安値が表示されます。シンボルチャートがLast priceを使用して構築されている場合、このシンボルのLast HighとLast Lowが表示されます。

    Market Watch に Last price でチャートを作成するシンボルが 1 つ以上ある場合、High/Low に加えて Last 欄が自動的に有効になります。

  6. ターミナルカスタム金融商品のティック履歴を編集することができるようになりました。Market Watch のコンテキストメニューから「Symbols」をクリックし、カスタムシンボルを選択し、Ticks タブで必要なデータ間隔を要求します。

    • ダブルタップして値を変更します。
    • コンテキストメニューを使用して、エントリーを追加または削除します。
    • 一度に複数のバー/ティックを削除する必要がある場合は、ShiftまたはCtrl+Shiftを押しながらマウスで選択してください。




    便宜上、変更された項目は以下のようにハイライト表示されます。

    • 緑色の背景は、変更されたエントリーを表します。
    • 灰色の背景は、削除されたエントリーを示します
    • 黄色の背景は、追加されたエントリーを示します

    変更を保存するには、ウィンドウの下部にある「変更を適用」をクリックします。

  7. ターミナルナビゲーターツリーに予備口座の表示を追加しました。

    トレーダーはデスクトップターミナルから直接、ブローカーに実際の口座開設のリクエストを送ることができます。ユーザーは簡単なリクエストフォームに連絡先の詳細を入力する必要があります。その後、トレーダーのために特別な予備口座が作成されます。その後、ブローカーがトレーダーに連絡し、関係を正式なものにし、予備口座から本口座に切り替えます。




  8. ターミナル。Quotesウィンドウにミリ秒単位での時間表示を追加しました。





  9. ターミナル新規アカウント開設ダイアログで、利用可能なサーバーのスキャンをより高速に行えるようになりました。
  10. ターミナルRay Left と Ray Right オプションを有効にした場合のトレンドライングラフィックオブジェクトの表示を修正しました。
  11. ターミナルTerminal: 大量の内部メール(数十万通)を使用した場合の動作を最適化しました。
  12. ターミナル大量の取引商品(50,000以上)がある場合のターミナルの動作を最適化しました。
  13. ターミナル履歴編集後に実行されるカスタム金融商品のティック履歴の最適化を追加しました。
  14. MQL5:カスタム 金融商品を操作するための新しい関数が追加されました。

    機能 動作内容
    カスタムシンボル作成 指定されたグループ内に指定された名前のカスタムシンボルを作成します。
    カスタムシンボル削除(CustomSymbolDelete 指定された名前のカスタムシンボルを削除します。
    CustomSymbolSetInteger カスタム シンボルの整数型プロパティの値を設定します。
    CustomSymbolSetDouble カスタムシンボルの実数型プロパティの値を設定する
    CustomSymbolSetString カスタム シンボルの文字列型のプロパティ値を設定する
    CustomSymbolSetMarginRate(カスタムシンボルのマージン率設定 カスタム シンボルの注文タイプおよび方向によってマージン率を設定する
    CustomSymbolSetSessionQuote(カスタムシンボルセッションクォート 指定されたシンボルと曜日について、指定された相場セッションの開始と終了の時刻を設定する
    カスタムシンボルセッショントレード(CustomSymbolSetSessionTrade 指定されたシンボルと週日の指定された取引セッションの開始と終了の時刻の設定
    カスタムレートデリート(CustomRatesDelete 指定された時間間隔でカスタムシンボルの価格履歴からすべてのバーを削除する
    カスタムレートリプレイス 指定された時間間隔内のカスタムシンボルの価格履歴をMqlRates型配列からのデータで完全に置き換える
    CustomRatesUpdate カスタムシンボルの履歴に欠落しているバーを追加し、既存のデータをMqlRatesタイプの配列からのデータで置き換える
    カスタムティックスアッド MqlTickタイプの配列からのデータをカスタムシンボルの価格履歴に追加します。カスタムシンボルは、Market Watch ウィンドウで選択されている必要があります。
    CustomTicksDelete カスタムシンボルの価格履歴から指定された時間間隔ですべてのティックを削除します。
    カスタムティックの置換 指定された時間間隔内のカスタムシンボルの価格履歴をMqlTick型配列からのデータで完全に置き換えます。

  15. MQL5:標準ライブラリにジェネリックデータコレクションを 追加しました。これらはテンプレートに基づいて コレクションを定義するためのクラスとインターフェイスを含んでいます。この新しい強く型付けされたコレクションは、アプリケーション開発の利便性を高め、高いデータ処理性能を提供します。

    ライブラリーはターミナルの作業ディレクトリのIncludeGenericフォルダーに配置されます。

  16. MQL5。ユニオン データ型のテンプレートのサポートを追加しました。
  17. MQL5:SYMBOL_VISIBLEトレーディング・インストルメント・プロパティが 追加されました。SymbolInfoInteger(symbol, SYMBOL_VISIBLE)の呼び出しは、指定されたシンボルがマーケットウォッチで表示されていない場合、falseを返します。
  18. MQL5:新しいCHARTEVENT_MOUSE_WHEELプロパティを 追加しました。このイベントは、チャート上でマウス・ホイールがスクロールされたとき、または押されたときに呼び出されます(チャートに対してCHART_EVENT_MOUSE_WHEEL=trueの 場合)。
  19. MQL5。次のチャートプロパティが 追加されました。

    • CHART_EVENT_MOUSE_WHEEL -CHARTEVENT_MOUSE_WHEEL(チャート上のマウススクロールおよびクリックイベント) の生成を有効/無効にします。可能な値。0 と 1。
    • CHART_CROSSHAIR_TOOL - ミドルクリックでカーソルをクロスヘアモードに切り替えるかどうかを設定します。可能な値。0および1。
    • CHART_CONTEXT_MENU - 右クリックでチャートのコンテキスト メニューを表示するかどうかを設定します。可能な値。0および1。

  20. MQL5:DRAW_NONEスタイルの 描画バッファは、インジケータ・ウィンドウのスケールを計算する際に考慮されないようになりました。
  21. MQL5:チャートのCHART_SCALEFIX(固定スケール)プロパティを設定するときにCHARTEVENT_CHART_CHANGE イベントを生成するようになりました。
  22. MQL5:ArraySwap関数が 追加され、動的配列の内容を素早く入れ替えることができるようになりました。
    bool  ArraySwap(
       void&  array1[],      // The first array
       void&  array2[]       // The second array
       );
    この関数は、同じ型、同じ次元の動的配列を受け付けます。多次元配列の場合、最初の次元を除くすべての次元の要素数が一致する必要があります。

  23. MQL5:新しいプロパティ TERMINAL_RETRANSMISSION - 指定されたコンピューターで実行中のすべてのアプリケーションとサービスのTCP/IPプロトコル における再送ネットワークパケット(再送信)の割合が追加されました。パケットロスは、最も高速で正しく構成されたネットワークでも発生します。この場合、受信者と送信者の間でパケット配信の確認は行われません。そのため、失われたパケットは再送されます。

    端末はこの値を計算しません。オペレーティングシステムから1分間に1回要求されます。この割合は、システムおよびバックグラウンドの活動を含むネットワーク活動全体に対して計算されるため、特定の端末と取引サーバー間の接続品質を示すものではありません。

    TERMINAL_RETRANSMISSION プロパティは ENUM_TERMINAL_INFO_DOUBLE 列挙に追加され、取得にはTerminalInfoDouble 関数が使用されます。
  24. MQL5:取引履歴での作業を最適化しました。
  25. シグナルシグナルに従ってオープンしたポジションが強制的にクローズされた場合の注文充填タイプの表示を修正。口座が XXX USD より低い場合は停止する」オプションがシグナルコピー・オプションで提供されます。株式が指定されたレベルより低くなった場合、取引シグナルのコピーは自動的に終了し、すべてのポジションは閉じられます。以前は、強制決済の場合、ポジション決済注文に不正な充填タイプが設定されることがありました。現在、ターミナルはシンボル設定で許可された充填タイプをチェックし、適切なオプションを表示します。
  26. テスター。Strategy Tester のHistoryOrderSelect 関数の動作が、クライアントターミナルの同関数に対応するようになりました。
  27. テスター。Strategy TesterのCopyTicksと CopyTicksRange 関数の動作が、クライアントターミナルの同じ関数に対応するようになりました。
  28. テスタービジュアルテスト中のグラフィックオブジェクトの表示を最適化しました。
  29. テスター為替商品のテスト結果の表示を修正しました(為替リスク管理モデルで)。現在、チャートにはエクイティのみが表示され、残高と入金負荷は表示されません。このような口座の取引状況は、自己資本レベルに基づいて評価されます。残高は口座の金額のみを表示し、トレーダーの資産や負債は無視されます。為替計算モードでは、証拠金は資産・負債の現在の割引価値と等しく、資本とともに変化するため、預金負荷(証拠金/資本金)は表示されません。
  30. MetaEditor:プログラムコードにプロパティやリソースを簡単に挿入できる機能が追加されました。例えば、インクルードされたファイルをコードに素早く追加することができます。Insert-MQH as #incude "コマンドを使用し、必要なインクルードファイルを選択します。選択されたファイルへの適切なパスを持つ#includeディレクティブがプログラムコードに挿入されます。




    同じメニューで、バイナリまたはテキスト配列の形式でプログラムコードにファイルを追加することができます。特に、エキスパートアドバイザーやインジケーターと一緒にチャートテンプレートを転送することができます:プログラムコードにテンプレートを配列として挿入し、FileSave機能を使ってディスクに保存してください。その後、テンプレートはExpert AdvisorからChartApplyTemplate関数を使って目的のチャートに直接適用することができます。
    //+------------------------------------------------------------------+
    //| Script program start function                                    |
    //+------------------------------------------------------------------+
    void OnStart()
      {
    //--- Template file as a binary array
       unsigned char my_template[]=
         {
          0xFF,0xFE,0x3C, ... ,0x00 // The data array in this example is shortened
         };
    //--- Saving and applying the template
       if(FileSave("my_template.tpl",my_template))
         {
          Print("Custom template saved in \\MQL5\\Files");
          if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
             Print("Custom template applied to the current chart");
          else
             Print("Failed to apply custom template");
         }
       else
          Print("Failed to save custom template");
      }

  31. MetaEditor:ASCII、HEX、Base64フォーマット間で文字列を変換するためのオプションを追加しました。ソースコードの行を選択し、Edit-Convertメニューから目的のコマンドをクリックします。




  32. MetaEditor:ファイル内の大文字小文字を区別しない検索を修正しました。
  33. MetaEditor:x.y[0][1].z のような式を計算するときに発生する可能性のあるデバッガーエラーを修正しました。
  34. MetaEditor:ForwardとBackボタンによるコードナビゲーションを修正しました。
  35. ユーザーインターフェースはオランダ語でも利用可能になりました。
  36. ドキュメントを更新しました。

このアップデートは、ライブアップデートシステムを通じて提供されます。


 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Обсудим совместные проекты в редакторе - зачем они и куда движутся

レナート・ファットフーリン, 2017.12.28 16:51

すっかり忘れていましたが、1月に通信用の新しい通信システムをリリースします。

これはテレグラムのアナログで、チャンネルとグループ(パブリックとプライベート)を含みます。

有料のものも含め、テーマ別のグループを立ち上げることが可能になる予定です。

例えば、アナルティカルコンテンツをサブスクリプションで配信する。 端末からのデータ交換に大きな重点を置く。これにより、チャート、プロファイル、設定、プログラムなどの交換がより速く、より便利になります。

 
Sergey Golubev:
セルゲイさん、これはフォーラムで無料の知識を得るために多くの分離と隔離を作成すると思いませんか?なぜなら、今、人々は知識を得るために購読しなければならないからです。
 

MT5については、現在堅牢で期待できます。早速ですが、「合成式とカスタムシンボル」についてお聞きしたいのですが、例えば、私が選んだカスタムシンボルがブローカーから提供されない場合、そのシンボルで取引を行い、利益や 損失を出し、残高に加算・減算されるのでしょうか?

 

MetaTrader 5のカスタムニュースフィードを作成する


MetaTrader 5には、トレーディングスタイルにかかわらず、トレーダーが必要とする多くの便利な機能があり、ライブニュースフィードへのアクセスも可能です。これは、マーケットに何らかの影響を与える可能性のある貴重なコンテキストをトレーダーに提供します。ただ、提供されるニュースの範囲に制限があります。私は、トレーダーは、ニュースの種類だけでなく、そのソースを選択する能力を可能にする、より柔軟なニュースフィードへのアクセスを持っていることの恩恵を受けることができると信じています。