新しい MetaTrader 5 ビルド1525:ポジションとしての取引履歴の表示とテスターの改善 新しいコメント MetaQuotes 2017.01.27 12:04 新しい MetaTrader 5 ビルド1525:ポジションとしての取引履歴の表示とテスターの改善 2017年1月27 日(金)には更新されたMetaTrader 5 プラットフォームがリリースされます。この新バージョンは次の変更を含みます。 ターミナル:取引履歴をポジションの形で表示することができるようになりました。ターミナルは、ポジションに関連した取引データ(ポジションの開始点、追加の数量、部分的および完全決済)を収集し、そのデータを1つのレコードにグループ化します。このレコードには、次の詳細が含まれます。 最初と最後の取引によって決定されるポジションの開閉時間 ポジションの数量ポジションの一部が決済されている場合は決済された数量とソース数量 加重平均されたポジションの始値と終値 ポジションに関連する取引の結果 ヘッジアカウントでは、新しい履歴の形式はMetaTrader 4で使用されたアカウント履歴のものと似ています。 ターミナル:新しいコマンドが追加されました。これにより、銘柄チャートで取引を視覚化することができます。 選択したポジション/銘柄の取引を表示する必要がある場合は「 [銘柄名] の取引を追加」をクリックします。適切な取引は選択された銘柄の現在開いているすべてのチャートに表示されます。銘柄のチャートが1つも開いていない場合は、新しいチャートが開きます。 アカウント履歴でのすべての銘柄の取引を表示するには「すべての取引を追加」をクリックします。対応する銘柄の取引がすべての開いているチャートに追加されます。 ターミナル:契約仕様書での取引製品の国際名の表示と、銘柄管理ダイアログでの国際名での検索を追加しました。 ターミナル:ターミナルウィンドウの解像度設定のためのコマンドが追加されました。この機能は、動画を作成するのに役立ちます。このメニューではYouTubeのようなさまざまなビデオサービスで使用される最も一般的な解像度オプションが用意されています。 ターミナル:チャートテンプレートとプロファイルが「ターミナルデータフォルダ\Profiles」から「ターミナルデータフォルダ\MQL5\Profiles」に移動されました。MQL5ストレージにテンプレートを簡単に追加して、どのPCからでもアクセスできるようになりました。 MQL5:リソース変数のサポートが追加されました。そのような変数を使用することによって、いくつかのプログラムの開発を大幅に促進することができます。たとえば、OpenCLプログラムのコードを別のCLファイルに記述してMQL5プログラムリソースに文字列として含めることができます。更新前には、そのようなコードは1つの大きな文字列変数として記述される必要がありました。リソース変数の宣言 #resource path_to_resource_file as type_of_resource_variable name_of_resource_variable 機能 文字列ファイルのエンコーディングはBOM(ヘッダ)に基づいて自動的に決定されます。BOMが存在しない場合、エンコーディングはファイルの内容によって定義されます。ANSI、UTF-8、UTF-16がサポートされています。すべての文字列はUnicodeに変換されます。 そのようなリソースのデータは、変数を介してのみアドレス指定することができます。":: <リソース名>"を使用した自動アドレス指定は使用できません。 特別なビットマップリソース変数型は、コンパイラにリソースが画像であることを示します。この場合、リソース変数はuint型をもちます。 24ビット画像を使用する場合、アルファチャンネルコンポーネントはすべての画像ピクセルに対して255に設定されます。 アルファチャンネルなしの32ビット画像を使用する場合、アルファチャンネルコンポーネントもまたすべての画像ピクセルに対して255に設定されます。 アルファチャンネルを使用して32ビット画像をロードすると、ピクセルはまったく処理されません。 ビットマップ型の配列リソース変数は2次元を持つことができます。この場合、配列のサイズは[image_height] [image_width]で定義されます。 配列の1次元が指定されている場合、要素数は image_height*image_width となります。 リソースファイルのサイズが配列要素のサイズの倍数でない場合、残りのデータは切り取られます。たとえば、ファイルサイズが14バイトの場合、int 配列の要素数は3になりますが、他の2バイト(14 - sizeof(int)* 3)は捨てられます。 使用例#resource "data.bin" as int ExtData[] // data.binファイルのデータを含む数値配列の宣言#resource "data.bin" as MqlRates ExtData[] // data.binファイルのデータを含む単純構造配列の宣言#resource "data.txt" as string ExtCode // data.txtファイルのデータを含む文字列の宣言#resource "data.txt" as string ExtCode[] // data.txtファイルのデータを含む文字列の宣言#resource "image.bmp" as bitmap ExtBitmap[] // BMPファイルからのビットマップを含む1次元配列の宣言、array size = width * height#resource "image.bmp" as bitmap ExtBitmap2[][] // BMPファイルからビットマップを含む2次元配列を宣言する、array size [height][width] MQL5:新しいCHART_SHOWプロパティを使用すると、チャートの表示を無効にできます。プロパティを取得/設定するには、関数ChartGetIntegerと ChartSetInteger を使用します。falseの場合、時間および価格スケール、クイックナビゲーションバー、カレンダーイベントラベル、取引ラベル、インディケータおよびバーツールヒント、インディケータサブウィンドウ、ボリュームヒストグラムなど、価格チャート属性の描画は無効になり、すべてのチャートの境界インデントが削除されます。描画の無効化は、グラフィックリソースを使用してカスタムプログラムインターフェイスを作成するための完璧なソリューションです。グラフィックオブジェクトはCHART_SHOWプロパティの値に関係なく常に描画されます。 MQL5:新しいCHART_KEYBOARD_CONTROLプロパティを使用すると、キーボードを使用してチャートコントロールを有効/無効にすることができます ("Home"、"End"、"PgUp"、"+"、"-"、"上矢印"など)。CHART_KEYBOARD_CONTROLをfalseに設定するとOnChartEvent()でキー押下イベントを受け取ることができますが、チャートのスクロールとスケーリングは無効になります。ChartGetIntegerとChartSetInteger関数を使用するとプロパティを取得/設定できます。 MQL5:OpenCLを使用するための新しい関数が追加されました。メモリを操作するための新しいプロパティ CLGetInfoIntegrer によって、4つの新しいプロパティを受け取ることができます。 CL_DEVICE_MAX_WORK_GROUP_SIZE — OpenCLデバイスで使用可能なローカルワーキンググループの総数 CL_KERNEL_WORK_GROUP_SIZE — OpenCLプログラムで使用可能なローカルワーキンググループの総数 CL_KERNEL_LOCAL_MEM_SIZE — グループ内のすべての並列タスクを解決するためにOpenCLプログラムが使用するローカルメモリのサイズ(バイト単位)(使用可能な最大値を受け取るにはCL_DEVICE_LOCAL_MEM_SIZEを使用) CL_KERNEL_PRIVATE_MEM_SIZE — OpenCLプログラムカーネルの各タスクで使用されるプライベートメモリの最小サイズ(バイト単位) bool CLExecutionStatus(int kernel)OpenCLプログラム実行ステータスを返します。 OpenCLプログラムのカーネルハンドルはパラメータとして渡されます。bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)ローカルバッファをカーネル関数の引数として設定します。OpenCLプログラムのカーネルハンドル、OpenCL関数の引数数、およびバッファサイズはパラメータとして渡されます。 現在の入力言語とコントロールキーの状態を考慮して仮想キーコードでUnicode文字を返すTranslateKey 関数を追加しました。この関数はToUnicodeExを使用してユーザーが押したキーをUnicode文字に変換します。void OnChartEvent(const int id,const long& lparam,const double& dparam,const string& sparam) { if(id==CHARTEVENT_KEYDOWN) { short sym=TranslateKey((int)lparam); //--- 入力された文字が正常にUnicodeに変換された場合 if(sym>0) Print(sym,"'",ShortToString(sym),"'"); else Print("Error in TranslateKey for key=",lparam); } }MQL5:新しいTRADE_RETCODE_LIMIT_POSITIONS応答コードが追加されました。口座に同時に存在するポジションの数は、サーバー設定によって制限されます。制限に達すると、サーバーは注文を出そうとするときにTRADE_RETCODE_LIMIT_POSITIONSエラーを返します。この制限の動作は、ポジション会計タイプによって異なります。 Netting — ポジション数が考慮されます。限界に達すると、プラットホームはその実行によってポジション数が増加する可能性がある新しい発注を無効にします。実際には、プラットフォームはすでにポジションを持っている銘柄だけを注文することができます。現在の未決注文は、その実行が現在のポジションの変更につながってもその数を増やすことはできないので、考慮されません。 Hedging — 未決注文のアクティベーションは常に新しいポジションを開くため、未決注文はポジションとともに考慮されます。制限に達すると、プラットフォームは、ポジションを開けるための成行注文と未決注文の両方を無効にします。 MQL5:ティック履歴でティックが抜かされるエラーを修正しました。 MQL5:間接的なテンプレート入力エラーを修正しました。 MQL5:数学統計関数ライブラリを更新しました。 マーケット:デモ版をダウンロードする際に開かれる製品ページを修正しました。 テスター:最適化完了後、結果が「結果」列で自動的にソートされるようになりました。 テスター:最適化結果タブのコンテキストメニューの新しい「最適化結果に切り替える」コマンドを使用すると、最適化が完了したときに自動的に結果を開くことができます。 テスター:ストラテジーテスターは、単一のテストを開始した後、最適化モードのままでいるようになりました。以前のバージョンでは、最適化結果タブから1テストを開始した場合、ストラテジーテスターは単一テストモードに切り替わりました。さらに最適化を行うには最適化モードを有効にする必要がありました。 テスター:入力パラメータのセットは、従来の.setファイルに加えて、コンテキストメニューから便利にアクセスできるローカルストラテジーテスター設定として保存できるようになりました。 テスター:モンゴル語、ハンガリー語、ルーマニア語、ウルドゥー語へのUI翻訳を追加しました。 MetaEditor:デバッガウィンドウで監視された式の順序を変更する機能が追加されました。式はマウスで必要な位置にドラッグすることができます。 MetaEditor:ソースファイルのエンコーディングの決定を修正しました。 MetaEditor:UTF-8エンコーディングのファイルによる検索を修正しました。 MetaEditor:テキストがタブを含む場合のマウスによるテキスト選択を修正しました。 MetaEditor:ハンガリー語とルーマニア語へのUI翻訳を追加しました。 ドキュメントを更新しました。 更新はLiveUpdateシステムを介して利用できるようになります。 List of changes in MetaTrader 5 Client Terminal builds New MetaTrader 5 build 1525: Representing trading history as positions and tester improvements リソース 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
新しい MetaTrader 5 ビルド1525:ポジションとしての取引履歴の表示とテスターの改善
2017年1月27 日(金)には更新されたMetaTrader 5 プラットフォームがリリースされます。この新バージョンは次の変更を含みます。
ヘッジアカウントでは、新しい履歴の形式はMetaTrader 4で使用されたアカウント履歴のものと似ています。
リソース変数の宣言
機能
使用例
#resource "data.bin" as MqlRates ExtData[] // data.binファイルのデータを含む単純構造配列の宣言
#resource "data.txt" as string ExtCode // data.txtファイルのデータを含む文字列の宣言
#resource "data.txt" as string ExtCode[] // data.txtファイルのデータを含む文字列の宣言
#resource "image.bmp" as bitmap ExtBitmap[] // BMPファイルからのビットマップを含む1次元配列の宣言、array size = width * height
#resource "image.bmp" as bitmap ExtBitmap2[][] // BMPファイルからビットマップを含む2次元配列を宣言する、array size [height][width]
falseの場合、時間および価格スケール、クイックナビゲーションバー、カレンダーイベントラベル、取引ラベル、インディケータおよびバーツールヒント、インディケータサブウィンドウ、ボリュームヒストグラムなど、価格チャート属性の描画は無効になり、すべてのチャートの境界インデントが削除されます。
描画の無効化は、グラフィックリソースを使用してカスタムプログラムインターフェイスを作成するための完璧なソリューションです。
グラフィックオブジェクトはCHART_SHOWプロパティの値に関係なく常に描画されます。
ChartGetIntegerとChartSetInteger関数を使用するとプロパティを取得/設定できます。
メモリを操作するための新しいプロパティ
CLGetInfoIntegrer によって、4つの新しいプロパティを受け取ることができます。
bool CLExecutionStatus(int kernel)
OpenCLプログラム実行ステータスを返します。 OpenCLプログラムのカーネルハンドルはパラメータとして渡されます。
bool CLSetKernelArgMemLocal(int kernel_handle,int arg_index,ulong local_mem_size)
ローカルバッファをカーネル関数の引数として設定します。OpenCLプログラムのカーネルハンドル、OpenCL関数の引数数、およびバッファサイズはパラメータとして渡されます。
{
if(id==CHARTEVENT_KEYDOWN)
{
short sym=TranslateKey((int)lparam);
//--- 入力された文字が正常にUnicodeに変換された場合
if(sym>0)
Print(sym,"'",ShortToString(sym),"'");
else
Print("Error in TranslateKey for key=",lparam);
}
}
更新はLiveUpdateシステムを介して利用できるようになります。