市場情報の取得

SymbolsTotal

(「気配値表示」で選択されたまたは全ての)利用可能なシンボルの数を返します。

int  SymbolsTotal(
bool  selected      // True – 「気配値表示」 のシンボルのみ
);

パラメータ

selected

[in] リクエストモード( true または false )

戻り値

selected パラメータが true の場合、この関数は 「気配値表示」 内で選択されたシンボルの数を返します。値が false の場合、全てのシンボルの数を返します。

SymbolExist

指定された名称の銘柄が存在するかどうかを確認します。

bool  SymbolExist(
const string  name,    // 銘柄名
bool&   is_custom      // カスタム銘柄プロパティ
);

パラメータ

name

[in]  銘柄名

is_custom

[out] 正常に実行されると設定されるカスタム銘柄プロパティ。trueの場合、検知された銘柄はカスタム銘柄です。

戻り値

falseの場合、銘柄は標準銘柄とカスタム銘柄のリストで見つかりません。

参照

SymbolsTotal、SymbolSelect、カスタム銘柄

 

SymbolName

シンボルの名称を返します。

string  SymbolName(
int  pos,          // リスト内での番号
bool  selected      // 「気配値表示」内のシンボルでは true
);

パラメータ

pos

[in] シンボルの番号

selected

[in] リクエストモード値が true の場合、シンボルは、「気配値表示」で選択されたシンボルリストから取得されます。値が falseの場合、シンボルは通常のリストから取得されます。

戻り値

銘柄名を示す string 型の値

SymbolSelect

「気配値表示」 ウィンドウでシンボルを選択したり、ウィンドウからシンボルを削除したりします。

bool  SymbolSelect(
string  name,      // 銘柄名
bool    select      // 追加または削除
);

パラメータ

name

[in] 銘柄名

select

[in] スイッチ。値が false の場合、シンボルは 「気配値表示」 から削除されるべきです。でなければ、シンボルはウィンドウで選択されるべきです。シンボルチャートが開いている、またはシンボルのための建玉がある場合は、シンボルは削除することが出来ません。

戻り値

失敗の場合 false

SymbolIsSynchronized

この関数は、端末で選択されたシンボルのデータがレードサーバ—上のデータと同期化されているかどうかをチェックします。

bool  SymbolIsSynchronized(
string  name,      // 銘柄名
);

パラメータ

name

[in]  銘柄名

戻り値

データが同期化されている場合は true、それ以外の場合は false

参照

SymbolInfoInteger、データアクセスの整理

SymbolInfoDouble

指定されたシンボルの指定されたプロパティを返します。この関数には 2 つのバージョンがあります。

1. すぐにプロパティ値を返します。

double  SymbolInfoDouble(
string                  name,      // シンボル
ENUM_SYMBOL_INFO_DOUBLE  prop_id    // プロパティの識別子
);

2. 関数実行の成功に応じて true または false を返す成功した場合には、プロパティの値は、最後のパラメータで参照によって受け渡され、変数に配置されます。

bool  SymbolInfoDouble(
string                  name,      // シンボル
ENUM_SYMBOL_INFO_DOUBLE prop_id,   // プロパティの識別子
double&                  double_var  // プロパティ値を受け取る
);

パラメータ

name

[in] 銘柄名

prop_id

[in] シンボルプロパティの識別子(値は ENUM_SYMBOL_INFO_DOUBLE 列挙のいずれか)

double_var

[out] リクエストされたプロパティの double 型の値を受け取る変数

戻り値

double 型の値実行が失敗した場合、エラー 情報は GetLastError() 関数で取得出来ます。

  • 5040 – 銘柄名指定での不正な文字列パラメータの使用
  • 4301 – 未知のシンボル(銘柄)
  • 4302 – シンボルが「気配値表示」で未選択(利用可能なシンボルのリストに不在)
  • 4303 – 不正なシンボルプロパティ識別子

注意事項

最後のティック情報取得には SymbolInfoTick() の使用が推奨されます。端末が取引口座に接続されてから、相場が一つも出ていない可能性があります。このような場合には、リクエストされた値は不定となります。

ほとんどの場合は SymbolInfoTick() 関数の1 回の呼び出しで、ユーザの買値、売値、最終値、ボリューム、また最後のティックの到着時間の受信を可能にするので充分です。

例:

void OnTick()
{
//— シンボルプロパティのスプレッドを取得
bool spreadfloat=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD_FLOAT);
string comm=StringFormat(“Spread %s = %I64d points\r\n”,
spreadfloat?“floating”:“fixed”,
SymbolInfoInteger(Symbol(),SYMBOL_SPREAD));
//— スプレッドを自分で計算する
double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
double spread=ask-bid;
int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT));
comm=comm+“Calculated spread = “+(string)spread_points+” points”;
Comment(comm);
}

SymbolInfoInteger

指定されたシンボルの指定されたプロパティを返します。この関数には 2 つのバージョンがあります。

1. すぐにプロパティ値を返します。

long  SymbolInfoInteger(
string                    name,      // シンボル
ENUM_SYMBOL_INFO_INTEGER prop_id    // プロパティの識別子

);

