计算若干个持仓多单或空单平均成本价格的函数

楼主  收藏   举报   帖子创建时间:  2019-05-05 14:39 回复:0 关注量:541
该函数模块可以计算出多个同方向订单的平均成本价格,所谓平均成本价格也就是多个订单在这个价位盈亏为0.获取平均交易成本价格,后面需要对多个订单做止损或盈利修改就方便调用了。

  1. double AveragePrice(string as_0) {
  2. double ld_8 = 0;
  3. double ld_16 = 0;
  4. for (int l_pos_24 = OrdersTotal() - 1; l_pos_24 >= 0; l_pos_24--) {
  5. bool cg = OrderSelect(l_pos_24, SELECT_BY_POS, MODE_TRADES);
  6. if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
  7. if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) {
  8. if (as_0 == "buy") {
  9. if (OrderType() == OP_BUY) {
  10. ld_8 += OrderOpenPrice() * OrderLots();
  11. ld_16 += OrderLots();
  12. }
  13. }
  14. if (as_0 == "sell") {
  15. if (OrderType() == OP_SELL) {
  16. ld_8 += OrderOpenPrice() * OrderLots();
  17. ld_16 += OrderLots();
  18. }
  19. }
  20. }
  21. }
  22. ld_8 = NormalizeDouble(ld_8 / ld_16, Digits);
  23. return (ld_8);
  24. }
打赏