CustomSymbolCreate
指定されたグループで指定された名前を持つ新しいカスタム銘柄を作成します。
bool CustomSymbolCreate( |
パラメータ
symbol_name
[in] カスタム銘柄名。銘柄が作成されたグループまたはサブグループを含んではいけない。
symbol_path=””
[in] 銘柄を持つグループの名前。
symbol_origin=NULL
[in] 作成するカスタム銘柄のプロパティのコピー元となる銘柄の名前。カスタム銘柄を作成した後は、適切な関数を使用して任意のプロパティ値を必要なものに変更できます。 <分節146763>
戻り値
成功の場合はtrue、それ以外の場合はfalse。エラー情報を取得するには、GetLastError() 関数が呼ばれます。
注意事項
すべてのカスタム銘柄は特別なCustomセクションで作成されます。グループ名が指定されていない場合(CustomSymbolCreate関数のsymbol_path パラメータが空の文字列またはNULL)、カスタム銘柄はCustomセクションのルートに生成されます。ここでは、グループとサブグループをフォルダーとサブフォルダーとして表示できるファイルシステムとの類似性を引き出すことができます。
銘柄名とグループ名には、句読点、スペース、特殊文字を含まないラテン文字のみを含めることができます(“.”、 “_”、 “&”、”#”のみを含めることができます)。”<“、”>”、”:”、” “”、”/”、”|”、”?”、”*”の使用は推奨されません。
カスタム銘柄名は、それが作成されたグループの名前に関係なく一意である必要があります。同名の銘柄が既に存在する場合、CustomSymbolCreate()関数は’falseを返し、それ以降の GetLastError()の呼び出しはエラー5300(ERR_NOT_CUSTOM_SYMBOL)または5304(ERR_CUSTOM_SYMBOL_EXIST)を返します。
銘柄名は 31字を超えられません。さもないと、CustomSymbolCreate()は’false’を返し、エラー5302 – ERR_CUSTOM_SYMBOL_NAME_LONGがアクティブになります。
symbol_pathパラメータを設定する方法は2つあります。
- カスタム銘柄名を含まないグループ名(例:”CFD\Metals”)。エラーを避けるにはこのオプションが最適です。
- または<グループ>名 + グループ区切り文字”\”+<カスタム銘柄名>(例: “CFD\Metals\Platinum”)。この場合、グループ名は正確にカスタム銘柄名で終わる必要があります。不一致の場合、カスタム銘柄は作成されますが、意図したグループ内には作成されません。例として、symbol_path=”CFD\Metals\Platinum”でsymbol_name=”platinum” (register error)の場合、カスタム銘柄”platinum”は”CustomCFDMetalsPlatinum”グループに作成されます。SymbolInfoGetString(“platinum”,SYMBOL_PATH)関数は値”CustomCFDMetalsPlatinumplatinum”を返します。
SYMBOL_PATHプロパティは銘柄名で終わるパスを返すことにご注意ください。したがって、同じグループ内にカスタム銘柄を作成する場合は、変更を加えずにコピーすることはできません。この場合、上記の結果が得られないように、銘柄名を切り捨てる必要があります。
存在しない銘柄がsymbol_originパラメータとして設定されると、カスタム銘柄はsymbol_originパラメータが設定されていない場合と同じく、空で作成されます。この場合、エラー4301 – ERR_MARKET_UNKNOWN_SYMBOLがアクティブになります。
“Custom\”、”\”グループ区切り文字と銘柄名が最後に指定されている場合、symbol_pathパラメータは127文字を超えることはできません。
参照
SymbolName、SymbolSelect、CustomSymbolDelete
CustomSymbolDelete
指定された名前のカスタム銘柄を削除します。
bool CustomSymbolDelete( |
パラメータ
symbol
[in] カスタム銘柄名既存のシンボルの名前と一致してはいけません。
戻り値
成功の場合はtrue、それ以外の場合はfalse。エラー情報を取得するためにはGetLastError()関数を呼び出します。
注意事項
板情報に表示されているカスタム銘柄またはチャートが開かれているカスタム銘柄は削除できません。
参照
SymbolName、SymbolSelect、CustomSymbolCreate
CustomSymbolSetInteger
カスタム銘柄の整数型プロパティ値を設定します。
bool CustomSymbolSetInteger( |
パラメータ
symbol_name
[in] カスタム銘柄名
property_id
[in] 銘柄プロパティID値はENUM_SYMBOL_INFO_INTEGER列挙体のうちの一つです。
property_value
[in] プロパティ値を含むlong型の変数
戻り値
成功の場合はtrue、それ以外の場合はfalse。エラー情報を取得するためにはGetLastError()関数を呼び出します。
注意事項
これらのプロパティのいずれかが銘柄仕様で変更されている場合、カスタム銘柄の分足及びティックの履歴は完全に削除されます。
- SYMBOL_CHART_MODE – バー構築のための価格タイプ(BidまたはLast)
- SYMBOL_DIGITS – 価格表示に使われる小数点以下の桁数
カスタム銘柄履歴を削除した後、端末は更新されたプロパティを使用して新たに履歴作成を試みます。カスタム銘柄のプロパティが手動で変更された場合も同様です。
参照
SymbolInfoInteger
CustomSymbolSetDouble
カスタム銘柄の実数型プロパティ値を設定します。
bool CustomSymbolSetDouble( |
パラメータ
symbol_name
[in] カスタム銘柄名
property_id
[in] 銘柄プロパティID値はENUM_SYMBOL_INFO_DOUBLE列挙体のうちの一つです。
property_value
[in] プロパティ値を含むdouble型の変数
戻り値
成功の場合はtrue、それ以外の場合はfalse。エラー情報を取得するためにはGetLastError()関数を呼び出します。
注意事項
これらのプロパティのいずれかが銘柄仕様で変更されている場合、カスタム銘柄の分足及びティックの履歴は完全に削除されます。
- SYMBOL_POINT – 1ポイント値
- SYMBOL_TRADE_TICK_SIZE – 許容される最低価格の変更を指定するティックの値
- SYMBOL_TRADE_TICK_VALUE – 収益性の高いポジションの1ティック価格変更値
カスタム銘柄履歴を削除した後、端末は更新されたプロパティを使用して新たに履歴作成を試みます。カスタム銘柄のプロパティが手動で変更された場合も同様です。
参照
SymbolInfoDouble
CustomSymbolSetString
カスタム銘柄の文字列型プロパティ値を設定します。
bool CustomSymbolSetString( |
パラメータ
symbol_name
[in] カスタム銘柄名
property_id
[in] 銘柄プロパティID値はENUM_SYMBOL_INFO_STRING列挙体のうちの一つです。
property_value
[in] プロパティ値を含む文字列型の変数
戻り値
成功の場合はtrue、それ以外の場合はfalse。エラー情報を取得するためにはGetLastError()関数を呼び出します。
注意事項
銘柄仕様でSYMBOL_FORMULAプロパティ(カスタム銘柄価格構成の式を設定)が変更された場合、カスタム銘柄の分足及びティック履歴は完全に削除されます。カスタム銘柄履歴を削除した後、端末は新しい式を使用して新たに履歴作成を試みます。カスタム銘柄の式が手動で変更された場合も同様です。
参照
SymbolInfoString
CustomSymbolSetMarginRate
カスタム銘柄の注文の種類と方向に応じて証拠金率を設定します。
bool CustomSymbolSetMarginRate( |
パラメータ
symbol_name
[in] カスタム銘柄名
order_type
[in] 注文の種類
initial_margin_rate
[in] 当初証拠金率を表すdouble型の変数。当初証拠金とは、適切な方向の1ロットの取引に対する保証金です。レートに当初証拠金を掛けて、指定された種類の注文を出す時に口座に予約される金額を受け取ります。
maintenance_margin_rate
[in] 維持証拠金率を表すdouble型の変数。維持証拠金は、適切な方向の1ロットのポジションを維持するのに必要な最低限の証拠金です。レートに維持証拠金を掛けて、指定された種類の注文を出す時に口座に予約される金額を受け取ります。
戻り値
成功の場合はtrue、それ以外の場合はfalse。エラー情報を取得するためにはGetLastError()関数を呼び出します。
参照
SymbolInfoMarginRate
CustomSymbolSetSessionQuote
指定された銘柄と曜日の指定された相場セッションの開始時刻と終了時刻を設定します。
bool CustomSymbolSetSessionQuote( |
パラメータ
symbol_name
[in] カスタム銘柄名
ENUM_DAY_OF_WEEK
[in] ENUM_DAY_OF_WEEK列挙からの値である曜日
uint
[in] 開始時刻と終了時刻を設定するセッションのインデックス。セッションインデックスは0から始まります。
from
[in] セッション開始時間(00:00からの秒数)で、変数のデータ値は無視されます。
to
[in] セッション終了時間(00:00からの秒数)で、変数のデータ値は無視されます。
戻り値
成功の場合はtrue、それ以外の場合はfalse。エラー情報を取得するためにはGetLastError()関数を呼び出します。
注意事項
指定されたsession_indexを持つセッションが既存する場合、この関数は単にセッションの開始と終了を編集します。
セッションの開始パラメータと終了パラメータにゼロが渡された場合(from=0とto=0)、適切なsession_indexを持つセッションが削除され、セッションインデックスが下向きにシフトされます。
セッションは順番にしか追加できません。言い換えればsession_index=1は、インデックスが0であるセッションが既存する場合にのみ追加できます。このルールが守られていないと、新しいセッションは作成されず、関数自体は「false」を返します。
参照
SymbolInfoSessionQuote、Symbol info、TimeToStruct、Date structure
CustomSymbolSetSessionTrade
指定された銘柄と曜日の指定された取引セッションの開始時刻と終了時刻を設定します。
bool CustomSymbolSetSessionTrade( |
パラメータ
symbol_name
[in] カスタム銘柄名
ENUM_DAY_OF_WEEK
[in] ENUM_DAY_OF_WEEK列挙からの値である曜日
uint
[in] 開始時刻と終了時刻を設定するセッションのインデックス。セッションインデックスは0から始まります。
from
[in] セッション開始時間(00:00からの秒数)で、変数のデータ値は無視されます。
to
[in] セッション終了時間(00:00からの秒数)で、変数のデータ値は無視されます。
戻り値
成功の場合はtrue、それ以外の場合はfalse。エラー情報を取得するためにはGetLastError()関数を呼び出します。
注意事項
指定されたsession_indexを持つセッションが既存する場合、この関数は単にセッションの開始と終了を編集します。
セッションの開始パラメータと終了パラメータにゼロが渡された場合(from=0とto=0)、適切なsession_indexを持つセッションが削除され、セッションインデックスが下向きにシフトされます。
セッションは順番にしか追加できません。言い換えればsession_index=1は、インデックスが0であるセッションが既存する場合にのみ追加できます。このルールが守られていないと、新しいセッションは作成されず、関数自体は「false」を返します。
参照
SymbolInfoSessionTrade、Symbol info、TimeToStruct、Date structure
CustomRatesDelete
指定した時間間隔内のカスタム銘柄の価格履歴からすべてのバーを削除します。
int CustomRatesDelete( |
パラメータ
symbol
[in] カスタム銘柄名
from
[in] 削除する指定範囲内の価格履歴の最初のバーの時間
to
[in] 削除する指定範囲内の価格履歴の最後のバーの時間
戻り値
削除されたバーの数(エラーの場合は -1 )
参照
CustomRatesReplace、CustomRatesUpdate、CopyRates
CustomRatesReplace
指定された時間間隔内のカスタム銘柄の価格履歴をMqlRates型の配列からのデータで完全に置き換えます。
int CustomRatesReplace( |
パラメータ
symbol
[in] カスタム銘柄名
from
[in] 更新する指定範囲内の価格履歴の最初のバーの時間
to
[in] 更新する指定範囲内の価格履歴の最後のバーの時間
rates[]
[in] MqlRates型のM1履歴データの配列
count=WHOLE_ARRAY
[in] 置換に使用されるrates[]配列要素の数。WHOLE_ARRAYはすべてのrates[]配列要素が置き換えに使用されることを意味します。
戻り値
更新されたバーの数(エラーの場合は -1 )
注意事項
指定された範囲を超えたrates[]配列のバーは無視されます。このようなバーがすでに価格履歴に存在して指定された範囲に入った場合は置き換えられます。現在の価格履歴の指定された範囲外のバーは変更されません。rates[]配列データはOHLC価格について正しく、バーが開く時間はM1時間枠に対応するべきです。
参照
CustomRatesDelete、CustomRatesUpdate、CopyRates
CustomRatesUpdate
カスタム銘柄履歴に欠けているバーを追加し、既存のデータをMqlRates型配列のものに置き換えます。
int CustomRatesUpdate( |
パラメータ
symbol
[in] カスタム銘柄名
rates[]
[in] MqlRates型のM1履歴データの配列
count=WHOLE_ARRAY
[in] 更新に使用されるrates[]配列要素の数。WHOLE_ARRAYはすべてのrates[]配列要素が使用されることを意味します。
戻り値
更新されたバーの数(エラーの場合は -1 )
注意事項
rates[] 配列のバーが現在のカスタム銘柄の履歴にない場合は追加され、そのようなバーがすでに存在する場合は置き換えられます。現在の価格履歴の他のバーは変更されません。rates[]配列データはOHLC価格について正しく、バーが開く時間はM1時間枠に対応するべきです。
参照
CustomRatesReplace、CustomRatesDelete、CopyRates
CustomTicksAdd
カスタム銘柄の価格履歴にMqlTick型の配列からデータを追加します。カスタム銘柄は気配値ウィンドウで選択されなければなりません。
int CustomTicksAdd( |
パラメータ
symbol
[in] カスタム銘柄名
ticks[]
[in] [in]以前のデータから最近のものまでの時間順に配列されたMqlTick型のティックデータの配列、すなわちk<nの場合はticks[k].time_msc <= ticks[n].time_msc。
count=WHOLE_ARRAY
[in] 追加に使用されるticks[]配列要素の数。WHOLE_ARRAYはすべてのticks[]配列要素が使用されることを意味します。
戻り値
追加されたティックの数(エラーの場合は -1 )
さらなる注記
CustomTicksAdd関数は、気配値ウィンドウで開かれているカスタム銘柄に対してのみ機能します。銘柄が気配値ウィンドウで選択されていない場合にはCustomTicksReplaceを使用してティックを追加するべきです。
MqlTick 構造体には、1970年1月1日からカウントされた時間(秒単位のティック時間)とtime_msc(ミリ秒単位のティック時間)の2つの時間値を持つフィールドがあります。追加されたティックのこれらのフィールドは、次の順序で処理されます。
- ticks[k].time_msc!=0の場合、これはticks[k].timeフィールドへの書き入れに使われます。すなわちticks[k].time=ticks[k].time_msc/1000(整数除算)がtickに設定されます。
- ticks[k].time_msc==0でticks[k].time!=0の場合、ミリ秒単位の時間は、1000を掛けることによって得られます。すなわちticks[k].time_msc=ticks[k].time*1000です。
- ticks[k].time_msc==0でticks[k].time==0の場合、これらのフィールドにはCustomTicksAddが呼ばれたときの現在の取引サーバー時間がミリ秒まで書かれます。
ticks[k].bid, ticks[k].ask、ticks[k].lastまたはticks[k].volume の値が正の場合は、適切なフラグの組み合わせがticks[k].flags fieldに書かれます。
- TICK_FLAG_BID – ティックが買値を変更した
- TICK_FLAG_ASK – ティックが売値を変更した
- TICK_FLAG_LAST – ティックが直近の約定値を変更した
- TICK_FLAG_VOLUME – ティックが取引量を変更した
フィールドの値がゼロ以下の場合、対応するフラグは ticks[k].flagsフィールドに書き込まれません。
TICK_FLAG_BUYフラグとTICK_FLAG_SELLフラグはカスタム銘柄の履歴には追加されません。
参照
CustomRatesDelete、CustomRatesUpdate、CustomTicksReplace、CopyTicks、CopyTicksRange
CustomTicksDelete
指定した時間間隔内のカスタム銘柄の価格履歴からすべてのティックを削除します。
int CustomTicksDelete( |
パラメータ
symbol
[in] カスタム銘柄名
from_msc
[in] 削除する指定範囲内の価格履歴の最初のティックの時間(1970.01.01 から経過したミリ秒)
to_msc
[in] 削除する指定範囲内の価格履歴の最後のティックの時間(1970.01.01 から経過したミリ秒)
戻り値
削除されたティックの数(エラーの場合は -1 )
参照
CustomRatesDelete、CustomRatesUpdate、CustomTicksReplace、CopyTicks、CopyTicksRange
CustomTicksReplace
指定された時間間隔内のカスタム銘柄の価格履歴をMqlTick型の配列からのデータで完全に置き換えます。
int CustomTicksReplace( |
パラメータ
symbol
[in] カスタム銘柄名
from_msc
[in] 削除する指定範囲内の価格履歴の最初のティックの時間(1970.01.01 から経過したミリ秒)
to_msc
[in] 削除する指定範囲内の価格履歴の最後のティックの時間(1970.01.01 から経過したミリ秒)
ticks[]
[in] 昇順に並び替えられたMqlTick型のティックデータの配列
count=WHOLE_ARRAY
[in] 指定した時間間隔内の置き換えに使用されるticks[]配列要素の数。WHOLE_ARRAYはすべてのticks[]配列要素が使用されることを意味します。
戻り値
更新されたティックの数(エラーの場合は-1)
注意事項
クォーツの流れの中ではしばしば複数のティックがミリ秒単位で同じ時間を持つことがあるので(正確なティックの時間はMqlTick構造体のtime_mscフィールドに保存)、CustomTicksReplace関数は自動的にticks[]配列要素を時間順に並び替えることはありません。したがって、ティックの配列は事前に時間の昇順で並び替える必要があります。
ティックはto_mscで指定された時間まで、またはエラーが発生するまで、毎日連続して置き換えられます。指定された範囲の日は順番に処理され。ティック時間と昇順(非降順)の間の不一致が検出されると、現在の日のティックの置き換えが停止します。現在の日(間違ったティックの瞬間)と指定された間隔の残りは変更されませんが、その前日までのティックはすべて普通に置き換えられます。
ticks[] 配列にいずれの日のティックデータも含まれない場合は(一般的に、どの期間でも)、ticks[] からのティックデータが適応された後に、カスタム銘柄履歴には欠落したデータに対応する「穴」が表示されます。言い換えれば CustomTicksReplaceを欠陥したティックで呼び出すとティック履歴のその部分を削除され、これはCustomTicksDeleteを「穴」の範囲で呼び出すのと同じです。
参照
CustomRatesDelete、CustomRatesUpdate、CustomTicksDelete、CopyTicks、CopyTicksRange
CustomBookAdd
銘柄の板情報の構造体を渡します。ブローカーサーバーから価格が到着したかのように板情報をブロードキャストできます。
int CustomBookAdd( |
パラメータ
symbol
[in] カスタム銘柄名。
books[]
[in] The array of MqlBookInfo型データの配列で板情報のステータスを完全に記述します(すべての売買リクエスト)。渡された板情報は以前の者を完全に置き換えます。
count=WHOLE_ARRAY
[in] 関数に渡される’books’配列要素の数。デフォルトでは配列全体が使用されます。
戻り値
追加されたティック数(エラーの場合は -1 )。
注意事項
CustomBookAdd関数は板情報が開かれたカスタム銘柄とのみ作動します(プラットフォームインターフェイスまたはMarketBookAdd関数による)。
板情報を投入したとき、銘柄の買値と売値は更新されません。CustomTicksAddを使用して、最良価格の変更を制御してティックを投入する必要があります。
渡されたデータの妥当性が確認されます。価格と数量は負にすることはできません。また、各要素では、型、価格、数量(MqlBookInfo.volumeまたはMqlBookInfo.volume_real)も指定する必要があります。少なくとも1つの板情報要素が誤って記述されている場合、システムは渡されたステータスを完全に破棄します。
MqlBookInfo.volume_real拡張精度ボリュームは、通常のMqlBookInfo.volumeよりも優先順位が高くなります。板情報要素に両方の値が指定されている場合は、volume_realの値が使用されます。
‘books’配列内のMqlBookInfo要素の順序は関係ありません。データを保存するとき、端末は独自に価格によってデータを分類します。
データを保存するとき、受け取り側のカスタム銘柄の”Book depth” (SYMBOL_TICKS_BOOKDEPTH)パラメータが確認されます。渡された板情報で売りリクエストの数がこの値を超えると、超過レベルは破棄されます。買いリクエストについても同様です。
‘books’配列の書き込み例:
板情報ステータス | books[]の書き込み |
---|---|
books[0].type=BOOK_TYPE_SELL; |
例:
//+——————————————————————+ |
参照
MarketBookAdd、CustomTicksAdd、 OnBookEvent
Originally posted 2019-07-30 09:18:58.