2. 関数実行の成功に応じて true または false を返す成功した場合には、プロパティの値は、最後のパラメータで参照によって受け渡され、変数に配置されます。

bool  SymbolInfoInteger(
string                    name,      // シンボル
ENUM_SYMBOL_INFO_INTEGER prop_id,   // プロパティの識別子
long&                    long_var  // プロパティ値を受け取る
);

パラメータ

name

[in] 銘柄名

prop_id

[in] シンボルプロパティの識別子(値は ENUM_SYMBOL_INFO_INTEGER 列挙のいずれか)

long_var

[out] リクエストされたプロパティの long 型の値を受け取る変数

戻り値

long 型の値実行が失敗した場合、エラー 情報は GetLastError() 関数で取得出来ます。

  • 5040 – 銘柄名指定での不正な文字列パラメータの使用
  • 4301 – 未知のシンボル(銘柄)
  • 4302 – シンボルが「気配値表示」で未選択(利用可能なシンボルのリストに不在)
  • 4303 – 不正なシンボルプロパティ識別子

注意事項

最後のティック情報取得には SymbolInfoTick() の使用が推奨されます。端末が取引口座に接続されてから、相場が一つも出ていない可能性があります。このような場合には、リクエストされた値は不定となります。

ほとんどの場合は SymbolInfoTick() 関数の1 回の呼び出しで、ユーザの買値、売値、最終値、ボリューム、また最後のティックの到着時間の受信を可能にするので充分です。

例:

void OnTick()
{
//— シンボルプロパティのスプレッドを取得
bool spreadfloat=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD_FLOAT);
string comm=StringFormat(“Spread %s = %I64d points\r\n”,
spreadfloat?“floating”:“fixed”,
SymbolInfoInteger(Symbol(),SYMBOL_SPREAD));
//— スプレッドを自分で計算する
double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
double spread=ask-bid;
int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT));
comm=comm+“Calculated spread = “+(string)spread_points+” points”;
Comment(comm);
}

SymbolInfoString

指定されたシンボルの指定されたプロパティを返します。この関数には 2 つのバージョンがあります。

1. すぐにプロパティ値を返します。

string  SymbolInfoString(
string                  name,        // シンボル
ENUM_SYMBOL_INFO_STRING  prop_id      // プロパティ識別子
);

2. 関数の成功に応じて、true または false を返します。成功した場合、プロパティの値は、参照によって渡された最後のパラメータに配置されます。

bool  SymbolInfoString(
string                  name,        // シンボル
ENUM_SYMBOL_INFO_STRING prop_id,     // プロパティ識別子
string&                  string_var  // プロパティ値を受け取る
);

パラメータ

name

[in] 銘柄名

prop_id

[in] シンボルプロパティの識別子(値は ENUM_SYMBOL_INFO_STRING 列挙のいずれか)

string_var

[out] リクエストされたプロパティ値を受け取るstring 型の変数

戻り値

string 型の値実行が失敗した場合、エラー 情報は GetLastError() 関数で取得出来ます。

  • 5040 – 銘柄名指定での不正な文字列パラメータの使用
  • 4301 – 未知のシンボル(銘柄)
  • 4302 – シンボルが「気配値表示」で未選択(利用可能なシンボルのリストに不在)
  • 4303 – 不正なシンボルプロパティ識別子

注意事項

最後のティック情報取得には SymbolInfoTick() の使用が推奨されます。端末が取引口座に接続されてから、相場が一つも出ていない可能性があります。このような場合には、リクエストされた値は不定となります。

ほとんどの場合は SymbolInfoTick() 関数の1 回の呼び出しで、ユーザの買値、売値、最終値、ボリューム、また最後のティックの到着時間の受信を可能にするので充分です。

SymbolInfoMarginRate

注文の種類と方向に応じて証拠金率を返します。

bool  SymbolInfoMarginRate(
string            name,                    // 銘柄名
ENUM_ORDER_TYPE    order_type,               // 注文の種類
double&           initial_margin_rate,     // 初期の証拠金率
double&            maintenance_margin_rate  // 維持証拠金率
);

パラメータ

name

[in] 銘柄名

order_type

[in] 注文の種類

initial_margin_rate

[in] 初期の証拠金率を受け取る double 型の値。当初証拠金は、適切な方向での 1 ロットの証拠金です。当初証拠金によってレートを倍増し、指定された種類の注文をする際に、口座に保留される資金の額を受け取ります。

maintenance_margin_rate

[out] 維持証拠金率を受け取る double 型の変数。維持証拠金は、適切な方向に1ロットの建玉の維持に必要な最小限の資金です。維持証拠金によってレートを倍増し、指定された種類の注文を有効にする際に、口座に保留される資金の額を受け取ります。

戻り値

プロパティリクエストが成功の場合は true、それ以外の場合は false

SymbolInfoTick

指定されたシンボルの現在の価格を MqlTick 型の変数として返します。

bool  SymbolInfoTick(
string    symbol,    // 銘柄名
MqlTick&  tick       // 構造体への参照
);

