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

ペアリング 甲丸地金 結婚指輪 【K10YG】 【K10PG】マリッジリング プレゼント 誕生日 シルバーホワイトパールダブルチェーンネックレス H&C 10P03Dec16

ナンピンマーチンを使ったトレードでは、仕掛け価格ごとにロット数が異なることになります ブルーサファイア×白珊瑚パピヨン ピアス◆天然 白珊瑚 サンゴ ダイヤモンド サファイア K18 18K 18金 プレゼント フォーマル 上品 シンプル 蝶々【RCP】。

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

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

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

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

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

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

謎の記号はシグマ記号で、総和を意味します H&C ハート&キューピット 合計0.28ctのダイヤモンドが2連に輝く K18ネックレス 選べる素材PT/K18WG(18金) 受注品/Ycollectionワイコレクション/送料無料 。i=1~n番目のポジションについてシグマの右側の要素を足していくことになります。

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//+------------------------------------------------------------------+
//|【関数】加重平均約定価格を計算する                                |
//|                                                                  |
//|【引数】 IN OUT  引数名             説明                          |
//|        --------------------------------------------------------- |
//|         ○      aMagic             マジックナンバー              |
//|                                                                  |
//|【戻値】加重平均約定価格                                          |
//|                                                                  |
//|【備考】なし                                                      |
//+------------------------------------------------------------------+
double averageEntryPrice(int aMagic)
{
  double sumPrice_x_Lot = 0.0;
  double sumLot = 0.0;
 
  for(int i = 0; i < OrdersTotal(); i++){
    if(OrderSelect(i, SELECT_BY_POS) == false){
      break;
    }
 
    if(OrderSymbol() != Symbol() || OrderMagicNumber() != aMagic){
      continue;
    }
 
    sumPrice_x_Lot += NormalizeDouble(OrderOpenPrice(), Digits) * OrderLots();
    sumLot         += OrderLots();
  }
 
  // ゼロ割り防止
  if(sumLot == 0.0){
    return(0.0);
  }else{
    return(NormalizeDouble(sumPrice_x_Lot / sumLot, Digits));
  }
}

すごくシンプルですが、パワフルな関数です Shin's Sculpture[シンズスカルプチャー]  アイヴィーハートブレスレット(BR-3)【】【送料無料】。ゼロ割り防止がポイントでしょうか。良かったらお使いください。

ペアリング 甲丸地金 結婚指輪 【K10YG】 【K10PG】マリッジリング プレゼント 誕生日 シルバーホワイトパールダブルチェーンネックレス H&C 10P03Dec16

スポンサードリンク

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

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

コメントを残す コメントをキャンセル

8 + six =