public Core(LoginIqOptionDTO mainAccount, IEnumerable <LoginIqOptionDTO> followersAccount = null)
        {
            _trader        = new IqOptionClient(mainAccount.Email, mainAccount.Password);
            _trader.OnBuy += FollowerBuyAsync;

            Followers = followersAccount
                        ?.ToDictionary(x => x.Email, x => new IqOptionClient(x.Email, x.Password));
        }
Beispiel #2
0
        protected override async Task ExecuteAsync(CancellationToken stoppingToken)
        {
            var trader   = new IqOptionClient("*****@*****.**", "changeme");
            var follower = new IqOptionClient("*****@*****.**", "changeme");

            await Task.WhenAll(trader.ConnectAsync(), follower.ConnectAsync());

            trader.WsClient.OpenOptionObservable().Subscribe(x => {
                follower.BuyAsync(x.Active, (int)x.Amount, x.Direction, x.ExpirationTime);
            });
        }
Beispiel #3
0
        public async Task RunSample()
        {
            var trader   = new IqOptionClient("*****@*****.**", "changeme");
            var follower = new IqOptionClient("*****@*****.**", "changeme");

            await Task.WhenAll(trader.ConnectAsync(), follower.ConnectAsync());

            trader.WsClient.OpenOptionObservable().Subscribe(x => {
                follower.BuyAsync(x.Active, (int)x.Amount, x.Direction, x.ExpirationTime);
            });
        }
Beispiel #4
0
        public async Task RunSample()
        {
            var api = new IqOptionClient(_config.Email, _config.Password);

            _logger.Information($"Connecting to iqoption.com for {_config.Email}");


            if (await api.ConnectAsync())
            {
                _logger.Information("Connect Success");

                //get profile
                var profile = await api.GetProfileAsync();

                _logger.Information($"Success Get Profile for {_config.Email}");


                // open order EurUsd in smallest period (1min)
                var exp       = DateTime.Now.AddMinutes(1);
                var buyResult = await api.BuyAsync(ActivePair.EURUSD, 1, OrderDirection.Call, exp);


                // get candles data
                var candles = await api.GetCandlesAsync(ActivePair.EURUSD, TimeFrame.Min1, 100, DateTimeOffset.Now);

                _logger.Information($"CandleCollections received {candles.Count}");


                // subscribe to pair to get real-time data for tf1min and tf5min
                var streamMin1 = await api.SubscribeRealtimeDataAsync(ActivePair.EURUSD, TimeFrame.Min1);

                var streamMin5 = await api.SubscribeRealtimeDataAsync(ActivePair.EURUSD, TimeFrame.Min5);

                streamMin5.Merge(streamMin1)
                .Subscribe(candleInfo => {
                    _logger.Information($"Now {ActivePair.EURUSD} {candleInfo.TimeFrame} : Bid={candleInfo.Bid}\t Ask={candleInfo.Ask}\t");
                });

                // after this line no-more realtime data for min5 print on console
                await api.UnSubscribeRealtimeData(ActivePair.EURUSD, TimeFrame.Min5);


                //when price down with
            }
        }
        public async Task RunSample()
        {
            var trader   = new IqOptionClient("*****@*****.**", "changeme");
            var follower = new IqOptionClient("*****@*****.**", "changeme");

            await Task.WhenAll(trader.ConnectAsync(), follower.ConnectAsync());

            // for binary
            trader.WsClient.OpenOptionObservable().Subscribe(x => {
                follower.BuyAsync(x.Active, (int)x.Amount, x.Direction, x.ExpirationTime);
            });

            // for digitals forex and others
            trader.WsClient.PositionChangedObservable().Subscribe(x =>
            {
                if (x.InstrumentType == InstrumentType.DigitalOption)
                {
                    follower.PlaceDigitalOptions(x.InstrumentId, x.InvestAmount);
                }
            });
        }