デルタストック Home
無料デモ口座  ライブ口座開設  デルタトレーディングWeb ログイン
English   Français   Español   中文   Русский   日本語   Romana   Български
Home サービス 取引ソフトウェア リソース ライブ口座 パートナー ボーナス  
デルタトレーディング     デルタトレーディング デモ     MetaTrader 4     デルタブローカー     


Home |
取引プラットフォーム |
デルタトレーディング デモ|
メタトレーダー API

META-DELTA(メタデルタ) 1.2

メタトレーダー 4 ブリッジ

バージョン 1.2 での変更点

メタトレーダー4 ブリッジ の特徴:

  • デルタストックでメタトレーダー・ストラテジー(Expert Advisors)を実行できます
  • デルタストックとの取引にMQL4 スクリプトを使用できます
  • デルタストックとの取引にメタトレーダーを使用できます

デルタトレーディングで"Expert Advisors"を動かしたいという多数のMT4ユーザーの声を反映し、MT4(メタトレーダー)とデルタトレーディングを繋ぐ「ブリッジ」を用意しました。トレーダーはMT4で"Expert Advisors"を実行します。MT4で実行された注文は、メタデルタを通じて、デルタトレーディングでも実行されます。ポジションは、MT4とデルタトレーディングアカウントの両方に残ります。

前提条件:

  • 必要バージョン: デルタトレーディング・バージョン 4.0.13 もしくは それ以上.
  • デモ口座を提供しているブローカーのMT4ターミナル
  • デルタストックAPIを有効化(アクティベート)する必要があります。デルタトレーディングデモ口座では標準で有効になっていますが、ライブ口座では、別途利用規約へのサインが必要です。

パッケージのインストール方法

1. もし、メタトレーダー・ターミナルが実行中の場合は停止して下さい。
2. MetaDelta1.2.zipを こちらからダウンロード し、ファイルを解凍して下さい。
3. 解凍したファイル setup.exe を実行しセットアップを開始して下さい。
もし複数のメタトレーダー・ターミナルがインストールされていれば、インストールしたターミナルがあるディレクトリを指定し、選択して下さい。 例) C:¥Program Files¥Other Company Meta Trader 4

4. メタトレーダーを再起動して下さい

使用前に

1. "EditInstruments.exe"プログラムを実行して下さい。アイコンがデスクトップ画面にあるか、もしくはディレクトリ <terminal_dir>/MetaDelta を参照して下さい。

a) まず最初にすべきことは、META-DELTA(メタデルタ)に繋ぐデルタストック口座番号を入力することです。デルタトレーディングのメイン画面のタイトルバー部分にご自身の口座番号を見つけることが出来ます(但し、オプションで"Show user ID and name on title bar"が"Yes"になっている場合のみ)。



b)次に、取引する銘柄/通貨ペアのシンボルをリストに追加します。これは、同じ証券銘柄について、証券会社(ブローカー)間での表記が異なっている場合に必要になります。例えば、モトローラ社のCFDシンボルは、デルタストックでは「MOT」ですが、他社では「Motorola」や「#MT」と表記されています。6つの主要通貨ペアにつきましてはデフォルトで次のようにセットされています。

EUR/USD, GBP/USD, AUD/USD, USD/JPY, USD/CHF, USD/CAD

2. それから、 DeltaTrading.exe を実行し、ログインして下さい。なお、はじめにMETA-DELTA(メタデルタ)が デルタトレーディング・デモ口座 と連動してどのように動くのかをよく理解しておくことを強くお勧めします。
3. ご自身のメタトレーダー・デモアカウントにログインして下さい(迅速な注文実行やスリッページ回避のため、メタトレーダーのデモアカウントを使用されることをお勧めします)。
4. MT4メニューから、「ツール」→「オプション」を選び、「Expert Advisors」タグを選択して下さい。そして、「Allow DLL imports」にチェックを入れて下さい。なお「Confirm DLL function calls」のチェックは外しておいて下さい。


5. 「Navigator(ナビゲーター)」パネルから「Scripts」フォルダを開き、任意のチャートに「META-DELTA」スクリプトを設置して下さい(スクリプト名にカーソルを合わせ、右クリックでメニューを開き、「Execute on Chart」を選択します)。すると、チャートの左上に、スクリプトが作動していることを示す黄色いメッセージが表示されます。

