private void updateTracking(TickQuoteCn aTick) { if (tracking.orderState == OrderState.Filled) { if (orderinfo.position > 0) { tracking.currentProfit = aTick.trade - tracking.entryPz; } else if (orderinfo.position < 0) { tracking.currentProfit = tracking.entryPz - aTick.trade; } tracking.currentProfitPercent = (tracking.currentProfit / tracking.entryPz); tracking.maxrunup = Math.Max(tracking.maxrunup, tracking.currentProfit); tracking.maxdrawdown = Math.Max(tracking.maxdrawdown, tracking.maxrunup - tracking.currentProfit); tracking.saveOnRedis(); } }
public Order(OrderInfo aOrderInfo, OrderTrackingInfo aTracking, OrderBehaviorParameters aBehaviorPars) { orderinfo = aOrderInfo; behaviorPars = aBehaviorPars; tracking = aTracking; changeState(aTracking.orderState); orderinfo.saveOnRedis(); behaviorPars.saveOnRedis(); tracking.saveOnRedis(); daytrade = new DayTrade(this); profitTake = new ProfitTake(this); protector = new Protector(this); hardstop = new Hardstop(this); }