MetaEditor:プログラムコードにプロパティやリソースを簡単に挿入できる機能が追加されました。例えば、インクルードされたファイルをコードに素早く追加することができます。Insert-MQH as #incude "コマンドを使用し、必要なインクルードファイルを選択します。選択されたファイルへの適切なパスを持つ#includeディレクティブがプログラムコードに挿入されます。
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//--- Template file as a binary arrayunsignedchar my_template[]=
{
0xFF,0xFE,0x3C, ... ,0x00// The data array in this example is shortened
};
//--- Saving and applying the templateif(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");
elsePrint("Failed to apply custom template");
}
elsePrint("Failed to save custom template");
}
MetaEditor:プログラムコードにプロパティやリソースを簡単に挿入できる機能が追加されました。例えば、インクルードされたファイルをコードに素早く追加することができます。Insert-MQH as #incude "コマンドを使用し、必要なインクルードファイルを選択します。選択されたファイルへの適切なパスを持つ#includeディレクティブがプログラムコードに挿入されます。
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//--- Template file as a binary arrayunsignedchar my_template[]=
{
0xFF,0xFE,0x3C, ... ,0x00// The data array in this example is shortened
};
//--- Saving and applying the templateif(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");
elsePrint("Failed to apply custom template");
}
elsePrint("Failed to save custom template");
}
と以下の記事-。
私は新人です、助けていただけますか?
初心者なんだけど、助けてくれる?
初心者向けの投稿が1件あります(「何から始めればいいのか」について)-。
取引、自動取引システム、取引戦略のテストに関するフォーラム
メタトレーダー5を始めるには
セルゲイ・ゴルベフ, 2017.10.03 06:39
初心者の方だけに(例えばこのサイトに初めてアクセスされた方) - 以下の記事・投稿・スレッドを読まれることを強くお勧めします - 。
============
1.ユーザーメモ
取引、自動売買システム、取引戦略のテストに関するフォーラム
メタトレーダー5を始めるには
セルゲイ・ゴルベフ, 2016.12.30 17:26
投稿にコードを挿入する方法についての注意事項(新規ユーザー/初心者向け) -ここを 読んで、記事を全部読んでください。MQL5.community - ユーザーメモ2.フォーラム/mql5ポータルで検索を行う方法
取引、自動売買システム、取引戦略のテストに関するフォーラム
私はどこから始めればいいですか?
セルゲイ・ゴルベフ, 2017.07.25 15:47
検索の仕方
フォーラムで検索を行う方法
https://www.mql5.com/en/forum/193510
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プラットフォームの最終ビルドは、パブリックベータテスト後にリリースされる予定です。
デスクトップおよびモバイル端末の旧バージョンのサポートは、新プラットフォームのバージョンのリリースと同時に終了します。
MQL5 ストレージオペレーションプロトコルの変更
新しい共有プロジェクトに対応するため、MQL5 Storageとの操作プロトコルを更新しました。そのため、プラットフォームアップデート後にストレージの全データのチェックアウトを実施する必要があります。MQL5 Storageに保存されているデータは、アップデート中に失われたり、影響を受けたりすることはありません。
プラットフォームを新しいバージョンにアップデートする前に、コミット操作を実行して、すべてのローカルの変更をMQL5 Storageに送信することをお勧めします。
このアップデートでは、以下の変更が行われます。
現在、メインのMQ5プログラムファイルは、プロジェクトとして表示されません。プロジェクトは独立した "MQPROJ "ファイルで、プログラム設定、コンパイルパラメータ、使用するすべてのファイルに関する情報を保存します。メイン・プロジェクトの設定は、別のダイアログ・ボックスからアクセスできるため、現在では#propertyを介してソース・コードで指定する必要はありません。
ナビゲータに別のタブが用意され、プロジェクトで便利に作業できるようになりました。インクルードファイル、リソースファイル、ヘッダーファイルなど、すべてのファイルがこのタブでカテゴリに分類されます。すべてのファイルは、プロジェクトナビゲータに自動的に追加されます。例えば、新しいMQHファイルをインクルードすると、ナビゲータの「Dependencies」セクションに自動的に表示されます。
新しいプロジェクトのサポートは、更新されたMQL5 Storageオンラインリポジトリにも実装されています。これは、MQL5.コミュニティの他のメンバーとのコラボレーションによる大規模なプロジェクトを開発するための便利なオプションです。
グループプロジェクトのために、新たにShared Projectsセクションが用意されました。このセクションで作成されたプロジェクトは、すぐにストレージに送信されます。他のユーザーに権限を付与し、すぐにコラボレーションを開始することができます。
Shared Projects でプロジェクトをコンパイルすると、プログラムの種類に応じて、実行可能な EX5 ファイルがローカルの Experts、Indicators、Scripts ディレクトリに自動的にコピーされます。ファイルを手動でコピーすることなく、チャート上で簡単にプログラムを起動することができます。MQL5ストレージ操作の新機能
新しい共有プロジェクトのサポートを実装するために、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ディレクトリに自動的にコピーされます。これにより、手動で適切なディレクトリにコピーすることなく、ターミナルで即座にプログラムを実行することができます。どのように機能するか
注: USDEUR および USDGBP ペアは、ソース ドル インデックス式で使用されます。プラットフォームではリバースペアのみが利用可能なため、合成シンボル式では負のパワーとBidの代わりにAskが使用されます。
プラットフォームは、ブローカーから提供された他の6つのシンボルの相場に基づいて、新しい楽器の価格をリアルタイムで計算します。価格の変化は、マーケットウォッチウィンドウとチャート上に表示されます。
新しいカスタムシンボルを作成し、その仕様を開き、数式を入力します。
数式エディタでは、シンボルと関数の名前を入力すると、可能なオプションのリストが表示され、便利です。合成商品のティックと1分足の計算は、この商品が Market Watch に追加された時点で開始されます。また、合成価格の計算に必要なシンボルもすべて自動的に Market Watch に追加されます。計算開始に関するエントリーは、プラットフォームジャーナルに追加されます。Synthetic Symbol USDX: 処理が開始されました。
相場のリアルタイム計算
100 ms ごとに(つまり 1 秒に 10 回)、計算に使用されるシンボルの価格がチェックされます。そのうちの少なくとも1つが変更された場合、合成シンボルの価格が計算され、新しいティックが生成されます。計算はBid、Ask、Last価格の3つのスレッドで並行して行われます。例えば、計算式がEURUSD*GBPUSDの場合、合成シンボルの価格は以下のように計算されます。
変更の可否は各価格ごとに個別にチェックされます。たとえば、ソース商品の入札価格のみが変更された場合、合成商品の適切な価格のみが計算されます。
分足バーの履歴の作成
リアルタイムでティックを収集するだけでなく、プラットフォームは合成楽器の分単位の履歴を作成します。これにより、トレーダーは通常のチャートと同様の合成シンボルチャートを表示したり、オブジェクトやインジケータを使用してテクニカル分析を行うことができます。
トレーダが合成商品を Market Watch に追加すると、計算された分単位の履歴が存在するかどうかが チェックされます。存在しない場合は、過去 60 日間の履歴が作成され、これには約 50,000 本のバーが含まれます。プラットフォーム設定の「Max.bars in chart」パラメータにこれより低い値が指定されている場合は、適切な制限が適用されます。
この期間内のバーの一部が既に作成されている場合、プラットフォームは新しいバーを追加で作成します。ユーザーがチャート上で古い期間を表示しようとした場合(スクロールバックやMQL5プログラムからのアクセス)、より深い履歴が作成されます。
合成商品の1分足の履歴は、計算式に使用されている商品の1分足(ティックではありません)を基に計算されます。例えば、合成シンボルの1分足の始値を計算する場合、プラットフォームはその計算式で使用されるシンボルの始値を使用します。高値、安値、終値も同様に計算されます。
必要なバーがいずれかの金融商品で利用できない場合、プラットフォームは前のバーの終値を使用します。例えば、3つの商品が使用されているとします。EURUSD、USDJPY、GBPUSDです。12:00に対応するバーの計算で、USDJPYの必要なバーが利用できない場合、次の価格が計算に使用されます。
分足バーが計算式に使用されるすべての商品で利用できない場合、合成商品の適切な分足バーは計算されません。
新しい分バーの描画
合成商品のすべての新しいバー(現在およびそれ以降のバー)は、生成されたティックを基に作成されます。バーを構築するために使用される価格は、仕様のチャートモードパラメータの値に依存します。
シンボル・フォーミュラで使用できる操作について
ブローカーが提供する価格データおよび既存のシンボルの一部のプロパティを、合成価格の計算に使用することができます。以下を指定します。
算術演算の優先順位に注意してください。
計算式に定数を使用することができます。
MathSrand、MathRand、MathIsValidNuberを除く、MQL5でサポートされているすべての数学関数を 数式内で使用することもできます。すべての関数には、fabs()、acos()、asin()などの短い名前のみが使用されます。
CustomTicksAdd関数は、あたかもブローカーのサーバーから受信したかのような気配値をフィードすることができます。データは、ティックデータベースに直接書き込まれるのではなく、Market Watch ウィンドウに送信されます。そして、端末は Market Watch からデータベースへティックを保存します。一回の呼び出しで大量のデータが渡された場合、リソースを節約するために関数の動作が変更されます。256ティック以上のデータが転送された場合、データは2つに分割されます。大きな部分はティックデータベースに直接記録されます(CustomTicksReplaceと同様)。最後の128ティックからなる2番目の部分は、マーケットウォッチに送信され、そこから端末がティックをデータベースに保存します。
現在、このタイプの保護は、すべてのプラットフォーム ユーザーが利用できます。ファイルを保護するには、MetaEditorで次のコマンドを実行します。ツール-MQL5クラウドプロテクターMQL5 Cloud ProtectorがMarketで使われている仕組みと唯一違う点は、ファイルがユーザーのコンピューターにリンクされていないことです。MQL5 Cloud Protectorで保護されたファイルは、一般的なEX5ファイルと同様に、どのコンピューター上でも実行することができます。
シンボルチャートが入札価格を使用して構築されている場合(仕様設定による)、このシンボルの入札高値と入札安値が表示されます。シンボルチャートがLast priceを使用して構築されている場合、このシンボルのLast HighとLast Lowが表示されます。
Market Watch に Last price でチャートを作成するシンボルが 1 つ以上ある場合、High/Low に加えて Last 欄が自動的に有効になります。
便宜上、変更された項目は以下のようにハイライト表示されます。変更を保存するには、ウィンドウの下部にある「変更を適用」をクリックします。
この関数は、同じ型、同じ次元の動的配列を受け付けます。多次元配列の場合、最初の次元を除くすべての次元の要素数が一致する必要があります。
同じメニューで、バイナリまたはテキスト配列の形式でプログラムコードにファイルを追加することができます。特に、エキスパートアドバイザーやインジケーターと一緒にチャートテンプレートを転送することができます:プログラムコードにテンプレートを配列として挿入し、FileSave機能を使ってディスクに保存してください。その後、テンプレートはExpert AdvisorからChartApplyTemplate関数を使って目的のチャートに直接適用することができます。このアップデートは、LiveUpdateシステムを通じて提供されます。
取引、自動取引システム、取引戦略のテストに関するフォーラム
MetaTrader 5 Platform Beta Build 1700。MetaEditorと合成金融商品におけるプロジェクト
セルゲイ・ゴルベフ, 2017.12.07 08:47
本日、非常に興味深い記事が掲載されました -。
----------------
MetaTrader 5を使用して外部の暗号通貨取引所で取引する方法
少し前に、MQL5言語開発者は、カスタムシンボルとチャートを開発する能力を特徴とする更新された機能を導入しました。しかし、簡単で控えめなブレインストーミングでさえ、カスタムシンボルに隠された大きな可能性を示しています。他のMQLツールと共に、最も大胆で興味深いアイデアの多くを実装することができます。
今後、MetaTrader 5は、1つのDCと相互作用する単なる端末ではなくなります。代わりに、APIを介して様々な取引所に接続し、価格の動きや取引の流れを可視化することができる自給自足の分析プラットフォームとなるのです。小さな新機能のセットは、端末を、限られた数の取引ツールを含むツールボックスではなく、オープンシステムに変えます。私見では、カスタム・ツールは強力な分析機能にもなり得ます。
暗号通貨を例にとって、新しい言語機能を説明しましょう。カスタムシンボルに対するコミュニティの関心がさらに高まると信じています。
記事から利益を得るかもしれない人
取引、自動取引システム、取引戦略のテストに関するフォーラム
新しい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日にリリースされます。
デスクトップおよびモバイル端末の旧バージョンのサポートは、新プラットフォームバージョンのリリースと同時に終了します。
MQL5 ストレージオペレーションプロトコルの変更
新しい共有プロジェクトに対応するため、MQL5 Storageとの操作プロトコルを更新しました。そのため、プラットフォームアップデート後にストレージの全データのチェックアウトを実施する必要があります。MQL5 Storageに保存されているデータは、アップデート中に失われたり、影響を受けたりすることはありません。
プラットフォームを新しいバージョンにアップデートする前に、コミット操作を実行して、すべてのローカルの変更をMQL5 Storageに送信することをお勧めします。
今回のアップデートでは、以下の変更が行われます。
MetaEditorでフル機能のプロジェクトが利用できるようになりました。プログラム開発作業がより便利になりました。
現在、メインのMQ5プログラムファイルは、プロジェクトとして表示されません。プロジェクトは独立した "MQPROJ "ファイルで、プログラム設定、コンパイルパラメータ、使用するすべてのファイルに関する情報を保存します。メイン・プロジェクトの設定は、別のダイアログ・ボックスからアクセスできるため、現在では#propertyを介してソース・コードで指定する必要はありません。
プロジェクト内での作業の利便性を高めるため、ナビゲータに別のタブが用意されています。インクルードファイル、リソースファイル、ヘッダーファイルなど、すべてのファイルがこのタブでカテゴリー別に整理されています。すべてのファイルは、プロジェクトナビゲータに自動的に追加されます。例えば、新しいMQHファイルをインクルードすると、ナビゲータの「Dependencies」セクションに自動的に表示されます。
新しいプロジェクトのサポートは、更新されたMQL5 Storageオンラインリポジトリにも実装されています。これにより、MQL5.コミュニティの他のメンバーとのコラボレーションによる大規模プロジェクトの開発がより便利になりました。
グループプロジェクト用に「共有プロジェクト」セクションを新たに用意しました。このセクションで作成されたプロジェクトは、すぐにストレージに送信されます:他のユーザーに権限を付与し、すぐにコラボレーションを開始することができます。
共有プロジェクトでプロジェクトをコンパイルすると、プログラムの種類に応じて、実行可能な EX5 ファイルがローカルの Experts、Indicators、Scripts ディレクトリに自動的にコピーされます。ファイルを手動でコピーすることなく、チャート上で簡単にプログラムを起動することができます。
MQL5 Storageの運用における新機能
新しい共有プロジェクトのサポートを実装するために、MQL5 Storageとの操作プロトコルを変更しました。そのため、プラットフォームのアップデート後に、ストレージからすべてのデータのチェックアウトを行う必要があります。MQL5ストレージに保存されているデータは、アップデート中に失われたり、影響を受けたりすることはありません。
ストレージからのチェックアウト]コマンドは現在使用できません。代わりに、'Activate MQL5 Storage' と 'Update from Storage' コマンドがデータの受信に使用されます。
新規プロジェクトの作成と操作の詳細の例
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の各グループプロジェクトには公開設定があり、プロジェクトを非公開にしたり、他のユーザーに公開したりすることができます。今回、自由に参加できるプロジェクトはすべて「公開プロジェクト」という独立したタブに表示されるようになりました。
誰もがエキサイティングなプロジェクトを見つけ、その開発に参加することができます。参加]をクリックするだけで、ストレージからプロジェクトを受け取ることができます。
参加したユーザーは、それぞれ読み取り専用の権限を持ちます。プロジェクトの作者に連絡すれば、変更を反映させることができます。作者のログイン情報を知るには、コンテキストメニューからプロジェクトのプロパティを開いてください。ターミナルこの取引プラットフォームでは、合成金融商品、つまり1つまたは複数の既存の金融商品に基づいたシンボルを作成することができます。ユーザーは相場の計算式を設定する必要があり、その後、プラットフォームはリアルタイムで合成金融商品のティックを生成し、その分履歴を作成することができます。
操作方法
たとえば、ドルインデックス(USDX)を表示する金融商品を作成できます。この場合、以下の計算式が使用されます。
注:USDEURとUSDGBPのペアは、ソースドルのインデックス式で使用されています。プラットフォームでは逆ペアしか利用できないため、合成シンボル式では負のべき乗とBidの代わりにAskが使用されます。
プラットフォームは、ブローカーから提供された他の6つのシンボルの相場に基づいて、新しい楽器の価格をリアルタイムで計算します。価格の変化は、マーケットウォッチウィンドウとチャート上に表示されます。
新しいカスタムシンボルを作成し、その仕様を開き、数式を入力します。
数式エディタでは、シンボルと関数の名前を入力すると、可能なオプションのリストが表示され、便利です。合成商品のティックと 1 分足の計算は、この商品が Market Watch に追加された時点で開始されます。また、合成価格の計算に必要なシンボルもすべて自動的に Market Watch に追加されます。計算開始に関するエントリーは、プラットフォームジャーナルに追加されます。Synthetic Symbol USDX: 処理が開始されました。
相場のリアルタイム計算
100 ms ごとに(つまり 1 秒に 10 回)、計算に使用されるシンボルの価格がチェックされます。そのうちの少なくとも1つが変更された場合、合成シンボルの価格が計算され、新しいティックが生成されます。計算はBid、Ask、Last価格の3つのスレッドで並行して行われます。例えば、計算式がEURUSD*GBPUSDの場合、合成シンボルの価格は以下のように計算されます。
変更の可否は各価格ごとに個別にチェックされます。たとえば、ソース商品の入札価格のみが変更された場合、合成商品の適切な価格のみが計算されます。
分足バーの履歴の作成
リアルタイムでティックを収集するだけでなく、プラットフォームは合成楽器の分単位の履歴を作成します。これにより、トレーダーは通常のチャートと同様の合成シンボルチャートを表示したり、オブジェクトやインジケータを使用してテクニカル分析を行うことができます。
トレーダが合成商品を Market Watch に追加すると、計算された分単位の履歴が存在するかどうかが チェックされます。存在しない場合は、過去 60 日間の履歴が作成され、これには約 50,000 本のバーが含まれます。プラットフォーム設定の「Max. bars in chart」パラメータにこれより低い値が指定されている場合、適切な制限が適用されます。
この期間内のバーの一部が既に作成されている場合、プラットフォームは新しいバーを追加で作成します。ユーザーがチャート上で古い期間を表示しようとした場合(スクロールバックやMQL5プログラムからのアクセス)、より深い履歴が作成されます。
合成商品の1分足の履歴は、計算式に使用されている商品の1分足(ティックではありません)を基に計算されます。例えば、合成シンボルの1分足の始値を計算する場合、プラットフォームはその計算式で使用されるシンボルの始値を使用します。高値、安値、終値も同様に計算されます。
必要なバーがいずれかの金融商品で利用できない場合、プラットフォームは前のバーの終値が使用されます。例えば、3つの商品が使用されているとします。EURUSD、USDJPY、GBPUSDです。12:00に対応するバーの計算で、USDJPYの必要なバーが利用できない場合、次の価格が計算に使用されます。
分足バーが計算式に使用されるすべての商品で利用できない場合、合成商品の適切な分足バーは計算されません。
新しい分バーの描画
合成商品のすべての新しいバー(現在およびそれ以降のバー)は、生成されたティックを基に作成されます。バーを構築するために使用される価格は、仕様のチャートモードパラメータの値に依存します。
シンボル・フォーミュラで使用できる操作について
ブローカーが提供する価格データおよび既存のシンボルの一部のプロパティを、合成価格の計算に使用することができます。以下を指定します。
算術演算の優先順位に注意してください。
計算式に定数を使用することができます。
MathSrand、MathRand、MathIsValidNumberを除く、MQL5でサポートされているすべての数学関数を 数式内で使用することもできます。fabs()、acos()、asin()など、すべての関数には短い名前のみが使用されます。
CustomTicksAdd関数は、あたかもブローカーのサーバーから受信したかのような気配値をフィードすることができます。データは、ティックデータベースに直接書き込まれるのではなく、Market Watch ウィンドウに送信されます。そして、端末は Market Watch からデータベースへティックを保存します。一回の呼び出しで大量のデータが渡された場合、リソースを節約するために関数の動作が変更されます。256ティック以上のデータが転送された場合、データは2つに分割されます。大きな部分はティックデータベースに直接記録されます(CustomTicksReplaceと同様)。最後の128ティックからなる2番目の部分は、マーケットウォッチに送信され、そこから端末がティックをデータベースに保存します。
現在、このタイプの保護は、すべてのプラットフォーム ユーザーが利用できます。ファイルを保護するには、MetaEditorで次のコマンドを実行します。ツール-MQL5クラウドプロテクターMQL5 Cloud ProtectorがMarketで使われている仕組みと唯一違う点は、ファイルがユーザーのコンピューターにリンクされていないことです。MQL5 Cloud Protectorで保護されたファイルは、一般的なEX5ファイルと同様に、どのコンピューター上でも実行することができます。
シンボルチャートが入札価格を使用して構築されている場合(仕様設定による)、このシンボルの入札高値と入札安値が表示されます。シンボルチャートがLast priceを使用して構築されている場合、このシンボルのLast HighとLast Lowが表示されます。
Market Watch に Last price でチャートを作成するシンボルが 1 つ以上ある場合、High/Low に加えて Last 欄が自動的に有効になります。
便宜上、変更された項目は以下のようにハイライト表示されます。変更を保存するには、ウィンドウの下部にある「変更を適用」をクリックします。
トレーダーはデスクトップターミナルから直接、ブローカーに実際の口座開設のリクエストを送ることができます。ユーザーは簡単なリクエストフォームに連絡先の詳細を入力する必要があります。その後、トレーダーのために特別な予備口座が作成されます。その後、ブローカーがトレーダーに連絡し、関係を正式なものにし、予備口座から本口座に切り替えます。
MQL5:標準ライブラリにジェネリックデータコレクションを 追加しました。これらはテンプレートに基づいて コレクションを定義するためのクラスとインターフェイスを含んでいます。この新しい強く型付けされたコレクションは、アプリケーション開発の利便性を高め、高いデータ処理性能を提供します。
ライブラリーはターミナルの作業ディレクトリのIncludeGenericフォルダーに配置されます。
この関数は、同じ型、同じ次元の動的配列を受け付けます。多次元配列の場合、最初の次元を除くすべての次元の要素数が一致する必要があります。
端末はこの値を計算しません。オペレーティングシステムから1分間に1回要求されます。この割合は、システムおよびバックグラウンドの活動を含むネットワーク活動全体に対して計算されるため、特定の端末と取引サーバー間の接続品質を示すものではありません。
TERMINAL_RETRANSMISSION プロパティは ENUM_TERMINAL_INFO_DOUBLE 列挙に追加され、取得にはTerminalInfoDouble 関数が使用されます。
同じメニューで、バイナリまたはテキスト配列の形式でプログラムコードにファイルを追加することができます。特に、エキスパートアドバイザーやインジケーターと一緒にチャートテンプレートを転送することができます:プログラムコードにテンプレートを配列として挿入し、FileSave機能を使ってディスクに保存してください。その後、テンプレートはExpert AdvisorからChartApplyTemplate関数を使って目的のチャートに直接適用することができます。このアップデートは、ライブアップデートシステムを通じて提供されます。
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Обсудим совместные проекты в редакторе - зачем они и куда движутся
レナート・ファットフーリン, 2017.12.28 16:51
すっかり忘れていましたが、1月に通信用の新しい通信システムをリリースします。
これはテレグラムのアナログで、チャンネルとグループ(パブリックとプライベート)を含みます。
有料のものも含め、テーマ別のグループを立ち上げることが可能になる予定です。
例えば、アナルティカルコンテンツをサブスクリプションで配信する。 端末からのデータ交換に大きな重点を置く。これにより、チャート、プロファイル、設定、プログラムなどの交換がより速く、より便利になります。
MT5については、現在堅牢で期待できます。早速ですが、「合成式とカスタムシンボル」についてお聞きしたいのですが、例えば、私が選んだカスタムシンボルがブローカーから提供されない場合、そのシンボルで取引を行い、利益や 損失を出し、残高に加算・減算されるのでしょうか?
MetaTrader 5のカスタムニュースフィードを作成する
MetaTrader 5には、トレーディングスタイルにかかわらず、トレーダーが必要とする多くの便利な機能があり、ライブニュースフィードへのアクセスも可能です。これは、マーケットに何らかの影響を与える可能性のある貴重なコンテキストをトレーダーに提供します。ただ、提供されるニュースの範囲に制限があります。私は、トレーダーは、ニュースの種類だけでなく、そのソースを選択する能力を可能にする、より柔軟なニュースフィードへのアクセスを持っていることの恩恵を受けることができると信じています。