Пример #1
0
        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));
            }
        }
Пример #2
0
        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));
            }
        }
Пример #3
0
 public void WaitAction(IAlgorthmResults results)
 {
 }