スクリプトは、チャートに設置するだけでなく、「EditInstruments.exe」からすべての銘柄/通貨ペアに対して実行することが出来ます。「Experts」フォルダでは、デルタストックへ送信された注文履歴を見ることが出来ます。



この META-DELTA(メタデルタ) スクリプトは、1つのチャートにのみ設置できます!
6. 「Navigator(ナビゲーター)」パネルから「Custom Indicators」フォルダを開き、「Positions」インディケーターをMETA-DELTA(メタデルタ)を設置したのと同じチャートに設置して下さい。このインディケーターは、デルタストックとメタトレーダーで選択された銘柄/通貨ペアの運用収益を表示します。


7. これでメタトレーダーで取引し、さらにストラテジーを動かす準備が出来ました。すべての注文がデルタトレーディングに送られ、デルタストックで注文が実行されます。ストップオーダーとリミットオーダーは、デルタストックに送られません。まず、メタトレーダーで実行され、それからデルタストックで実行されます。

メタデルタのブリッジ機能は、事前にEditInstruments.exeで定義された銘柄/通貨ペアのみ取引可能です!
8. もし、デルタストックとメタトレーダーで異なるポジションを保有している場合は、最初にスクリプトを起動させたときに調整されます。例:


MetaTrader(メタトレーダー) Deltastock(デルタストック)
EUR/USD 買い 0,07 ロット*

EUR/USD 売り 0,01 ロット
EUR/USD 2000 ユニット(通貨単位)

META-DELTA(メタデルタ)は、デルタストックに「買い 4000 EUR/USD」という注文を出すので、メタトレーダーのポジションは、
0,07 - 0,01 = 0,06 ロット × 100 000 = 6000 ユニット(通貨単位)
デルタストックでは、2000 4000 = 6000 ユニット(通貨単位) となります。
____
*メタトレーダーの1ロットは100,000通貨単位になります。

Meta-Delta(メタデルタ) はどのように動きますか?

パッケージ内容:

  • The DLL delta.dll - メタトレーダーとデルタトレーディングを繋ぎます。
  • MQL4 スクリプト - META-DELTA.mq4 は、「Navigator(ナビゲーター)」パネルから「Scripts」フォルダを開いて見つけることが出来ます。このスクリプトは、一度チャートに設置すると、常にポジション情報を計算します。メタトレーダーとデルタストックのポジションが異なった場合、注文を送って調整を行います。

取引しようとする銘柄/通貨ペアは、予めEditInstruments.exe(デスクトップ画面上、または<terminal_dir>/MetaDelta ディレクトリを参照)から定義しておく必要があります。

デルタストックと取引するためのスクリプト

この章では、プログラマのような、MQL4スクリプトでのプログラミング経験のあるメタトレーダーユーザー向けにご説明させていただきます。

MQL4 スクリプトから直接デルタストックAPIを使うことは出来ません。なぜなら、スクリプトはActiveX コンポーネントを使用することが出来ず、外部のDLLライブラリを使用することが出来るだけだからです。

このことにより、我々はMQL4 スクリプトでデルタストックAPIの機能を使用することが出来るようDLL (delta.dll)を作成しました。

「delta.dll」は、<terminal_dir> か、<WINDIR>¥system32 に置いて下さい。なお、DLLファイルは自動的に<terminal_dir>にインストールされますので確認して下さい。

DELTA_Samples.mq4で、どのような機能が利用できるのかというサンプルを参照可能です。

メタトレーダー・スクリプトで使用できる機能について

すべての機能が「DELTA_」で始まり、<terminal_dir/experts/include>内にてmetadelta.mqhで宣言されます。

エラーの場合や0の時は、すべての機能が0を返します。

-500から-1の値はデルタストックAPIエラーになります(デルタストックAPI エラー詳細テーブルで参照できます)。-500より小さい値は OLEエラーとなります。最終的に値が0以上になれば、それは例外番号になります。

全ての機能は、APIが取引するデルタストック口座番号を最初のパラメータとして取得します。これは、デルタトレーディングが複数のAPIを同時に動かすことができるため、この数字が必要になるからです。

DLL機能を使用するために、スクリプトの冒頭でmetadelta.mqhを含める必要があります。記述は下記の通りです(DELTA_Samples.mq4のソースコードを参考にしてください)。

