예제 #1
0
 public RestApiClient2(ExchangeSettingsData setting) : this(setting.RestUrl)
 {
     OrderBookLimit = 20;
     SecretKey      = setting.SecretKey;
     PublicKey      = setting.PublicKey;
     ApiSecret      = Encoding.ASCII.GetBytes(SecretKey);
 }
예제 #2
0
        public BitstampExchange(ExchangeSettingsData setting) : base(setting)
        {
            InitPusher(setting.PusherKey);

            _restExchange = new BitstampRestExchange(setting);
            TickerTimer   = new Timer(60000);
            _restUrl      = setting.RestUrl;
        }
예제 #3
0
        public XBtcExchange(ExchangeSettingsData setting) : base(setting)
        {
            ClientId   = setting.ClientId;
            PublicKey  = setting.PublicKey;
            PrivateKey = Encoding.ASCII.GetBytes(setting.SecretKey);

            //_restExchange = new CexRestExchange(setting);
        }
예제 #4
0
        public HitBtcClient(ExchangeSettingsData setting) : base(setting)
        {
            var auth = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(String.Format("{0}:{1}", PublicKey, SecretKey)));

            AuthHeader = new Dictionary <string, string>()
            {
                { "Authorization", auth }
            };
        }
예제 #5
0
        public BinanceExchange(ExchangeSettingsData setting) : base(setting)
        {
            _restExchange = new BinanceRestExchange(setting);
            _obj          = new object();

            this.InstrumentReceived += (s, e) => { };
            this.TradeReceived      += (s, e) => { };
            this.TickerReceived     += (s, e) => { };
        }
예제 #6
0
        public OkExExchange(ExchangeSettingsData setting) : base(setting)
        {
            _restExchange            = new OkExRestExchange(setting);
            this.InstrumentReceived += (s, e) => { };
            this.TradeReceived      += (s, e) => { };

            OrderBookChannel = "'channel':'ok_sub_spot_{0}_{1}_depth_20'";
            TradeChannel     = "'channel':'ok_sub_spot_{0}_{1}_deals'";
            PingRequest      = "{'event':'ping'}";
            _timer           = new Timer(29000);
        }
예제 #7
0
        public CexClient(ExchangeSettingsData setting) : base(setting)
        {
            UserName = setting.ClientId;

            if (String.IsNullOrEmpty(UserName))
            {
                throw new ArgumentException("UserId is undefined");
            }

            ServicePointManager.Expect100Continue = true;
            ServicePointManager.SecurityProtocol  = SecurityProtocolType.Tls12;
        }
        protected BaseWebSocketExchange(ExchangeSettingsData setting, int?timeoutMinutes = null) : base(setting)
        {
            WsUrl = setting.WebsocketUrl;
            this.BeforeReconnect += (s, e) => { };
            this.AfterReconnect  += (s, e) => { };

            if (timeoutMinutes.HasValue)
            {
                _timer          = new System.Timers.Timer(timeoutMinutes.Value * 60000);
                _timer.Elapsed += OnTimerElapsed;
            }
        }
        public BitmexWebSocketClient(ExchangeSettingsData setting, int?timeoutMinutes = null)
            : base(setting, timeoutMinutes)
        {
            WebSocketTimeout = 500;

            _buffer     = WebSocket.CreateClientBuffer(UInt16.MaxValue, UInt16.MaxValue);
            _strBuilder = new StringBuilder();
            _wsUri      = new Uri(setting.WebsocketUrl);
            _obj        = new object();

            SetSecurityProtocol();
        }
예제 #10
0
        protected BaseExchange(ExchangeSettingsData setting)
        {
            if (String.IsNullOrEmpty(setting.CurrencyName))
            {
                setting.CurrencyName = "USD";
            }

            BestPriceRatio   = 0.97;
            MinUsdValueRatio = 0.001;   // 0.1%
            _currency        = setting.Currency;

            CountryCurrencyDecimal = 2;
            CryptoCurrencyDecimal  = 6;
            TradingState           = TradingState.Ok;
        }
예제 #11
0
        public BitmexBotClient(MainWindow mainWnd, ExchangeSettingsData setting, int pingTimeoutMinutes) : base(setting)
        {
            this.VwapGainReceived += (s, e) => { };
            this.PositionReceived += (s, e) => { };
            this.TradeReceived    += (s, e) => { };

            _timer          = new System.Timers.Timer(pingTimeoutMinutes * 60000);
            _timer.Elapsed += (s, e) =>
            {
                if (!_client.IsAlive)
                {
                    Reconnect();
                    Log.WriteWarning("BtxBot reconnect after ping");
                    mainWnd.LogServiceEvent("BitmexBot was reconnected");
                }
            };
        }
