public void BaseAmountAndPrice() { // arrange var tradeSettings = new TradeSettings { CounterAmount = 10, BuyUnderPriceMargin = 1, BaseAmountSavingsRate = 5, SellPriceRate = 10 }; var ticker = new Ticker { Last = 9500 }; var pairInfo = new TradingPairInfo { BaseDecimals = 8, CounterDecimals = 2 }; // act var baseAmount = tradeSettings.GetBuyBaseAmount(ticker, pairInfo); var basePrice = tradeSettings.GetBuyBasePrice(ticker, pairInfo); var sellBaseAmount = tradeSettings.GetSellBaseAmount(ticker, pairInfo); var sellBasePrice = tradeSettings.GetSellBasePrice(ticker, pairInfo); // assert Assert.AreEqual(baseAmount, 0.00106326M); Assert.AreEqual(basePrice, 9405M); Assert.AreEqual(sellBaseAmount, 0.001010097M); Assert.AreEqual(sellBasePrice, 10345.5M); }
internal override async Task ExecuteAsync() { // get ticker var ticker = await BitstampTrader.GetTickerAsync(TradeSession.PairCode); if (await SpreadIsOpen(ticker)) { // get pair info var pairInfo = CacheHelper.GetFromCache <List <TradingPairInfo> >("TradingPairInfo").First(i => i.PairCode == TradeSession.PairCode.ToLower()); // buy currency on Bitstamp exchange var orderResult = await BitstampTrader.BuyLimitOrderAsync(TradeSession, TradeSettings.GetBuyBaseAmount(ticker, pairInfo), TradeSettings.GetBuyBasePrice(ticker, pairInfo)); // update database BitstampTrader.AddNewOrderToDb(orderResult, ticker, TradeSettings, pairInfo); } }