レバレッジを指定する

 取引口座の純資産額に対して、何倍のレバレッジで取引するかを指定し、それに応じたロットサイズに調整するためのプログラミング方法について解説します。

  1. ロットサイズを算出する計算式
  2. 関数を作成する
  3. 関連手法

1.ロットサイズを算出する計算式

 まず、レバレッジ1倍で取引するするために必要な証拠金額を算出します。この値は、以下の計算式により算出されます。

Levarage One Time
レバレッジ1倍で取引するのに必要な証拠金額

 次に、取引口座の純資産額において、レバレッジ1倍で取引する際のロットサイズを算出します。この値は、以下の計算式により算出されます。

Lot Size in Leverage One Time
レバレッジ1倍で取引する際のロットサイズ

 次に、指定したいレバレッジ数を乗じます。

Lot Size in Specified Leverage
指定したレバレッジで取引する際のロットサイズ

 上記計算式によって算出される値が、指定したレバレッジで取引する際のロットサイズとなります。

>>目次に戻る

2.関数を作成する

 上記の計算式を基にして、以下のような関数(LeverageLotSizing()関数)を作成します。

LevarageLotSizing-Function
LeverageLotSizing()関数

⑴ 引 数

 LeverageLotSizing()関数は、以下の引数を持っています。

  • int Trade_Leverage
    取引口座の純資産額に対して、何倍のレバレッジで取引するかを指定します。

⑵ 指定したレバレッジでのロットサイズの算出

  • AccountEquity()関数(詳細は「こちら」を参照してください。)で取引口座の純資産額を取得しています。
  • MarketInfo()関数(詳細は「こちら」を参照してください。)で最低必要証拠金額を取得しています。
  • AccountLeverage()関数(詳細は「こちら」を参照してください。)で取引口座の最大レバレッジを取得しています。
  • 算出されたロットサイズを、変数「Trade_Lots」に格納しています。

⑶ ロットサイズを調整する(その1)

 ロットサイズの最小変動幅(=ロットステップ)は、業者によって異なります。

 そのため、例えば、⑴で変数「Trade_Lots」に格納された値が「0.12」であった場合には、ロットサイズを「0.1」刻みで算出する業者においては、そのままではOrderSend()関数(詳細は「こちら」を参照してください。)を使用して注文を出すことができません。

 そこで、MarketInfo()関数(詳細は「こちら」を参照してください。)を使用してロットステップを取得し、NormalizeDouble()関数(詳細は「こちら」を参照してください。)を使用して以下のような処理を行うようにしています。

  • ロットステップが「0.1」であれば変数「Trade_Lots」に格納されている値を小数点以下1桁で四捨五入する。
  • ロットステップが「0.01」であれば変数「Trade_Lots」に格納されている値を小数点以下2桁で四捨五入する。

⑷ ロットサイズの調整をする(その2)

 MarketInfo()関数(詳細は「こちら」を参照してください。)を使用して、以下のような処理を行うようにしています。

  • 変数「Trade_Lots」に格納されている値が、取引口座の最小ロットサイズ以下の場合は、変数Trade_Lotsに取引口座の最小ロットサイズを格納する。
  • 変数「Trade_Lots」に格納されている値が、取引口座の最大ロットサイズ以上の場合は、変数Trade_Lotsに取引口座の最大ロットサイズを格納する。

⑸ 計算結果を返す

 return()文で、最終的に変数「Trade_Lots」に格納された値を返します。

>>目次に戻る

3.関連手法

正しい資金管理を使えばFXの負けが勝ちになる
資金管理を使ってFXの負けを勝ちに変える
資金管理を使ってFXの負けを勝ちに変える | fx-on.com

資金管理を使ってFXの負けを勝ちに変える
資金管理を使ってFXの負けを勝ちに変える | fx-on.com

上記手法(資金管理を使ってFXの負けを勝ちに変える資金管理を使ってFXの負けを勝ちに変える | fx-on.com)の詳細については「こちら資金管理を使ってFXの負けを勝ちに変える | fx-on.com」を参照してください。

>>目次に戻る


MT4の使い方からプログラミングまで、わかりやすく解説