クライアント端末プロパティ
クライアント端末の情報は TerminalInfoInteger() 及び TerminalInfoString() の 2 つの関数で取得出来ます。パラメータにはそれぞれ ENUM_TERMINAL_INFO_INTEGER 及び ENUM_TERMINAL_INFO_STRING の値が使用されます。
ENUM_TERMINAL_INFO_INTEGER
識別子 | 説明 | 型 |
TERMINAL_BUILD | クライアント端末ビルド番号。 | int |
TERMINAL_COMMUNITY_ACCOUNT | フラグは、端末内のMQL5.community 認証データの存在を示します。 | bool |
TERMINAL_COMMUNITY_CONNECTION | MQL5.community への接続。 | bool |
TERMINAL_CONNECTED | 取引サーバへの接続。 | bool |
TERMINAL_DLLS_ALLOWED | DLLを使用する許可。 | bool |
TERMINAL_TRADE_ALLOWED | 約定許可。 | bool |
TERMINAL_EMAIL_ENABLED | 端末の設定で指定された SMTP サーバへの電子メールの送信及びログインの許可。 | bool |
TERMINAL_FTP_ENABLED | 端末の設定で指定された FTP サーバへのレポート送信及びログインの許可。 | bool |
TERMINAL_NOTIFICATIONS_ENABLED | スマートフォンに通知を送信するためのアクセス許可。 | bool |
TERMINAL_MAXBARS | チャートのバーの最大数。 | int |
TERMINAL_MQID | このフラグはプッシュ通知の MetaQuotes ID データが存在することを示します。 | bool |
TERMINAL_CODEPAGE | クライアント端末にインストールされた言語のコードページ。 | int |
TERMINAL_CPU_CORES | システム CPU コアの数。 | int |
TERMINAL_DISK_SPACE | 端末(エージェント)のMQL5 Filesフォルダの空きディスク容量(MB 単位)。 | int |
TERMINAL_MEMORY_PHYSICAL | システムの物理メモリ(MB 単位)。 | int |
TERMINAL_MEMORY_TOTAL | 端末のプロセス(エージェント)に使用可能なメモリ(MB 単位)。 | int |
TERMINAL_MEMORY_AVAILABLE | 端末(エージェント)プロセスの空きメモリ(MB 単位)。 | int |
TERMINAL_MEMORY_USED | 端末(エージェント)で使用されるメモリ(MB 単位)。 | int |
TERMINAL_X64 | 「64ビット端末」の表示。 | bool |
TERMINAL_OPENCL_SUPPORT | 0x00010002 = 1.2 形式でのサポートされている OpenCL のバージョン。「 0 」は OpenCL をサポートがないことを意味します。 | int |
TERMINAL_SCREEN_DPI | 画像の情報出力解像度は、DPIで測定されます。 このパラメータを知ることで、異なる解像度のモニターで同じように表示されるように、グラフィックオブジェクトのサイズを指定することができます。 | int |
TERMINAL_SCREEN_LEFT | 仮想画面の左座標です。仮想画面はすべてのモニターをカバーする四角形です。システムに右から左に並べた2つのモニターがある場合、仮想スクリーンの左の座標は2つのモニターの境界になります。 | int |
TERMINAL_SCREEN_TOP | 仮想画面の上部座標です。 | int |
TERMINAL_SCREEN_WIDTH | 端末幅 | int |
TERMINAL_SCREEN_HEIGHT | 端末の高さ | int |
TERMINAL_LEFT | 仮想画面に相対した端末の左座標です。 | int |
TERMINAL_TOP | 仮想画面に相対した端末の上部座標です。 | int |
TERMINAL_RIGHT | 仮想画面に相対した端末の右座標です。 | int |
TERMINAL_BOTTOM | 仮想画面に相対した端末の下部座標です。 | int |
TERMINAL_PING_LAST | 取引サーバまでの既知のping値は、マイクロ秒単位です。1秒は100万マイクロ秒です | int |
TERMINAL_VPS | Indication that the terminal is launched on the MetaTrader Virtual Hosting server (MetaTrader VPS) | bool |
キー識別子 | 説明 |
|
TERMINAL_KEYSTATE_LEFT | 「左矢印」キーの状態 | int |
TERMINAL_KEYSTATE_UP | 「上矢印」キーの状態 | int |
TERMINAL_KEYSTATE_RIGHT | 「右矢印」キーの状態 | int |
TERMINAL_KEYSTATE_DOWN | 「下矢印」キーの状態 | int |
TERMINAL_KEYSTATE_SHIFT | 「Shift」キーの状態 | int |
TERMINAL_KEYSTATE_CONTROL | 「Ctrl」キーの状態 | int |
TERMINAL_KEYSTATE_MENU | 「Windows」キーの状態 | int |
TERMINAL_KEYSTATE_CAPSLOCK | 「CapsLock」キーの状態 | int |
TERMINAL_KEYSTATE_NUMLOCK | 「NumLock」キーの状態 | int |
TERMINAL_KEYSTATE_SCRLOCK | 「ScrollLock」キーの状態 | int |
TERMINAL_KEYSTATE_ENTER | 「Enter」キーの状態 | int |
TERMINAL_KEYSTATE_INSERT | 「Insert」キーの状態 | int |
TERMINAL_KEYSTATE_DELETE | 「Delete」キーの状態 | int |
TERMINAL_KEYSTATE_HOME | 「Home」キーの状態 | int |
TERMINAL_KEYSTATE_END | 「End」キーの状態 | int |
TERMINAL_KEYSTATE_TAB | 「Tab」キーの状態 | int |
TERMINAL_KEYSTATE_PAGEUP | 「PageUp」キーの状態 | int |
TERMINAL_KEYSTATE_PAGEDOWN | 「PageDown」キーの状態 | int |
TERMINAL_KEYSTATE_ESCAPE | 「Escape」キーの状態 | int |
TerminalInfoInteger(TERMINAL_KEYSTATE_XXX)の呼び出しは、GetKeyState()関数と同じキーの状態を示すコードを返します。
例 スケーリング係数を計算します:
//— 画面に1.5インチの幅のボタンを作成します //— 百分率でのスケーリング係数の計算 |
こういった場合、グラフィックリソースは、異なる解像度のモニター上で見た目が同じサイズになります。その際、制御要素のサイズ(ボタン、ダイアログボックスなど)は個々の設定に相応します。
ENUM_TERMINAL_INFO_DOUBLE
識別子 | 説明 | 型 |
TERMINAL_COMMUNITY_BALANCE | MQL5.community の残高。 | double |
TERMINAL_RETRANSMISSION | 指定されたコンピュータ上のすべての実行中のアプリケーションおよびサービスのTCP/IPプロトコルにおけるネットワークパケットの再再送信率。パケットロスは、最速かつ正しく設定されたネットワークでも発生し、受信者と送信者との間のパケット配信の確認がないため、失われたパケットは再送信されます。
これは特定の端末と取引サーバ間の接続品質を示すものではありません。これは、システムおよびバックグラウンド・アクティビティを含むネットワーク・アクティビティ全体でパーセンテージが計算されるためです。
TERMINAL_RETRANSMISSION値は、オペレーティングシステムから1分に1回要求されます。ターミナル自体はこの値を計算しません。 | double |
ファイル操作は 2 つのディレクトリでのみ実行でき、パスは TERMINAL_DATA_PATH 及び TERMINAL_COMMONDATA_PATH プロパティをリクエストして見つけられます。
ENUM_TERMINAL_INFO_STRING
識別子 | 説明 | 型 |
TERMINAL_LANGUAGE | 端末の言語。 | string |
TERMINAL_COMPANY | 会社名。 | string |
TERMINAL_NAME | 端末名。 | string |
TERMINAL_PATH | 端末が起動されるフォルダ。 | string |
TERMINAL_DATA_PATH | 端末データが格納されるフォルダ。 | string |
TERMINAL_COMMONDATA_PATH | コンピュータにインストールされている全ての端末の共通パス。 | string |
TERMINAL_PATH、TERMINAL_DATA_PATH 及び TERMINAL_COMMONDATA_PATH パラメータに格納されているパスをより良く理解するために、お使いのコンピュータにインストールされた、クライアント端末の現在のコピーに属する値を返すスクリプトを実行することをお勧めします。
この例のスクリプトはクライアント端末のパス情報を返します。
//+——————————————————————+ |
スクリプトの実行の結果、エキスパート操作ログに次のようなメッセージが表示されます。
MQL5 プログラム実行プロパティ
実行中の MQL5 プログラムの情報取得には ENUM_MQL_INFO_INTEGER 及び ENUM_MQL_INFO_STRING からの定数が使用されます。
MQLInfoInteger 関数
ENUM_MQL_INFO_INTEGER
識別子 | 説明 | Type |
MQL_MEMORY_LIMIT | MQL5 プログラムの最大動的メモリ量( MB 単位)。 | int |
MQL_MEMORY_USED | MQL5 プログラムのメモリ使用量( MB 単位)。 | int |
MQL_PROGRAM_TYPE | MQL5 プログラムの種類。 | ENUM_PROGRAM_TYPE |
MQL_DLLS_ALLOWED | 指定された実行プログラムで DLL を使用する許可。 | bool |
MQL_TRADE_ALLOWED | 指定された実行プログラムでの取引許可。 | bool |
MQL_SIGNALS_ALLOWED | 指定された実行プログラムでシグナルを変更する許可。 | bool |
MQL_DEBUG | デバグモードを示すフラグ。 | bool |
MQL_PROFILER | プログラムがコードプロファイリングモードで動作することを示すフラグ。 | bool |
MQL_TESTER | テスタプロセスを示すフラグ。 | bool |
MQL_FORWARD | Indication that the program is running in the forward testing process | bool |
MQL_OPTIMIZATION | 最適化プロセスを示すフラグ。 | bool |
MQL_VISUAL_MODE | ビジュアルテスタプロセスを示すフラグ。 | bool |
MQL_FRAME_MODE | エキスパートアドバイザーが最適化結果のフレーム収集モード で動作されるというフラグ。 | bool |
MQL_LICENSE_TYPE | EX5 モジュールのライセンスの種類。ライセンスは MQLInfoInteger(MQL_LICENSE_TYPEを使用してリクエストされた EX5 モジュールを指します。 | ENUM_LICENSE_TYPE |
MQLInfoString 関数
ENUM_MQL_INFO_STRING
識別子 | 説明 | Type |
MQL_PROGRAM_NAME | 実行される MQL5 プログラムの名称。 | string |
MQL5_PROGRAM_PATH | 指定されたプログラムのパス。 | string |
実行中のプログラムの情報には、ENUM_PROGRAM_TYPE の値が使用されます。
ENUM_PROGRAM_TYPE
識別子 | 説明 |
PROGRAM_SCRIPT | スクリプト。 |
PROGRAM_EXPERT | エキスパート。 |
PROGRAM_INDICATOR | 指標。 |
ENUM_LICENSE_TYPE
識別子 | 説明 |
LICENSE_FREE | 無制限の無料版。 |
LICENSE_DEMO | マーケットから購入した製品の試用版。ストラテジーテスターー内のみで使用出来ます。 |
LICENSE_FULL | 購入したライセンス版では、少なくとも 5 アクティベーションが可能です。アクティベーションの数は、売主によって指定されます。売主は、アクティベーションの許容数を増加させることが出来ます。 |
LICENSE_TIME | 期間限定ライセンス版。 |
例:
ENUM_PROGRAM_TYPE mql_program=(ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE); |
シンボルプロパティ
現在の銘柄に関する情報の取得には SymbolInfoInteger()、SymbolInfoDouble() 及び SymbolInfoString() の複数の関数を使用できます。1 番目のパラメータは銘柄名で、2 番目のパラメータの値には ENUM_SYMBOL_INFO_INTEGER、ENUM_SYMBOL_INFO_DOUBLE 及び ENUM_SYMBOL_INFO_STRING の識別子が使用出来ます。
SymbolInfoInteger() 関数には
ENUM_SYMBOL_INFO_INTEGER
識別子 | 説明 | 種類 |
SYMBOL_CUSTOM | カスタムシンボルです。シンボルは板情報および/または外部データソースからの他のシンボルに基づいて総合的に作成されています。 | bool |
SYMBOL_BACKGROUND_COLOR | 「気配値表示」のシンボルに使用されている背景色。 | color |
SYMBOL_CHART_MODE | シンボルバーを生成するために使用される価格の種類(BidまたはLast)。 | ENUM_SYMBOL_CHART_MODE |
SYMBOL_EXIST | Symbol with this name exists | bool |
SYMBOL_SELECT | 「気配値表示」でシンボルが選択されています。 | bool |
SYMBOL_VISIBLE | シンボルは気配値表示で表示されます。
一部のシンボル(主に、証拠金の計算や預金通貨の利益の計算に必要なクロスレート)は自動的に選択されますが、一般的に気配値表示には表示されません。そのようなシンボルを表示するには、それらを明示的に選択する必要があります。 | bool |
SYMBOL_SESSION_DEALS | 現在のセッションの約定数。 | long |
SYMBOL_SESSION_BUY_ORDERS | 現時点での買い注文の数。 | long |
SYMBOL_SESSION_SELL_ORDERS | 現時点での売り注文の数。 | long |
SYMBOL_VOLUME | 最終約定ボリューム。 | long |
SYMBOL_VOLUMEHIGH | 一日の最大ボリューム。 | long |
SYMBOL_VOLUMELOW | 一日の最小ボリューム。 | long |
SYMBOL_TIME | 最終の相場の時刻。 | datetime |
SYMBOL_DIGITS | 小数点以下の桁数。 | int |
SYMBOL_SPREAD_FLOAT | 変動スプレッドの表示。 | bool |
SYMBOL_SPREAD | ポイント単位でのスプレッド値。 | int |
SYMBOL_TICKS_BOOKDEPTH | 板情報で表示されるリクエストの最高数。要求のないキューを持っていないシンボルの場合、値はゼロに等しいです。 | int |
SYMBOL_TRADE_CALC_MODE | 契約価格計算モード。 | ENUM_SYMBOL_CALC_MODE |
SYMBOL_TRADE_MODE | 注文実行の種類。 | ENUM_SYMBOL_TRADE_MODE |
SYMBOL_START_TIME | シンボル取引開始の日(通常は先物取引に使用) | datetime |
SYMBOL_EXPIRATION_TIME | シンボル取引終了の日(通常は先物取引に使用)。 | datetime |
SYMBOL_TRADE_STOPS_LEVEL | 現在の終値から逆指値注文を配置する場合の最少のインデント(ポイント単位)。 | int |
SYMBOL_TRADE_FREEZE_LEVEL | 取引業務を凍結までの距離(ポイント単位)。 | int |
SYMBOL_TRADE_EXEMODE | 約定実行モード。 | ENUM_SYMBOL_TRADE_EXECUTION |
SYMBOL_SWAP_MODE | スワップ計算モデル。 | ENUM_SYMBOL_SWAP_MODE |
SYMBOL_SWAP_ROLLOVER3DAYS | トリプルスワップが加算される曜日。 | ENUM_DAY_OF_WEEK |
SYMBOL_MARGIN_HEDGED_USE_LEG | より大きな脚を使用したヘッジ証拠金の計算(売りまたは買い)。 | bool |
SYMBOL_EXPIRATION_MODE | 注文期限切れモードの可能なフラグ。 | int |
SYMBOL_FILLING_MODE | 注文充填モードの可能なフラグ。 | int |
SYMBOL_ORDER_MODE | 注文の種類に使用可能なフラグ。 | int |
SYMBOL_ORDER_GTC_MODE | SYMBOL_EXPIRATION_MODE=SYMBOL_EXPIRATION_GTC(キャンセルされるまで有効)の場合の、決済逆指値及び決済指値の期限</ t2>。 | ENUM_SYMBOL_ORDER_GTC_MODE |
SYMBOL_OPTION_MODE | オプションの種類。 | ENUM_SYMBOL_OPTION_MODE |
SYMBOL_OPTION_RIGHT | オプション特権 (買い/売り)。 | ENUM_SYMBOL_OPTION_RIGHT |
SymbolInfoDouble() 関数では
ENUM_SYMBOL_INFO_DOUBLE
識別子 | 説明 | 種類 |
SYMBOL_BID | 売値 – ベストセルオファー。 | double |
SYMBOL_BIDHIGH | 一日の最高売値。 | double |
SYMBOL_BIDLOW | 一日の最低売値。 | double |
SYMBOL_ASK | 買値 – ベストバイオファー。 | double |
SYMBOL_ASKHIGH | 一日の最高買値。 | double |
SYMBOL_ASKLOW | 一日の最低買値。 | double |
SYMBOL_LAST | 直近約定値。 | double |
SYMBOL_LASTHIGH | 一日の最高直近価格。 | double |
SYMBOL_LASTLOW | 一日の最低直近価格。 | double |
SYMBOL_VOLUME_REAL | 最終約定ボリューム。 | double |
SYMBOL_VOLUMEHIGH_REAL | 一日の最大ボリューム。 | double |
SYMBOL_VOLUMELOW_REAL | 一日の最小ボリューム。 | double |
SYMBOL_OPTION_STRIKE | オプションの行使価格。オプションの買い手が原資産を(コールオプションで)購入したり、(プットオプションで)販売することが出来、オプションの売り手が原資産の適切な量を売買する義務がある価格。 | double |
SYMBOL_POINT | シンボルのポイント値。 | double |
SYMBOL_TRADE_TICK_VALUE | SYMBOL_TRADE_TICK_VALUE_PROFIT の値。 | double |
SYMBOL_TRADE_TICK_VALUE_PROFIT | 収益性の高いポジションの計算されたティック価格。 | double |
SYMBOL_TRADE_TICK_VALUE_LOSS | 負けポジションの計算されたティック価格。 | double |
SYMBOL_TRADE_TICK_SIZE | 最少の価格変化。 | double |
SYMBOL_TRADE_CONTRACT_SIZE | 取引契約サイズ。 | double |
SYMBOL_TRADE_ACCRUED_INTEREST | 未収利息。- 累積されたクーポンの利子、すなわち、クーポン債の発行または最後のクーポンの支払からの日数に比例して計算されたクーポンの利子の一部。 | double |
SYMBOL_TRADE_FACE_VALUE | Face value – 発行者が設定した初期債券価値。 | double |
SYMBOL_TRADE_LIQUIDITY_RATE | 流動性率とは、証拠金に使用できる資産のシェアで。 | double |
SYMBOL_VOLUME_MIN | 約定の最小ボリューム。 | double |
SYMBOL_VOLUME_MAX | 約定の最大ボリューム。 | double |
SYMBOL_VOLUME_STEP | 約定実行のための最小限のボリューム変化のステップ。 | double |
SYMBOL_VOLUME_LIMIT | シンボルの片方向(売または買)のオープンポジションと未決注文の最大許容総額。例えば、制限が 5 ロットの場合、5 ロットのボリュームでオープン買いポジションを持つことができ、5 ロットのボリュームで、売り指値注文をすることが出来ます。しかし、この場合には、1 方向の総ボリュームが制限を超えてしまうため、買い指値注文をすることや 5 ロット以上の売り指値注文をすることは出来ません。 | double |
SYMBOL_SWAP_LONG | 長期スワップ値。 | double |
SYMBOL_SWAP_SHORT | 短期スワップ値。 | double |
SYMBOL_MARGIN_INITIAL | 当初証拠金とは、1 ロットのボリュームで注文を出すのに必要な証拠金の証拠金通貨での量です。これは、クライアントが市場に入った時に、資産をチェックするために使用されます。 | double |
SYMBOL_MARGIN_MAINTENANCE | 維持証拠金。設定されている場合、1 ロットから課金される、シンボルの証拠金通貨での証拠金量を設定します。これは、クライアントの口座状態が変わった時に、資産をチェックするために使用されます。維持証拠金が 0 に等しい場合、当初証拠金が使用されます。 | double |
SYMBOL_SESSION_VOLUME | 現在のセッション約定ボリュームの概要。 | double |
SYMBOL_SESSION_TURNOVER | 現在のセッションの概要売上高。 | double |
SYMBOL_SESSION_INTEREST | 建玉概要。 | double |
SYMBOL_SESSION_BUY_ORDERS_VOLUME | 現在の買い注文のボリューム。 | double |
SYMBOL_SESSION_SELL_ORDERS_VOLUME | 現在の売り注文のボリューム。 | double |
SYMBOL_SESSION_OPEN | 現在のセッションの始値。 | double |
SYMBOL_SESSION_CLOSE | 現在のセッションの終値。 | double |
SYMBOL_SESSION_AW | 現在のセッションの加重平均価格。 | double |
SYMBOL_SESSION_PRICE_SETTLEMENT | 現在のセッションの決済価格。 | double |
SYMBOL_SESSION_PRICE_LIMIT_MIN | 現在のセッションの最安値。 | double |
SYMBOL_SESSION_PRICE_LIMIT_MAX | 現在のセッションの最高値。 | double |
SYMBOL_MARGIN_HEDGED | ヘッジポジション(1つのシンボルでの両建て)の1ロットの約定または証拠金の額。ヘッジポジションの証拠金計算の方法は2つあります。計算方法はブローカーによって決められます。
基本的な計算:
最大ポジションによる計算:
| double |
SymbolInfoString() 関数では
ENUM_SYMBOL_INFO_STRING
識別子 | 説明 | 種類 |
SYMBOL_BASIS | デリバティブの原資産。 | string |
SYMBOL_CURRENCY_BASE | シンボルの基本通貨。 | string |
SYMBOL_CURRENCY_PROFIT | 利益通貨。 | string |
SYMBOL_CURRENCY_MARGIN | 証拠金通貨。 | string |
SYMBOL_BANK | 現在の相場のフィーダー。 | string |
SYMBOL_DESCRIPTION | シンボル説明。 | string |
SYMBOL_FORMULA | カスタムシンボルプライシングに使用される公式。 | string |
SYMBOL_ISIN | ISIN システム( International Securities Identification Number )での銘柄名。International Securities Identification Number はセキュリティを識別する一意の 12 桁の英数字コードです。このシンボルプロパティの存在は取引サーバ側で決定されます。 | string |
SYMBOL_PAGE | シンボル情報を含むWebページのアドレスで、端末でシンボルプロパティを表示するときにリンクとして表示されます。 | string |
SYMBOL_PATH | シンボルツリーパス。 | string |
シンボル価格表は、Bid価格またはLast価格に基づくことができます。シンボルチャートのために選択された価格は、端末のバーの生成および表示にも影響します。SYMBOL_CHART_MODEプロパティの値は、ENUM_SYMBOL_CHART_MODEに記述されています。
ENUM_SYMBOL_CHART_MODE
識別子 | 説明 |
SYMBOL_CHART_MODE_BID | バーがBid価格に基づいています。 |
SYMBOL_CHART_MODE_LAST | バーがLast価格に基づいています。 |
各シンボルで、未決注文の期限のモードを指定することが出来ます。フラグが各モードに一致します。フラグは SYMBOL_EXPIRATION_GTC|SYMBOL_EXPIRATION_SPECIFIED のように、論理 OR( | )を持って結合することが出来ます。モードがシンボルで許可されているかどうかの確認には、論理 AND ( & )を使用してのフラグとの比較が使用されます。.
シンボルに SYMBOL_EXPIRATION_SPECIFIED フラグが指定されている場合、送信時に未決注文の期限を指定することが出来ます。
識別子 | 値 | 説明 |
SYMBOL_EXPIRATION_GTC | 1 | 注文は明示的にキャンセルされるまで、無制限の期間中有効です。 |
SYMBOL_EXPIRATION_DAY | 2 | 注文は日の終わりまで有効です。 |
SYMBOL_EXPIRATION_SPECIFIED | 4 | 有効期限の時刻が注文に指定されています。 |
SYMBOL_EXPIRATION_SPECIFIED_DAY | 8 | 有効期限の日付が注文に指定されています。 |
例:
//+——————————————————————+ |
SYMBOL_EXPIRATION_MODEプロパティがSYMBOL_EXPIRATION_GTC(キャンセルするまで)に設定されている場合、未決注文の有効期限と決済逆指注文及び決済指値注文は、ENUM_SYMBOL_ORDER_GTC_MODE列挙を使用して追加設定する必要があります。
ENUM_SYMBOL_ORDER_GTC_MODE
識別子 | 説明 |
SYMBOL_ORDERS_GTC | 未決注文と決済逆指値及び決済指値は、明示的なキャンセルが行われるまで無期限に有効です。 |
SYMBOL_ORDERS_DAILY | 注文は1営業日のみ有効です。一日の終わりに、未決注文や決済逆指値及び決済指値はすべて削除されます。 |
SYMBOL_ORDERS_DAILY_EXCLUDING_STOPS | 取引日が変更すると、未決注文だけが削除され、決済逆指値及び決済指値は保持されます。 |
注文送信時に、注文内にボリュームの充填ポリシーを指定することが出来ます。各シンボルで可能な受注充填モードは表に指定されています。フラグを組み合わせて 1 つのシンボルのための複数のモードを設定することが出来ます。フラグは SYMBOL_FILLING_FOK|SYMBOL_FILLING_IOC のように、論理 OR ( | )を持って結合することが出来ます。モードがシンボルで許可されているかどうかの確認には、論理 AND ( & )を使用してのフラグとの比較が使用されます。
充填ポリシー。 | 識別子 | 値 | 説明 |
フィル・オア・キル。 | SYMBOL_FILLING_FOK | 1 | このポリシーは、約定は、必ず指定のボリュームで実行することが出来ることを意味します。金融商品の必要量は、市場で現在利用出来ない場合、注文は実行されません。必要なボリュームは、市場で現在利用可能ないくつかのオファーを使用して満たすことが出来ます。 |
即時またはキャンセル。 | SYMBOL_FILLING_IOC | 2 | この場合、トレーダーが注文の選択肢のうちで、市場で最大限に利用可能なボリュームの約定実行に同意します。注文の全てを満たすことが出来ない場合、利用可能なボリュームのみが満たされ、残りのボリュームはキャンセルされます。IOC注文を使用する可能性は取引サーバで決定されます。 |
リターン | 識別子はありません。 |
| このポリシーは、成行注文(売買)、リミットとストップ指値注文のみ、また「マーケット」または「エクスチェンジ」 実行を持つシンボルのみに使用されます。部分的充填の場合、残りのボリュームを持つ市場やリミット注文はキャンセルされず更に処理されます。 |
Request 及び Instant 実行モードでは成行注文では常に「フィル・オア・キル」が常に使用され、リミット注文では常に「リターン」ポリシーが使用されます。この場合、OrderSend または OrderSendAsync を使用して注文を送信する時、充填ポリシーを指定する必要はありません。
「マーケット」と「エクスチェンジ」実行モードでは、「リターン」ポリシーは常に全種類の注文に許可されています。他のポリシーが許可されているかどうかを調べるには、SYMBOL_FILLING_FOK とSYMBOL_FILLING_IOC プロパティを使用します。
例:
//+——————————————————————+ |
OrderSend() 関数を使用して取引リクエストを送る場合、操作によっては注文の種類を ENUM_ORDER_TYPE 列挙から指定することが必要です。シンボルには全ての注文の種類が許可されていない場合があります。SYMBOL_ORDER_MODE プロパティは許可されている注文種類のフラグを記述します。
識別子 | 値 | 説明 |
SYMBOL_ORDER_MARKET | 1 | 成行注文は売買とも使用可能です。 |
SYMBOL_ORDER_LIMIT | 2 | 指値注文(買い指値と売り指値)は使用可能です。 |
SYMBOL_ORDER_STOP | 4 | 逆指注文(売買)は使用可能です。 |
SYMBOL_ORDER_STOP_LIMIT | 8 | 指値つきストップ注文は売買とも使用可能です。 |
SYMBOL_ORDER_SL | 16 | 逆指注文は可能です。 |
SYMBOL_ORDER_TP | 32 | 決済指は使用可能です。 |
SYMBOL_ORDER_CLOSEBY | 64 | Close By操作の許可、つまり、同じ製品の反対方向のポジションによる決済です。このプロパティは、ヘッジ会計システム( ACCOUNT_MARGIN_MODE_RETAIL_HEDGING)を持つ口座で設定されます。 |
例:
//+——————————————————————+ |
ENUM_SYMBOL_CALC_MODE 列挙は、シンボルの証拠金要件を計算する方法についての情報を得るために使用されます。
ENUM_SYMBOL_CALC_MODE
識別子 | 説明 | 方式 |
SYMBOL_CALC_MODE_FOREX | 外為モード – 外国為替の利益と証拠金の計算。 | Margin: Lots * Contract_Size / Leverage * Margin_Rate
利益:(close_price – open_price) * Contract_Size*Lots |
SYMBOL_CALC_MODE_FOREX_NO_LEVERAGE | レバレッジなし外為モード – レバレッジを考慮しない外国為替銘柄の利益と証拠金の計算 | 証拠金:Lots * Contract_Size * Margin_Rate
利益: (close_price – open_price) * Contract_Size * Lots |
SYMBOL_CALC_MODE_FUTURES | 先物モード – 先物の証拠金と利益の計算。 | 証拠金:Lots * InitialMargin * Margin_Rate
利益: (close_price – open_price) * TickPrice / TickSize*Lots |
SYMBOL_CALC_MODE_CFD | CFD モード – CFD の証拠金と利益計算。 | 証拠金:Lots * ContractSize * MarketPrice * Margin_Rate
利益: (close_price – open_price) * Contract_Size * Lots |
SYMBOL_CALC_MODE_CFDINDEX | CFD インデックスモード – インデックスを使用した CFD の証拠金と利益計算 | 証拠金: (Lots * ContractSize * MarketPrice) * TickPrice / TickSize * Margin_Rate
利益: (close_price – open_price) * Contract_Size * Lots |
SYMBOL_CALC_MODE_CFDLEVERAGE | CFD レバレッジモード – レバレッジ取引での CFD の証拠金と利益計算 | 証拠金: (Lots * ContractSize * MarketPrice) / Leverage * Margin_Rate
利益: (close_price-open_price) * Contract_Size * Lots |
SYMBOL_CALC_MODE_EXCH_STOCKS | 交換モード – 証券取引所で有価証券を取引するための証拠金と利益計算。 | 証拠金:Lots * ContractSize * OpenPrice * Margin_Rate
利益: (close_price – open_price) * Contract_Size * Lots |
SYMBOL_CALC_MODE_EXCH_FUTURES | 先物モード – 証券取引所での取引先物契約の証拠金と利益計算。 | 証拠金: Lots * InitialMargin * Margin_Rate или Lots * MaintenanceMargin * Margin_Rate
利益: (close_price – open_price) * Lots * TickPrice / TickSize |
SYMBOL_CALC_MODE_EXCH_FUTURES_FORTS | FORTS 先物モード – FORTS での取引先物契約の証拠金と利益計算。証拠金は、次の規則に従って MarginDiscount のずれ量によって減少させることが出来ます。 1. ロングポジション(買い注文)の価格が見積価格よりも低い場合、証拠金割引 = ロット数 * ((Settle価格 – Order価格) * ティック価格 / ティックサイズ) 2. ショートポジション(売り注文)の価格が予定価格を超えた場合、証拠金割引 = ロット数 * ((Order価格 – Settle価格) * ティック価格 / ティックサイズ) ここで
| 証拠金: Lots * InitialMargin * Margin_Rate или Lots * MaintenanceMargin * Margin_Rate * Margin_Rate
利益: (close_price – open_price) * Lots * TickPrice / TickSize |
SYMBOL_CALC_MODE_EXCH_BONDS | Exchange Bonds mode – calculation of margin and profit for trading bonds on a stock exchange | Margin: Lots * ContractSize * FaceValue * open_price * /100
Profit: Lots * close_price * FaceValue * Contract_Size + AccruedInterest * Lots * ContractSize |
SYMBOL_CALC_MODE_EXCH_STOCKS_MOEX | Exchange MOEX Stocks mode – calculation of margin and profit for trading securities on MOEX | Margin: Lots * ContractSize * LastPrice * Margin_Rate
Profit: (close_price – open_price) * Contract_Size * Lots |
SYMBOL_CALC_MODE_EXCH_BONDS_MOEX | Exchange MOEX Bonds mode – calculation of margin and profit for trading bonds on MOEX | Margin: Lots * ContractSize * FaceValue * open_price * /100
Profit: Lots * close_price * FaceValue * Contract_Size + AccruedInterest * Lots * ContractSize |
SYMBOL_CALC_MODE_SERV_COLLATERAL | 担保モード – シンボルは、取引口座の取引不可能の資産として使用されています。ポジションの市場価値は、ボリューム、現在の市場価格、契約の大きさと流動性比率に基づいて算出されます。値は、株式に追加された資産の中に含まれます。この様なシンボルのポジションは余剰証拠金を増加し、ポジションの追加証拠金(担保)として使用されます。 | 証拠金:なし 利益:なし
市場価格ロット数 * 契約サイズ * マーケット価格 * LiqudityRate |
シンボル取引モードはいくつかあります。特定のシンボルの取引モードの詳細は、ENUM_SYMBOL_TRADE_MODE 列挙の値に反映されます。
ENUM_SYMBOL_TRADE_MODE
識別子 | 説明 |
SYMBOL_TRADE_MODE_DISABLED | シンボルの取引が無効。 |
SYMBOL_TRADE_MODE_LONGONLY | ロング(買い)ポジションのみ許可。 |
SYMBOL_TRADE_MODE_SHORTONLY | ショート(売り)ポジションのみ許可。 |
SYMBOL_TRADE_MODE_CLOSEONLY | ポジション決済操作のみを許可。 |
SYMBOL_TRADE_MODE_FULL | 取引制限なし。 |
可能なシンボルの約定実行モードは ENUM_SYMBOL_TRADE_EXECUTION で定義されています。
ENUM_SYMBOL_TRADE_EXECUTION
識別子 | 説明 |
SYMBOL_TRADE_EXECUTION_REQUEST | リクエストによる実行。 |
SYMBOL_TRADE_EXECUTION_INSTANT | 即時実行。 |
SYMBOL_TRADE_EXECUTION_MARKET | マーケット実行。 |
SYMBOL_TRADE_EXECUTION_EXCHANGE | エクスチェンジ実行。 |
ポジション転送時のスワップ計算の方法は ENUM_SYMBOL_SWAP_MODE 列挙で指定されています。スワップ計算の方法は SYMBOL_SWAP_LONG 及び SYMBOL_SWAP_SHORT パラメータの測定単位を決定します。例えば、スワップがクライアントの預金通貨で請求された場合、それらのパラメータの値は、クライアントの預金通貨での金額として指定されます。
ENUM_SYMBOL_SWAP_MODE
識別子 | 説明 |
SYMBOL_SWAP_MODE_DISABLED | スワップ無効。 |
SYMBOL_SWAP_MODE_POINTS | スワップはポイントとして請求されます。 |
SYMBOL_SWAP_MODE_CURRENCY_SYMBOL | スワップはシンボルの基本通貨で払われます。 |
SYMBOL_SWAP_MODE_CURRENCY_MARGIN | スワップはシンボルの証拠金通貨で払われます。 |
SYMBOL_SWAP_MODE_CURRENCY_DEPOSIT | スワップは、クライアントの預金通貨で請求されます。 |
SYMBOL_SWAP_MODE_INTEREST_CURRENT | スワップはスワップの計算の商品価格の指定年利として請求されます(標準銀行年は360日です)。 |
SYMBOL_SWAP_MODE_INTEREST_OPEN | スワップはポジションの始値から指定年利として請求されます(標準銀行年は360日です)。 |
SYMBOL_SWAP_MODE_REOPEN_CURRENT | スワップはポジションを再オープンすることによって請求されます。ポジションは取引日の終わりに閉じます。次の日に、終値 +/- 指定されたポイントの数 (パラメータ SYMBOL_SWAP_LONG 及び SYMBOL_SWAP_SHORT)で開けられます。 |
SYMBOL_SWAP_MODE_REOPEN_BID | スワップはポジションを再オープンすることによって請求されます。ポジションは取引日の終わりに閉じます。次の日に、現在の売値+/- 指定されたポイントの数(SYMBOL_SWAP_LONG 及び SYMBOL_SWAP_SHORT パラメータ)で開けられます。 |
ENUM_DAY_OF_WEEK 列挙の値は曜日の指定に使用されます。
ENUM_DAY_OF_WEEK
識別子 | 説明 |
SUNDAY | 日曜。 |
MONDAY | 月曜。 |
TUESDAY | 火曜。 |
WEDNESDAY | 水曜。 |
THURSDAY | 木曜。 |
FRIDAY | 金曜。 |
SATURDAY | 土曜。 |
オプションとは、特定の日またはそれ以前に特定の価格で原資産(商品、株式、先物、など)を購入したり、販売する権利(義務ではない)を与える契約です。以下の列挙はオプションの種類とそれから生じる権利を含むオプションのプロパティを記述します。
ENUM_SYMBOL_OPTION_RIGHT
識別子 | 説明 |
SYMBOL_OPTION_RIGHT_CALL | コール•オプションを使用すると、指定された価格で資産を買うことが出来ます。 |
SYMBOL_OPTION_RIGHT_PUT | プット•オプションを使用すると、指定された価格で資産を売ることが出来ます。 |
ENUM_SYMBOL_OPTION_MODE
識別子 | 説明 |
SYMBOL_OPTION_MODE_EUROPEAN | ヨーロッパのオプションは、指定された日付(有効期限、実行日、配達日)にのみ行使出来ます。 |
SYMBOL_OPTION_MODE_AMERICAN | アメリカのオプションは満了前の任意の取引日に行使することが出来ます。買い手がオプションを行使することが出来る期間は指定されています。 |
口座プロパティ
現在の口座に関する情報を取得するには AccountInfoInteger()、AccountInfoDouble() 及び AccountInfoString() の複数の関数があります。関数のパラメータは、対応するENUM_ACCOUNT_INFO の列挙からの値を受け入れることが出来ます。
AccountInfoInteger() 関数では
ENUM_ACCOUNT_INFO_INTEGER
識別子 | 説明 | Type |
ACCOUNT_LOGIN | 口座番号。 | long |
ACCOUNT_TRADE_MODE | 口座取引モード。 | ENUM_ACCOUNT_TRADE_MODE |
ACCOUNT_LEVERAGE | 口座レバレッジ。 | long |
ACCOUNT_LIMIT_ORDERS | アクティブな未決注文の最大許容数。 | int |
ACCOUNT_MARGIN_SO_MODE | 許容された最小証拠金を設定するモード。 | ENUM_ACCOUNT_STOPOUT_MODE |
ACCOUNT_TRADE_ALLOWED | 現在の口座で許可された取引。 | bool |
ACCOUNT_TRADE_EXPERT | エキスパートアドバイザーで許可された取引。 | bool |
ACCOUNT_MARGIN_MODE | Margin calculation mode | ENUM_ACCOUNT_MARGIN_MODE |
ACCOUNT_CURRENCY_DIGITS | 取引結果を正確に表示するために必要な口座通貨の小数点以下の桁数 | int |
AccountInfoDouble() 関数では
ENUM_ACCOUNT_INFO_DOUBLE
識別子 | 説明 | Type |
ACCOUNT_BALANCE | 預金通貨での勘定残高。 | double |
ACCOUNT_CREDIT | 預金通貨での口座のクレジット。 | double |
ACCOUNT_PROFIT | 預金通貨での現在の利益。 | double |
ACCOUNT_EQUITY | 預金通貨の口座株式。 | double |
ACCOUNT_MARGIN | 預金通貨での使用された口座の証拠金。 | double |
ACCOUNT_MARGIN_FREE | 預金通貨での口座の余剰証拠金。 | double |
ACCOUNT_MARGIN_LEVEL | 百分率で表した口座証拠金レベル。 | double |
ACCOUNT_MARGIN_SO_CALL | 証拠金コールレベル。ACCOUNT_MARGIN_SO_MODE の設定によってパーセントまたは預金通貨で表されます。 | double |
ACCOUNT_MARGIN_SO_SO | 証拠金ストップアウトレベル。ACCOUNT_MARGIN_SO_MODE の設定によってパーセントまたは預金通貨で表されます。 | double |
ACCOUNT_MARGIN_INITIAL | 当初証拠金。全ての未決注文の証拠金をカバーするために口座内でリザーブされた額。 | double |
ACCOUNT_MARGIN_MAINTENANCE | 維持証拠金。全ての未決済ポジションの最小額をカバーするために口座内でリザーブされた最低資本金。 | double |
ACCOUNT_ASSETS | 口座の流動資産。 | double |
ACCOUNT_LIABILITIES | 口座の流動負債。 | double |
ACCOUNT_COMMISSION_BLOCKED | 口座の現在のブロックされた手数料の額。 | double |
AccountInfoString() 関数では
ENUM_ACCOUNT_INFO_STRING
識別子 | 説明 | Type |
ACCOUNT_NAME | クライアント名。 | string |
ACCOUNT_SERVER | 取引サーバ名。 | string |
ACCOUNT_CURRENCY | 口座通貨。 | string |
ACCOUNT_COMPANY | 口座を提供する会社の名称。 | string |
取引サーバ上で開くことが出来る口座にはいくつかの種類があります。MQL5 が実行されている口座の種類は ENUM_ACCOUNT_TRADE_MODE 列挙を使用して見つけることが出来ます。
ENUM_ACCOUNT_TRADE_MODE
識別子 | 説明 |
ACCOUNT_TRADE_MODE_DEMO | デモ口座。 |
ACCOUNT_TRADE_MODE_CONTEST | コンテスト口座。 |
ACCOUNT_TRADE_MODE_REAL | リアル口座。 |
資本が保有中ポジションを維持するために不充分な場合には、ストップアウト、すなわち強制閉鎖が発生します。ストップアウトが起こる最小証拠金レベルは百分率または金銭で設定することが出来ます。口座がどちらのモードを使用するかは ENUM_ACCOUNT_STOPOUT_MODE 列挙で見つけられます。
ENUM_ACCOUNT_STOPOUT_MODE
識別子 | 説明 |
ACCOUNT_STOPOUT_MODE_PERCENT | 口座ストップアウトの百分率モード。 |
ACCOUNT_STOPOUT_MODE_MONEY | 口座ストップアウトの通貨モード。 |
ENUM_ACCOUNT_MARGIN_MODE
Identifier | Description |
ACCOUNT_MARGIN_MODE_RETAIL_NETTING | 『ネッティング』モード(1つのシンボルに対し、1つのポジションのみ)におけるポジション計算時に市場外市場の為に使用されます。商品種別をベースに証拠金の計算が行われます(SYMBOL_TRADE_CALC_MODE)。 |
ACCOUNT_MARGIN_MODE_EXCHANGE | 株式市場で使用されます。商品設定で指定された割引に基づいて証拠金が計算されます。割引はブローカーによって設定されますが、取引所が決めた額よりも低くなることはありません。 |
ACCOUNT_MARGIN_MODE_RETAIL_HEDGING | 株式市場外の独立したポジション計算時(『ヘッジング』は一つのシンボルに対し複数のポジションを保有することができる)に使用されます。商品種別(SYMBOL_TRADE_CALC_MODE)に基づき、ヘッジ対象証拠金のサイズを考慮して(SYMBOL_MARGIN_HEDGED)証拠金の計算が行われます。 |
下記は簡単な口座情報を出力するスクリプトの例です。
//+——————————————————————+ |
テスト統計
テスト終了後には、取引結果統計のいろいろなパラメータが計算されます。パラメータ値は ENUM_STATISTICS 列挙からパラメータ ID を指定して TesterStatistics() 関数で取得されます。
統計の計算には 2 種類のパラメータ( int とdouble )が使用されますが、関数は全ての値を double で返します。double 型の統計値は、特に指定しない限りデフォルトでは預金通貨で表現されています。
ENUM_STATISTICS
ID | 統計パラメータの説明 | Type |
STAT_INITIAL_DEPOSIT | 頭金の値。 | double |
STAT_WITHDRAWAL | 口座から引き落とされたお金。 | double |
STAT_PROFIT | テスト後の純利益で、STAT_GROSS_PROFIT と STAT_GROSS_LOSS の合計(STAT_GROSS_LOSS は常にゼロか負)。 | double |
STAT_GROSS_PROFIT | 総利益(全ての収益性(正)の取引の合計)。値はゼロ以上です。 | double |
STAT_GROSS_LOSS | 総損失(全ての負の取引の合計)。値はゼロ以下です。 | double |
STAT_MAX_PROFITTRADE | 最大の利益 – 全ての勝ち取引の最大値。値はゼロ以上です。 | double |
STAT_MAX_LOSSTRADE | 最大損失 – 全ての負け取引の最安値。値はゼロ以下です。 | double |
STAT_CONPROFITMAX | 一連の勝ち取引での最大利益。値はゼロ以上です。 | double |
STAT_CONPROFITMAX_TRADES | STAT_CONPROFITMAX を形成している取引の数(一連の勝ち取引の内の、最大の利益)。 | int |
STAT_MAX_CONWINS | 勝ち取引の最も長い一連の利益総額。 | double |
STAT_MAX_CONPROFIT_TRADES | 勝ち取引の最長シリーズの取引回数 STAT_MAX_CONWINS。 | int |
STAT_CONLOSSMAX | 一連の負け取引での最大損失。値はゼロ以下です。 | double |
STAT_CONLOSSMAX_TRADES | STAT_CONLOSSMAX を形成している取引の数 (一連の負け取引での最大損失)。 | int |
STAT_MAX_CONLOSSES | 負け取引の最長シリーズでの損失総額。 | double |
STAT_MAX_CONLOSS_TRADES | 負け取引の最長シリーズの取引回数( STAT_MAX_CONLOSSES )。 | int |
STAT_BALANCEMIN | 最低残高値。 | double |
STAT_BALANCE_DD | 金額での最大残高ドローダウン。取引過程では多数の残高ドローダウンがあります。ここで最大値が取得されます。 | double |
STAT_BALANCEDD_PERCENT | 最大ドローダウンバランスの瞬間に記録された金額の百分率でのバランスドローダウン(STAT_BALANCE_DD)。 | double |
STAT_BALANCE_DDREL_PERCENT | 最大残高ドローダウン(%)。取引過程では多数のドローダウンがあり、各ドローダウンで百分率での相対ドローダウン値が算出されます。最高値が返されます。 | double |
STAT_BALANCE_DD_RELATIVE | 最高残高ドローダウンの際に記録された、金額の百分率で表された残高ドローダウン(STAT_BALANCE_DDREL_PERCENT)。 | double |
STAT_EQUITYMIN | 最低株式値。 | double |
STAT_EQUITY_DD | 金額での最大株式ドローダウン。取引過程では多数のドローダウンがあります。ここで最大値が取得されます。 | double |
STAT_EQUITYDD_PERCENT | 最高残高ドローダウンの際に記録された、金額の百分率で表された残高ドローダウン (STAT_EQUITY_DD)。 | double |
STAT_EQUITY_DDREL_PERCENT | 最大株式ドローダウン(%)。取引過程では多数の株式ドローダウンがあり、各ドローダウンで百分率での相対ドローダウン値が算出されます。最高値が返されます。 | double |
STAT_EQUITY_DD_RELATIVE | 最高株式ドローダウンの際に記録された、金額の百分率で表された株式ドローダウン(STAT_EQUITY_DDREL_PERCENT)。 | double |
STAT_EXPECTED_PAYOFF | 期待利得。 | double |
STAT_PROFIT_FACTOR | STAT_GROSS_PROFIT/STAT_GROSS_LOSS の比に等しい利益率。STAT_GROSS_LOSS=0 の場合、利益率は DBL_MAX。 | double |
STAT_RECOVERY_FACTOR | STAT_PROFIT/STAT_BALANCE_DD の比に等しい回復率。 | double |
STAT_SHARPE_RATIO | シャープレシオ。 | double |
STAT_MIN_MARGINLEVEL | 証拠金レベルの最小値。 | double |
STAT_CUSTOM_ONTESTER | OnTester() 関数が返したカスタムの最適化基準の計算値。 | double |
STAT_DEALS | 約定数。 | int |
STAT_TRADES | 取引数。 | int |
STAT_PROFIT_TRADES | 勝ち取引。 | int |
STAT_LOSS_TRADES | 負け取引。 | int |
STAT_SHORT_TRADES | 短期取引。 | int |
STAT_LONG_TRADES | 長期取引。 | int |
STAT_PROFIT_SHORTTRADES | 収益性の高い短期取引。 | int |
STAT_PROFIT_LONGTRADES | 収益性の高い長期取引。 | int |
STAT_PROFITTRADES_AVGCON | 一連の収益性の高い取引の平均の長さ。 | int |
STAT_LOSSTRADES_AVGCON | 一連の負け取引の平均の長さ。 | int |
Originally posted 2019-07-29 22:44:01.