/// <summary> /// Initializes a new instance of the <see cref="Portfolio"/> class. /// </summary> /// <param name="clock">The clock.</param> /// <param name="actionscheduler">The actionscheduler.</param> /// <param name="brokerconnection">The brokerconnection.</param> /// <param name="brokermodel">The brokermodel.</param> /// <param name="currency">The currency.</param> /// <param name="eventrunner">The eventrunner.</param> /// <param name="exceptionhandler">The exceptionhandler.</param> /// <param name="orderTicketHandler">The order ticket handler.</param> /// <param name="brokeraccount">The brokeraccount.</param> /// <param name="cashmanager">The cashmanager.</param> /// <param name="runmode">The runmode.</param> /// <param name="datafeed">The datafeed.</param> /// <param name="benchmark">The benchmark.</param> /// <param name="id">The identifier.</param> public Portfolio(WorldClock clock, ActionsScheduler actionscheduler, BrokerConnection brokerconnection, BrokerModel brokermodel, Currency currency, EventRunner eventrunner, ExceptionHandler exceptionhandler, OrderTicketHandler orderTicketHandler, BrokerAccount brokeraccount, CashManager cashmanager, RunMode runmode, DataFeed datafeed, Benchmark benchmark, string id = "") { //Set references ActionsScheduler = actionscheduler; BrokerAccount = brokeraccount; BrokerConnection = brokerconnection; BrokerModel = brokermodel; Clock = clock; Currency = currency; EventRunner = eventrunner; ExceptionHandler = exceptionhandler; CashManager = cashmanager; OrderTicketHandler = orderTicketHandler; _porfolioBenchmark = benchmark; //Set initial items Id = id; IsBacktesting = runmode == RunMode.Backtester; OrderFactory = new OrderFactory(this, BrokerModel); OrderTracker = new OrderTracker(this); Subscription = new DataSubscriptionManager(datafeed, CashManager); Results = new Result(0, _porfolioBenchmark); //Portfolio benchmark is not used benchmark.OnCalc(x => 0); }
/// <summary> /// Initialize new pending order /// </summary> /// <param name="portfolio"></param> /// <param name="fundid"></param> /// <param name="order"></param> /// <param name="comment"></param> /// <param name="createdutc"></param> /// <param name="issimulated">If true, order behavior is simulated</param> public PendingOrder(IPortfolio portfolio, string fundid, Order order, string comment, DateTime createdutc, bool issimulated = false) { _portfolio = portfolio; _orderTicketHandler = portfolio.OrderTicketHandler; FundId = fundid; Order = order; CreatedUtc = createdutc; IsSimulated = issimulated; Comment = comment; }
/// <summary> /// Initializes a new instance of the <see cref="PortfolioImplementations"/> class. /// </summary> /// <param name="actionsScheduler">The actions scheduler.</param> /// <param name="api">The API.</param> /// <param name="brokerconnection">The brokerconnection.</param> /// <param name="cluster">The cluster.</param> /// <param name="datafeed">The datafeed.</param> /// <param name="datafilter">The datafilter.</param> /// <param name="eventrunner">The eventrunner.</param> /// <param name="exceptionhandler">The exceptionhandler.</param> /// <param name="messagequeue">The messagequeue.</param> /// <param name="ordertickethandler">The ordertickethandler.</param> /// <param name="currency">The currency.</param> public PortfolioImplementations(ActionsScheduler actionsScheduler, Benchmark benchmark, BrokerConnection brokerconnection, Cluster cluster, DataFeed datafeed, DataFilter datafilter, EventRunner eventrunner, ExceptionHandler exceptionhandler, MessageQueue messagequeue, OrderTicketHandler ordertickethandler, Currency currency) { ActionsScheduler = actionsScheduler; Benchmark = benchmark; BrokerConnection = brokerconnection; Cluster = cluster; DataFeed = datafeed; DataFilter = datafilter; EventRunner = eventrunner; ExceptionHandler = exceptionhandler; MessageQueue = messagequeue; OrderTicketHandler = ordertickethandler; Currency = currency; }