public void CreateTrade(IAlgorthmResults results) { var ticker = results.Ticker.Replace("btc", ""); var currentPosistion = CurrentPosition.Where(x => x.Ticker == ticker); if (currentPosistion.Count() == 0) { CurrentPosition.Add(new Position(ticker, 0)); } if (CurrentPosition.First(x => x.Ticker == ticker).Open) { return; } //check BTC amount. if (BtcPosition.Open && BtcPosition.Quantity >= _request.TradingAmount) { var transactionPair = broker.MakeTransaction(results.Action, results.Ticker, _request.TradingAmount, results.LastPrice); var pos = CurrentPosition.First(x => x.Ticker == ticker); pos.Add(transactionPair.First()); pos.StopPrice = results.LastPrice * 0.97m; pos.BoughtPrice = results.LastPrice; BtcPosition.Add(transactionPair.Last()); Log?.Invoke(new TradingLog(transactionPair, results.CloseDateTime)); } }
public void CloseTrade(IAlgorthmResults results) { var ticker = results.Ticker.Replace("btc", ""); var position = CurrentPosition.First(x => x.Ticker == ticker); if (position.Open) { var transactionPair = broker.MakeTransaction(results.Action, results.Ticker, position.Quantity, results.LastPrice); position.Add(transactionPair.First()); BtcPosition.Add(transactionPair.Last()); Log?.Invoke(new TradingLog(transactionPair, results.CloseDateTime)); } }
public void WaitAction(IAlgorthmResults results) { }