前回は #include命令 について解説しました。
改めて前回の内容をおさらいをしておくと、
- #include命令は、メインプログラムに組み込むincludeファイルを指定する為の命令記述である。
- #include命令には、ファイル名を<>で囲む記述形式と、ダブルクォーテーション(“)で囲む記述形式の2パターンがある。
ということをお伝えしました。
今回は メタトレーダー5における、ネッティングシステムとヘッジングシステム についてお話ししたいと思います。
ネッティングシステムとヘッジングシステム とは?
メタトレーダー5には、2つのポジション管理システムがあります。
それがネッティングシステムとヘッジングシステムの2つです。
どちらのポジション管理システムに基づいて取引をするかは、口座を開設しているブローカーがどちらを採用しているかによって決まります。(口座開設時にどちらかを選択できるようになっていたり、後から変更できるような計らいをしてくれる業者もあります)
ネッティングシステムについて
ネッティングシステムの特徴1:ポジション保有は1銘柄につき1つ
ネッティングシステムにおいては、1つの取引銘柄にたいして1ポジションしか保有することができません。
例えば、買いのポジションをすでに1ポジション持っている場合で、追加の買いオーダーを出したとき、最初のポジションと統合されてロットは、最初のロット数と追加オーダーのロット数が合計されます。取得価格も最初のポジションと追加オーダーの価格を平均した価格に修正されることになります。
ネッティングシステムの特徴2:両建ては禁止
ネッティングシステムにおいては両建てによって、「買い」と「売り」両方向のポジションを持つことも許されていません。
(特徴1で挙げた「ポジション保有は1銘柄につき1つ」という原則に従えば当然ともいえる訳ですが)
例えば、1.0ロットのドル円買いポジションを持っていて、0.5ロットの売りオーダーを出した場合、
0.5ロット分持っている買いポジションが決済されることになります。
同様に、1.0ロットのドル円買いポジションを持っていて、今度は1.5ロットの売りオーダーを出した場合、持っている買いポジション1.0ロットが全て決済され、0.5ロット分の売りポジションを今度は保有することになります。↓
↑の動画はネッティングシステムの口座状況の変化を撮ったものです。
同一方向への追加ポジはロットが加算され、価格も平均化されます。
反対方向へのオーダーはロットダウン、もしくはクローズ、もしくは反対方向エントリーのどれかの結果になります(反対方向へのロット数に応じて変わります)。
ストップロスやテイクプロフィットも、追加した新しい方のオーダーで設定したものが適用されます。
↓の動画のように、例えばネッティングシステムにおいてドル円SL80,TP170の買いポジがあった時、追加の成行買いをSL100,TP200に設定して行うと、現行のポジのSLTPも100、200にそれぞれ変更されます。
メタトレーダー5(MT5)の提供開始当初は、このネッティングシステムしかポジション管理システムがありませんでしたが、2016年になり後述するヘッジングシステムが導入され、2つのポジション管理システムが並行して存在する現在に至っています。
ヘッジングシステムについて
一方ではヘッジングシステムは、1つの銘柄に対し、複数のポジションを保有することができるシステムです。
ブローカーにもよりますが、両建てもOKな場合も多いと思います。
メタトレーダー4を利用して取引している人には、馴染み深いシステムと言えるでしょう。
↑ご覧のようにヘッジングシステムにおいては1銘柄に対して複数ポジションの所有が可能で、両建てもブローカーによっては可能になっているのがお分かりいただけるかと思います。
アカウントタイプの確認方法
自分が利用しているブローカーのMT5口座のタイプがネッティングシステムタイプなのか、ヘッジングシステムタイプなのかを調べるには、メタトレーダー5のタイトルバー部分に書いてある記述で確認することができます。
<ネッティングシステムの場合↓>
<ヘッジングシステムの場合↓>
あるいは、AccountInfoInteger関数を使ったスクリプトで確認する方法もあります。
AccountInfoInteger関数は口座情報を取得出来る関数で、引数にACCOUNT_MARGIN_MODEを充てることで口座タイプを確認できます。
※AccountInfoInteger関数については↓の記事をご参照ください。
void OnStart()
{
long accountType=AccountInfoInteger(ACCOUNT_MARGIN_MODE);
switch(accountType)
{
case 0:
Comment( "口座タイプはネッティングタイプです");
break;
case 1:
Comment( "口座タイプはEXCHANGEタイプです");
break;
case 2:
Comment( "口座タイプはヘッジングタイプです");
break;
default:
Comment( "口座タイプを検知できませんでした");
}
}
↑のソースコードを実行すると・・・↓
ソースコードに使われているswitch文については↓の記事をご覧ください。
ネッティングとヘッジングとMQL5の関係
自分が作ったEAを運用するMT5口座がネッティングシステムなのか、ヘッジングシステムなのかを把握することは、MQL5を用いてEA(自動売買プログラム)を作る上でとても重要です。
ネッティングシステム口座においては、マルチポジション(=複数のポジションを保有する事)を前提としたEA(自動売買プログラム)は運用できないですし、エントリーや決済に関する記述もネッティングシステムとヘッジングシステムでは変わってきます。
にもかかわらず、MT5口座を開設しようという時に、各ブローカーのホームページ等を見ても、口座タイプがネッティングシステムなのか、ヘッジングシステムなのか、を明示している所は皆無ということです。
従って、アカウントタイプの確認方法 で説明した方法によって自身で確認するようにしましょう。
一応 個人的に国内外のMT5対応業者に以下のような内容の問い合わせメールを送ってみました。
恐れ入ります。
MT5にて取引を行う場合、御社のシステムはネッティングシステムとヘッジングシステムどちらを採用しておりますでしょうか?
お忙しいところ恐縮ですが、よろしくお願いいたします。
問い合わせをしたのは以下の業者になります。↓
※FXChoice、Alpari,FXOpen,FXProについては日本語非対応(もしくは判然としない)の為、拙い英語で問い合わせています。
メール問い合わせに対する各社の回答は以下の通りでした。↓
ネッティング・ヘッジングの問い合わせ結果、以下のようになりました。(回答なしの業者は省略) 想定通りヘッジングが多数である一方、了承選択できる海外業者が一定数あるのも印象的でした
この回答を踏まえると、ネッティングシステムが完全に死滅しているわけではない以上、完全無視という訳にもいきませんね(-_-;)
※あくまで個人として問い合わせたものに対する返答結果を掲載したものであり、各社の公式見解をしめしたものではありません。最終的な確認は必ずご自身で行っていただきますようお願いします。
業者名 | 採用システム |
オアンダジャパン | ヘッジング |
アヴァトレード・ジャパン | ヘッジング |
フィリップ証券 | ヘッジング |
外為ファイネスト | ヘッジング |
Axiory | テラ口座は「ヘッジングモード」、アルファ口座は「ネッティングモード」 |
XMTrading | ヘッジング |
GEMFOREX | ヘッジング |
FXPro | デフォルトはネッティング。後からヘッジングに変更可 |
BitForex | メタトレーダーの提供を2021年6月15日をもって終了 |
IFC Markets | 両方選択可 |
TradeView | 両方選択可 |
Alpari | 両方選択可 |
FXChoice | 両方選択可 |
まとめ
今回は ネッティングシステム と ヘッジングシステム について解説しました。
今回の記事では以下のことを学びました
- ネッティングシステムは、1つの取引銘柄にたいして1ポジションしか保有することができまない(両建てができない)。
- ネッティングシステムにおいて、同方向に追加オーダーを出したとき、最初のポジションと統合されてロットは、最初のロット数と追加オーダーのロット数が合計される。取得価格も最初のポジションと追加オーダーの価格を平均した価格に修正される。
- ヘッジングシステムは、1つの銘柄に対し、複数のポジションを保有することができるシステムである。両建ても可能なことが多い。
- MT5の口座タイプがネッティングシステムかヘッジングシステムかを確認するには、メタトレーダー5のタイトルバー部分に書いてある記述で確認するか、AccountInfoInteger関数を使って確認する。
今回は以上になります。
最後までお読みいただきありがとうございました<m(__)m>
※ヘッジングシステムを前提としたEA(自動売買プログラム)のサンプルコードはこの後の講座記事↓
にて紹介しています。
※を前提としたEA(自動売買プログラム)のサンプルコードはこの後の講座記事↓
MQL5 EA講座 第70回「簡単な仕組みのEAを作るーネッティングシステムの-場合ー」
にて紹介しています。
【超入門】MQL5 EA講座 第56回「#include命令(#include directive)」【EAの作り方】←
コメント