예제 #12
0
        public BitmexExchange(ExchangeSettingsData setting) : base(setting)
        {
            _restExchange = new BitmexRestExchange(setting);
            _bookL2       = new BitmexOrderBookL2();
            _obj          = new object();

            XbtOrderBookChanged += (s, e) => { };
            EthOrderBookChanged += (s, e) => { };
            LiquidationReceived += (s, e) => { };
            XbtPriceChanged     += (s, e) => { };
            EthPriceChanged     += (s, e) => { };
            LtcPriceChanged     += (s, e) => { };
            EosPriceChanged     += (s, e) => { };
            XrpPriceChanged     += (s, e) => { };
            AdaPriceChanged     += (s, e) => { };
            TrxPriceChanged     += (s, e) => { };
            BchPriceChanged     += (s, e) => { };
            FundingChanged      += (s, e) => { };
        }
예제 #13
0
        public BtccExchange(ExchangeSettingsData setting) : base(setting, 60)
        {
            _deserializer = new JsonDeserializer <JsonMessageOut>();
            PublicKey     = setting.PublicKey;
            PrivateKey    = setting.SecretKey;

            _deserializer.On <Ticker>(ticker =>
            {
            });
            _deserializer.On <ProExchange.JSON.API.Notifications.OrderBook>(obj =>
            {
            });
            _deserializer.On <QuoteResponse>(response =>
            {
                //response.OrderBook
            });
            _deserializer.On <ErrorResponse>(error =>
            {
            });
        }
예제 #14
0
        public MainWindowController(MainWindow mainWnd)
        {
            var config = MainWindow.Config;

            var setting = new ExchangeSettingsData {
                WebsocketUrl = config.Connections.GetElement("BitmexBot").Url
            };

            _btxBotClient = new BitmexBotClient(mainWnd, setting, config.Connections.GetElement("BitmexBot").TimoutMinute);
            Instruments   = new Dictionary <string, ICryptoIntrument>();

            Instruments[Settings.Default.LtcContract] = new LtcInstrument(Settings.Default.LtcContract);
            Instruments[Settings.Default.EosContract] = new EosInstrument(Settings.Default.EosContract);
            Instruments[Settings.Default.XrpContract] = new XrpInstrument(Settings.Default.XrpContract);
            Instruments[Settings.Default.AdaContract] = new AdaInstrument(Settings.Default.AdaContract);
            Instruments[Settings.Default.TrxContract] = new TrxInstrument(Settings.Default.TrxContract);
            Instruments[Settings.Default.BchContract] = new BchInstrument(Settings.Default.BchContract);
            Instruments[Settings.Default.XbtSwap]     = new XbtInstrument(Settings.Default.XbtSwap);
            Instruments[Settings.Default.EthSwap]     = new EthInstrument(Settings.Default.EthSwap);

            _apiClient = new RestApiClient2(config.Connections.GetElement("WebApi").Url);
            _mainWnd   = mainWnd;
        }
예제 #15
0
 public BitstampRestExchange(ExchangeSettingsData setting) : base(setting)
 {
     Client = new BitstampClient(setting);
 }
예제 #16
0
 public QuadrigaClient(ExchangeSettingsData setting) : base(setting)
 {
     ClientID = setting.ClientId;
 }
예제 #17
0
 public BitbayClient(ExchangeSettingsData setting) : base(setting)
 {
 }
예제 #18
0
 public BittrexExchange(ExchangeSettingsData setting) : base(setting)
 {
     _client = new BittrexClient(setting);
 }
예제 #19
0
 public BitfinexClient(ExchangeSettingsData setting) : base(setting)
 {
 }
예제 #20
0
 protected BaseRestExchange(ExchangeSettingsData setting) : base(setting)
 {
 }
예제 #21
0
 public HitBtcRestExchange(ExchangeSettingsData setting) : base(setting)
 {
     _client = new HitBtcClient(setting);
 }
예제 #22
0
 public CexExchange(ExchangeSettingsData setting) : base(setting, 10)
 {
     _restExchange = new CexRestExchange(setting);
 }
예제 #23
0
 public HitBtcExchange(ExchangeSettingsData setting) : base(setting)
 {
     _restExchange = new HitBtcRestExchange(setting);
 }
예제 #24
0
 public BitstampClient(ExchangeSettingsData setting) : base(setting)
 {
     ClientId = setting.ClientId;
 }
예제 #25
0
 public QuadrigaExchange(ExchangeSettingsData setting) : base(setting)
 {
     _client = new QuadrigaClient(setting);
 }
예제 #26
0
 public KunaExchange(ExchangeSettingsData setting) : base(setting)
 {
     _client = new KunaClient(setting);
 }
예제 #27
0
 public OkExClient(ExchangeSettingsData setting) : base(setting)
 {
 }
예제 #28
0
 public KrakenClient(ExchangeSettingsData setting) : base(setting)
 {
 }
예제 #29
0
 public OkExRestExchange(ExchangeSettingsData setting) : base(setting)
 {
     _client = new OkExClient(setting);
 }
예제 #30
0
 public BitfinexRestExchange(ExchangeSettingsData setting) : base(setting)
 {
     _client = new BitfinexClient(setting);
 }