コード例 #1
0
ファイル: TradeDayCalculator.cs プロジェクト: dreamsql/Outter
 private void CalculateOrderFloatPL(Order order, OrderResetResult resetResult)
 {
     if (_info.Settings.BuyPrice != null && _info.Settings.SellPrice != null)
     {
         Price   dayClosePrice = order.IsBuy ? _info.Settings.SellPrice : _info.Settings.BuyPrice;
         Price   buyPrice      = order.IsBuy ? order.ExecutePrice : dayClosePrice;
         Price   sellPrice     = !order.IsBuy ? order.ExecutePrice : dayClosePrice;
         decimal tradePLFloat  = TradePLCalculator.Calculate(_info.Instrument.TradePLFormula, order.LotBalance * order.Owner.ContractSize(_info.TradeDay), (decimal)buyPrice, (decimal)sellPrice, (decimal)dayClosePrice);
         resetResult.DayClosePrice = dayClosePrice;
         resetResult.TradePLFloat  = _exchanger.Exchange(tradePLFloat, _info.RateSetting.RateIn, _info.RateSetting.RateOut, _info.RateSetting.RoundDecimals.Common);
     }
 }
コード例 #2
0
 private decimal CalculateValuedPL(decimal value, OrderRelation orderRelation, Exchanger exchanger)
 {
     return(exchanger.Exchange(value, orderRelation.RateIn, orderRelation.RateOut, orderRelation.Decimals));
 }