#include <metadelta.mqh>


メタトレーダー・スクリプトでAPI機能を使う場合は、まず「DELTA_Init(AccNumber)」を呼び出してください。そして、スクリプトの終わりで「DELTA_Uninit()」を呼び出す必要があります。
但し、「Expert Advisor」の場合は、これらの処理は不要です。

下記で機能の詳細についてご説明致します。

 DELTA_Init()
int DELTA_Init(string DS_AccNumber)

APIの初期化を行います。

パラメータ:

DS_AccNumber - APIが取引するデルタストックの取引口座番号

Meta Trader script:まず「DELTA_Init(AccNumber)」を呼び出してください。そして、スクリプトの終わりで「DELTA_Uninit()」を呼び出す必要があります。

Expert Advisor: 「DELTA_Init(AccNumber)」や「DELTA_Uninit()」を呼び出す必要はありません。
 DELTA_UnInit()
int DELTA_UnInit()

デルタストックAPIで使用されたリソースを解放します。

*メタトレーダースクリプト: - まず「DELTA_Init(AccNumber)」を呼び出してください。そして、スクリプトの終わりで「DELTA_Uninit()」を呼び出す必要があります。

*Expert Advisors: 「DELTA_Init(AccNumber)」や「DELTA_Uninit()」を呼び出す必要はありません。
 DELTA_NewOrder
 DELTA_GetOrderStatus
int DELTA_GetOrderStatus( string DS_AccNumber, int orderID, int & Status[]);

注文ステータスを返します。

パラメータ:
OrdID – 調べる対象となる注文ID
Status - ステータスパラメータに返されるリザルト値(下記):
1, 2, 3, 4, 5 – pending(保留中)/confirmed(注文確認済み)/executed(注文執行済み)/cancelled(キャンセル済み)/awaiting cancellation(キャンセル処理中). また metadelta.mqh でも下記のように定義することが可能です:
int ORD_PENDING = 1;
int ORD_CONFIRMED = 2;
int ORD_EXECUTED = 3;
int ORD_CANCELED = 4;
int ORD_AWAITING_CANCELATION = 5;

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_GetOrderParams
int DELTA_GetOrderParams( string DS_AccNumber, int OrderID, string DS_Symbol, string Oper, double& PriceExecuted[],int& Units[]),int& Status[],int& Type[],double& PricePlaced[],double& PriceOCO[]);

注文のパラメータを返します。

パラメータ:
DS_AccNumber- デルタストック取引口座番号(例 "000142775")

Price(価格), Units(通貨単位)などのステータスパラメータは機能毎に単一要素として宣言されます。

OrderID – Order(注文) ID

DS_Symbol – 注文シンボル

Oper - "B" - BUY(買い), "S" - SELL(売り)

Price - 執行価格

Status - 注文ステータス:
      ORD_PENDING= 1;
      ORD_CONFIRMED= 2;
      ORD_EXECUTED= 3;
      ORD_CANCELED= 4;
      ORD_AWAITING_CANCELATION = 5;

Type - 注文タイプ: 1-成行,2-リミット,3-ストップ,4-OCO

PricePlaced - 発注価格 (リミットオーダー/ストップオーダー用)

PriceOCO - OCO 注文用価格

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_GetPosition
int DELTA_GetPosition(string DS_AccNumber, string Instrument, double& Count[],double& Price[]);

ポジションの取引高と平均価格を返します。

パラメータ:
DS_AccNumber - APIが取引するデルタストックの取引口座番号
Instrument – デルタトレーディングの取引シンボル(例: EUR/USD)
Count - ポジションユニット[通貨単位] (ロット数ではない).
Price - ポジションの平均価格

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_FreeMargin
int DELTA_FreeMargin(string DS_AccNumber, string Currency, double& Margin[]);
口座のフリーマージン(使用可能証拠金)を指定した通貨で返します。

パラメータ:
DS_AccNumber - デルタストックの取引口座番号
Currency – マージンが計算される通貨
Margin - 指定した通貨でのフリーマージン

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_CancelOrder
int DELTA_CancelOrder(string DS_AccNumber, int OrdID);
注文のキャンセル命令を送ります。

パラメータ:
DS_AccNumber - デルタストックの取引口座番号
OrderID – キャンセルしたい注文ID

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_ClosePosition
int DELTA_ClosePosition(string DS_AccNumber, string Instrument);
成行注文でポジションをクローズします。

