加重平均約定価格を計算する関数

アイキャッチ

ナンピンマーチン的な手法で使うことがあるかも

ナンピンマーチンを使ったトレードでは、仕掛け価格ごとにロット数が異なることになります。

一方で、複数の仕掛け価格が存在する時、トータルでプラスになったら纏めて全ポジションを決済するようなケースが存在します。

この「トータルでプラスになったら」という条件を判定するためには、平均約定価格を計算するのが一般的ですね。

ロット数が均一な場合の平均約定価格は、全ての約定価格を足してポジション数で割れば算出できることは誰でも想像つくでしょう。

では、各ポジションでロット数が異なる場合の平均約定価格はどうやって算出すればいいでしょうか?

その答えは以下の加重平均約定価格の式です。

加重平均約定価格の計算式

ここで、iはポジションのNo(i番目)を、nはポジションの数を表しています。

謎の記号はシグマ記号で、総和を意味します。i=1~n番目のポジションについてシグマの右側の要素を足していくことになります。

MQL4で加重平均約定価格を計算する関数のソースコードはこんな感じになります。

すごくシンプルですが、パワフルな関数です。ゼロ割り防止がポイントでしょうか。良かったらお使いください。

スポンサードリンク

ブログランキングに参加中!

ポチっとクリック頂けると励みになります♪
(クリックしてもランキング一覧が表示されるだけですが、それでOKです)

にほんブログ村 為替ブログ FX システムトレード派へ

2件のコメント

  • きゃぶ@中村

    毎回アドバイスありがとうございます。
    現在入院中のため、前回のコメントにお返事できずすみませんでした。

    この関数を用いて、複数ポジションが指定した数を超えた場合、自動的にすべてのポジションを決済して、1本に集約させて、この関数で算出した平均値をもとに、トレール決済などをさせるようなことは可能でしょうか?

    このポジションを集約する方法と、さらに集約したポジションをもう一度集約させる方法を試行錯誤しております。

    こうすることで、グリッド系やナンピンなどでも、天井でずっとポジションが残ることをリスクヘッジできると試算しております。

    アドバイスよろしくおねがいします。

    • りゅーき

      まずはお体ご自愛くださいませ。ご自身の健康の方がFXよりずっと大事です。

      「すべてのポジションを決済して、1本に集約」という意味が理解できませんでした。

      何を1本に集約するのでしょうか?
      ポジションかなと思うのですが、「すべてのポジションを決済して」とあるので、ポジションは既に無いですし…。

      それと、この加重平均約定価格は現在保有中のすべてのポジションのエントリー価格の加重平均値を求めるものです。
      決済してしまったら計算できなくなります。その辺も誤解があるように感じました。

      この関数を用いて、複数ポジションを1つの集約ポジションに見立てて、その集約ポジションに対してトレイリングストップを適用することは可能です。

コメントを残す



18 − sixteen =