パラメータ

symbol

[in]  銘柄名

tick

[out]  現在価格と直近約定更新時刻が配置されるMqlTick 型の構造体へのリンク

戻り値

成功の場合は true、それ以外の場合は false

SymbolInfoSessionQuote

指定された銘柄と曜日での指定された相場セッションの開始と終了の時間を受け取ることができます。

bool  SymbolInfoSessionQuote(
string            name,                // 銘柄名
ENUM_DAY_OF_WEEK  day_of_week,         // 曜日
uint              session_index,      // セッションインデックス
datetime&        from,                // セッション開始時
datetime&        to                  // セッション終了時
);

パラメータ

name

[in]  銘柄名

ENUM_DAY_OF_WEEK

[in]  曜日。ENUM_DAY_OF_WEEK 列挙の値

uint

[in]  開始と終了時刻を受け取りたいセッションの序数。セッションの番号付けは 0 から始まります。

from

[out]  00 時 00 分から経過した秒数でのセッション開始時刻。戻り値の date は無効。

to

[out]  00 時 00 分から経過した秒数でのセッション終了時刻。戻り値の date は無効。

戻り値

指定されたセッションのデータ、銘柄と曜日が受信された場合は true、それ以外の場合は false

参照

シンボルプロパティ、TimeToStruct、データ構造体

SymbolInfoSessionTrade

指定された銘柄と曜日での指定された相場セッションの開始と終了の時間を受け取ることができます。

bool  SymbolInfoSessionTrade(
string            name,                // 銘柄名
ENUM_DAY_OF_WEEK  day_of_week,         // 曜日
uint              session_index,      // セッションインデックス
datetime&        from,                // セッション開始時刻
datetime&        to                  // セッション終了時刻
);

パラメータ

name

[in]  銘柄名

ENUM_DAY_OF_WEEK

[in]  曜日。ENUM_DAY_OF_WEEK 列挙の値

uint

[in]  開始と終了時刻を受け取りたいセッションの序数。セッションの番号付けは 0 から始まります。

from

[out]  00 時 00 分から経過した秒数でのセッション開始時刻。戻り値の date は無効。

to

[out]  00 時 00 分から経過した秒数でのセッション終了時刻。戻り値の date は無効。

戻り値

指定されたセッションのデータ、銘柄と曜日が受信された場合は true、それ以外の場合は false

参照

シンボルプロパティ、TimeToStruct、データ構造体

MarketBookAdd

選択されたシンボルの板情報のオープンを提供し、DOMの変更の通知を受信にサブスクライブします。

bool  MarketBookAdd(
string  symbol      // シンボル
);

パラメータ

symbol

[in] エキスパートアドバイザーまたはスクリプトで板情報が使用されるシンボルの名称

戻り値

オープンが成功の場合は true、それ以外の場合は false

注意事項

通常、この関数は OnInit() 関数またはクラスコンストラクタで呼ばれるべきです。着信アラートを処理するには、エキスパートアドバイザープログラムに void OnBookEvent(string& symbol) 関数が含まれている必要があります。

参照

板情報の構造体、構造体とクラス

MarketBookRelease

指定されたシンボルの板情報の閉鎖を提供し、DOMの変更の通知受信のサブスクライブをキャンセルします。

bool  MarketBookRelease(
string  symbol      // シンボル
);

パラメータ

symbol

[in] 銘柄名

戻り値

閉鎖が成功した場合は true、それ以外の場合は false

注意事項

通常、この関数は、対応する MarketBookAdd() が OnInit() 関数から呼ばれた場合 OnInit() 関数で呼ばれなければなりません。もしくは、対応するMarketBookAdd() 関数がクラスコンストラクタから呼ばれた場合は、クラスデストラクタから呼ばれなければなりません。

参照

板情報の構造体、構造体とクラス

MarketBookGet

指定されたシンボルの板情報を含む MqlBookInfo 構造体の配列を返します。

bool  MarketBookGet(
string        symbol,    // シンボル
MqlBookInfo&  book[]      // 配列への参照
);

パラメータ

symbol

[in] 銘柄名

book[]

[in] 板情報記録の配列への参照配列は、事前に記録の数に充分なように割り当てることが出来ます。動的配列が予め動作メモリに割り当てられていない場合、クライアント端末は、配列自体を配布します。

戻り値

成功の場合は true、それ以外の場合は false

注意事項

板情報は予めMarketBookAdd() 関数で開かれなければなりません。

例:

  MqlBookInfo priceArray[];
bool getBook=MarketBookGet(NULL,priceArray);
if(getBook)
{
int size=ArraySize(priceArray);
Print(“MarketBookInfo for “,Symbol());
for(int i=0;i<size;i++)
{
Print(i+“:”,priceArray[i].price
+”    Volume = “+priceArray[i].volume,
” type = “,priceArray[i].type);
}
}
else
{
Print(“Could not get contents of the symbol DOM “,Symbol());
}

参照

板情報の構造体、構造体とクラス

Originally posted 2019-07-29 23:22:39.

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">