private void ClosePositionByStopLoss(DataSample sample) { Position.ClosePrice = Position.StopLossPrice; Position.CloseTimestamp = sample.Candle.Timestamp; PlayedPositions.Add(Position); this.OnClosePositionByStopLoss(Position); Position = null; }
private void ClosePosition(PositionDirection direction, bool byStopLoss, DataSample sample) { Position.ClosePrice = sample.Candle.Close; Position.CloseTimestamp = sample.Candle.Timestamp; PlayedPositions.Add(Position); this.OnClosePosition(Position); Position = null; }
/// <summary> /// Запуск стратегии /// </summary> /// <param name="ticker">Валютная пара</param> public void Run(string ticker, Timeframe timeFrame, decimal initialAmount, string currency) { ProfitRate = 0; CurrentBalance = initialAmount; PlayedPositions.Clear(); SetCurrentPosition(); while (ShouldContinue(ticker, timeFrame)) { Execute(PrepareData(GetData(ticker, timeFrame)), ticker, GetAmount(initialAmount, currency)); } this.ProfitRate = CalculateProfitRate(initialAmount); this.OnStop(); }