口座情報を調べる関数には「AccountInfoDouble」「AccountInfoInteger」「AccountInfoString」があります。このうち「AccountInfoDouble」で取得する項目について、どれがどんな項目なのか忘れがちなのでここにまとめました。
AccountInfoDouble(ACCOUNT_BALANCE) // 口座残高 AccountInfoDouble(ACCOUNT_PROFIT) // 未決済ポジションの含み損益 AccountInfoDouble(ACCOUNT_EQUITY) // 有効証拠金(口座残高に未決済ポジションの含み損益を加えたもの) AccountInfoDouble(ACCOUNT_MARGIN) // 必要証拠金 AccountInfoDouble(ACCOUNT_MARGIN_FREE) // 余剰証拠金(有効証拠金から必要証拠金を引いた額。利用可能な額)
AccountInfoDouble(ACCOUNT_MARGIN_LEVEL) // 証拠金維持率(%) AccountInfoDouble(ACCOUNT_MARGIN_SO_CALL) // 証拠金コールレベル(%) 証拠金維持率がこのレベルを下回ると追加証拠金が必要となる可能性がある AccountInfoDouble(ACCOUNT_MARGIN_SO_SO) // 証拠金ストップアウトレベル(%) 証拠金維持率がこのレベルを下回るとポジションが強制的に決済される
なお、ヘルプを開いてAccountInfoDoubleのページを見ると、以上の項目を出力するスクリプトが載っています。
証拠金維持率の計算方法
証拠金維持率(%) = 有効証拠金 / 必要証拠金 × 100
「有効証拠金」は「口座残高 + 未決済ポジションの評価損益」なので、次のように書いても同じ。
証拠金維持率(%) = (口座残高 + 未決済ポジションの評価損益) / 必要証拠金 × 100