パラメータ:
DS_AccNumber - デルタストックの取引口座番号
Instrument – デルタトレーディングの取引シンボル(例: EUR/USD)

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_GetPositionRes
int DELTA_GetPositionRes(string DS_AccNumber, string Instrument, string Currency, double&result[]);

ポジションの現在の損益を返します。

パラメータ:
DS_AccNumber - デルタストックの取引口座番号
Instrument – デルタトレーディングの取引シンボル(例: EUR/USD)
Currency – 結果値に適用される通貨(例: InCurrency = "EUR").
Result - ポジションの現在の損益

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_GetErrMsg
int DELTA_GetErrMsg(string DS_AccNumber, int  err_no, string  errMsg, int  errMsgLen);

エラー番号(err_no)の詳細メッセージを返します。

パラメータ:

DS_AccNumber - デルタストックの取引口座番号

err_no – 詳細を取得したいエラー番号

errMsg – エラーメッセージ

errMsgLen - エラーメッセージ文字数。errMsgLenのシンボル数で初期化します:
string ErrMsg = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_GetQuote
int DELTA_GetQuote(string DS_AccNumber,string Instrument, double& QBid[],double& QAsk[],double& QHi[],double& QLow[]););

銘柄/通貨ペアの価格値を返します。

パラメータ:
DS_AccNumber - デルタストックの取引口座番号

下記のパラメータを返します。パラメータは1つの要素配列を宣言します。
QBid – Buy
QAsk – Sell
QHi - High
QLow - Low

Result:
OKもしくは0以外でなければ「0」を返します。

例:
double QBid[1], QAsk[1], QHi[1], QLow[1];
err = DELTA_GetQuote(Instrument, QBid, QAsk, QHi, QLow);
if(err != 0)
{
     Print("ERROR calling DELTA_GetQuote: " err);
     return(-1);
}
else
{
    Print ("bid = " + QBid[0] + "ask = " + QAsk[0] + "hi = " + QHi[0] + "low = " + QLow[0]);
}
 DELTA_GetPrecision
int DELTA_GetPrecision(string DS_AccNumber,string Instrument, double& Precision[]);

取引銘柄/通貨ペアの小数点以下価格

パラメータ:

DS_AccNumber- デルタストックの取引口座番号

Instrument- 取引銘柄/通貨ペアのシンボル

Precision - 小数点以下の値はこのパラメータに返されます。1つの要素配列を宣言します。 (例: double prec[1]).

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_Log
int DELTA_Log(string DS_AccNumber,int on_off);

ログ監視の切換。ログファイルは <DELTATRADING_DIR>/Logs にあります。デルタトレーディングのログ監視(記録)オプションとして "Write to log(ログ書き込み)" (Settings/Common/General Settings/Client)が必要な場合は "Yes"。 このオプションを加えると、ログファイルにエラー情報が追加されます。

パラメータ:

DS_AccNumber- デルタストックの取引口座番号

Precision- 1 → "on", 0 → "off"

Result:
OKもしくは0以外でなければ「0」を返します。
 DELTA_GetPip

バージョン 1.2 での変更点

2つの新しいパラメータ(double& PricePlaced[] and double& PriceOCO[])が「GetOrderParams」に加えられました。これらのパラメータは、リミットオーダーとストップオーダーの注文価格、そしてOCO注文のセカンドプライスを返します。もし、スクリプトもしくはEAで「DELTA_GetOrderParams」を使う場合は、この新しい2つのパラメータを加えて下さい。

注文が問題なく執行された場合に、「DELTA_GetOrderStatus」は「0」を返すでしょう(旧バージョンにはバグが存在し、本来は「0」を返すべきところを「1」を返してしまうケースがありました)。

下記の3つの機能が追加されました:

DELTA_Log - ログ監視の切換

DELTA_GetPrecision - 取引銘柄/通貨ペアの小数点以下の価格レートを返します

DELTA_GetPip - 取引銘柄/通貨ペアのpips値を返します



FAQ Meta-Delta(メタデルタ)

     

EU Regulated Broker © 1999-2010 デルタストック(DELTASTOCK AD) - Sofia, 電話 03-6853-6615, 050-5532-6050; fax: 050-3588-6857; jp.support@deltastock.com;リスク公開