【超入門】MQL5 EA講座 第57回「ネッティングとヘッジング」【EAの作り方】

MQL5でEA作ろう講座

前回は #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講座 第37回「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両方選択可
2022年9月時点での問い合わせに対する返答結果です。↑

まとめ

今回は ネッティングシステム と ヘッジングシステム について解説しました。

今回の記事では以下のことを学びました

今回は以上になります。

最後までお読みいただきありがとうございました<m(__)m>

ヘッジングシステムを前提としたEA(自動売買プログラム)のサンプルコードはこの後の講座記事↓

にて紹介しています。

※を前提としたEA(自動売買プログラム)のサンプルコードはこの後の講座記事↓

MQL5 EA講座 第70回「簡単な仕組みのEAを作るーネッティングシステムの-場合ー」

にて紹介しています。

【超入門】MQL5 EA講座 第56回「#include命令(#include directive)」【EAの作り方】

     →【超入門】MQL5 EA講座 第58回「成行注文と執行方式について」【EAの作り方】

コメント

タイトルとURLをコピーしました