Exemplo n.º 1
0
 public override bool PlaceTestSellOrder(TradingData trade)
 {
     Portfolio.UpdateCoinBalance(trade.CoinPair.Pair1, Portfolio.GetBalance(trade.CoinPair.Pair1) - trade.CoinQuantityToTrade);
     Portfolio.UpdateCoinBalance(trade.CoinPair.Pair2, Portfolio.GetBalance(trade.CoinPair.Pair2) + trade.CoinQuantityToTrade * trade.Price * (1 + GetTradeFee(trade.CoinPair)));
     trade.SellOrderID = 0;
     return(true);
 }
Exemplo n.º 2
0
        public override bool PlaceStopLoss(TradingData trade, decimal percStopLoss)
        {
            using (var client = new BinanceClient())
            {
                var sellOrder = client.PlaceTestOrder(
                    trade.CoinPair.ToString(),
                    OrderSide.Sell,
                    OrderType.StopLoss,
                    quantity: Math.Round(trade.CoinQuantityToTrade, trade.CoinPair.Precision),
                    price: Math.Round(trade.Price, 2),
                    timeInForce: TimeInForce.GoodTillCancel,
                    stopPrice: Math.Round(trade.BuyPriceAfterFees * (1 - percStopLoss / 100), 2));

                if (sellOrder.Success)
                {
                    trade.SellOrderID = sellOrder.Data.OrderId;
                }
                else
                {
                    Console.WriteLine(sellOrder.Error.Message.ToString());
                }

                return(sellOrder.Success);
            }
        }
Exemplo n.º 3
0
        public override bool PlaceSellOrder(TradingData trade, bool closePosition = false)
        {
            using (var client = new BinanceFuturesClient())
            {
                var sellOrder = client.PlaceOrder(
                    trade.CoinPair.ToString(),
                    OrderSide.Sell,
                    OrderType.Limit,
                    quantity: Math.Round(trade.CoinQuantityToTrade, 3),
                    reduceOnly: closePosition,
                    price: Math.Round(trade.Price, 2),
                    timeInForce: TimeInForce.GoodTillCancel);

                if (sellOrder.Success)
                {
                    trade.SellOrderID = sellOrder.Data.OrderId;
                }
                else
                {
                    Console.WriteLine(sellOrder.Error.Message.ToString());
                }

                return(sellOrder.Success);
            }
        }
Exemplo n.º 4
0
        public override bool PlaceBuyOrder(TradingData trade, bool closePosition = false)
        {
            using (var client = new BinanceClient())
            {
                var buyOrder = client.PlaceOrder(
                    trade.CoinPair.ToString(),
                    OrderSide.Buy,
                    OrderType.Limit,
                    quantity: Math.Round(trade.CoinQuantityToTrade, trade.CoinPair.Precision),
                    price: Math.Round(trade.Price, 2),
                    timeInForce: TimeInForce.GoodTillCancel);

                if (buyOrder.Success)
                {
                    trade.BuyOrderID = buyOrder.Data.OrderId;
                }
                else
                {
                    Console.WriteLine(buyOrder.Error.Message.ToString());
                }

                return(buyOrder.Success);
            }
        }
Exemplo n.º 5
0
 public override bool PlaceSellOrder(TradingData trade, bool closePosition = false)
 {
     return(PlaceTestBuyOrder(trade));
 }
Exemplo n.º 6
0
 public virtual bool PlaceStopLoss(TradingData trade, decimal stopLossPerc)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 7
0
 public virtual bool PlaceTestSellOrder(TradingData trade)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 8
0
 public virtual bool PlaceSellOrder(TradingData trade, bool closePosition = false)
 {
     throw new NotImplementedException();
 }