//public void SendOneOrderTest(string symbol,bool sell) //{ // IOrdersManager ordersManager = ((UNLManager) UNLManagerDic[symbol]).OrdersManager; // ordersManager.TestTrading(true); //} public void SendOneOrderTest(TradeOrderData tradeOrderData) { //IOrdersManager ordersManager = ((UNLManager)UNLManagerDic[tradeOrderData.Symbol]).OrdersManager; //ordersManager.TestTrading(tradeOrderData); ITradingManager tradeManager = ((UNLManager)UNLManagerDic[tradeOrderData.Symbol]).TradingManager; tradeManager.TestTrading(tradeOrderData); }
/// <summary> /// Add a execution to our statistic (e.g. for backtesting). /// </summary> /// <param name="tradingmanager"></param> /// <param name="nameofthestrategy"></param> /// <param name="execution"></param> public void Add(ITradingManager tradingmanager, string nameofthestrategy, IExecution execution) { //Statistic stat = new Statistic(tradingmanager, nameofthestrategy, execution); //if (stat.IsValid) //{ // this.List.Add(stat); //} this.List.Add(new Statistic(tradingmanager, nameofthestrategy, execution)); }
/// <summary> /// Standard constructor with finalised executions (all data from trade and order is available). /// You should use this when you create statistic data during a backtest. /// </summary> /// <param name="tradingmanager"></param> /// <param name="nameofthestrategy"></param> /// <param name="execution"></param> public Statistic(ITradingManager tradingmanager, string nameofthestrategy, IExecution execution) { //Logging only on flat transactions then we have all data available (entry & exit) if (execution.MarketPosition == PositionType.Flat) { //get the trade with all data int tradeid = tradingmanager.GetTradeIdByExecutionId(execution.ExecutionId); ITradingTrade trade = tradingmanager.GetTrade(tradeid); if (trade != null) { //Log all data this.NameOfTheStrategy = nameofthestrategy; this.Instrument = execution.Instrument.ToString(); this.TradeDirection = trade.EntryOrder.IsLong ? PositionType.Long : PositionType.Short; this.TimeFrame = execution.Order.TimeFrame.ToString(); this.ProfitLoss = trade.ProfitLoss; this.ProfitLossPercent = trade.ProfitLossPercent; this.ExitReason = trade.ExitReason; this.ExitPrice = trade.ExitPrice; this.ExitDateTime = execution.Time; this.ExitQuantity = execution.Quantity; this.ExitOrderType = execution.Order.OrderType; this.EntryDateTime = trade.EntryOrder.CreationTime; this.EntryPrice = trade.EntryOrder.Price; this.EntryQuantity = trade.EntryOrder.Quantity; this.EntryOrderType = trade.EntryOrder.Type; this.StopPrice = execution.Order.StopPrice; //everything is fine this.IsValid = true; } //we do not have a target. //this.TargetPrice } }