この記事では、MT5に初めからインストールされているcTraderライブラリを使用してヘッジアカウントのポジションを効率的にクローズや変更する方法について詳しく説明します。これにより、取引戦略の効果的な実装が可能となります。
cTraderライブラリの PositionClose() 関数は、チケット番号を引数として渡すことでポジションをクローズする指令を実行できます。deviation というパラメータにより、許容スリッページ範囲をポイント単位で指定することができます。ただし、deviation の設定は取引業者によって無効にされることがありますので注意が必要です。
PositionClose |
bool PositionClose( const ulong ticket, ulong deviation=ULONG_MAX ) |
cTraderライブラリの PositionModify() 関数にチケット番号、ストップロス(SL)値、テイクプロフィット(TP)値を引数として渡すことにより、ポジションの変更が可能となります。
なお、戻り値は注文の成功そのものではなく、基本構造体のチェックが正常に行われたかどうかを示すものです。
PosiotionModify |
bool PositionModify( const ulong ticket, double sl, double tp ) |
MQL4では、OrdersTotal()関数の戻り値によってエントリー中のポジション数を取得することができます。一方、MQL5のOrdersTotal()関数では、指値注文、逆指値注文、発注後未約定のオーダー数の合計が返されます。
エントリー中のポジション数を取得するには、MQL5ではPositionsTotal()関数の戻り値を用いることができます。これにより、現在のエントリー中のポジション数を正確に把握することが可能です。
各関数の戻り値に含まれる内容
MQL4 OrdersTotal |
MQL5 OrdersTotal |
MQL5 PositionsTotal |
エントリー中のポジション 指値、逆指値注文 発注後未約定のオーダー |
指値、逆指値注文 発注後未約定のオーダー |
エントリー中のポジション |
MQL4のOrderSelect()関数では、チケット番号またはポジションのインデックス番号を使ってポジションを選択できました。しかし、MQL5のOrderSelect()関数では、チケット番号のみを引数として渡す方法に変更され、ポジションのインデックス番号を使って選択することができなくなりました。
MQL5では、ポジションのインデックス番号を使って選択する場合、PositionGetTicket()関数を使用します。この関数の戻り値としてチケット番号が得られ、ポジションの選択も同時に行われます。ただし、戻り値の型はint型ではなく、ulong型であることに注意してください。
PositionGetTicket |
ulong PositionGetTicket( int index ); |
MQL5では、ポジション選択後にマジックナンバーを取得するために、PositionGetInteger()関数を使用します。POSITION_MAGICという識別子を引数として渡すことで、マジックナンバーが戻り値として取得できます。
例 |
long magic_number = PositionGetInteger(POSITION_MAGIC); |
使用例 |
#include |
解説)
林 貴晴(AMSER株式会社代表取締役)
内資系薬品会社で約10年勤務の後、
外資系製薬会社(現IQVIA及びGSK)で合計約10年を勤務
その後EA AMSERを開発し、その成績を評価され、株式会社ゴゴジャンの部長として抜擢。
現在はAMSER株式会社代表取締役、株式会社トリロジー他で役員を兼任。