public StreamingAPIConnect(StreamingListener sl, string ip, int port, LoginResponse lr, bool secure)
        {
            this.sl = sl;
            this.streamingSessionId = lr.StreamingSessionId;
            apiSocket = new System.Net.Sockets.TcpClient(ip, port);
            if (secure)
            {
                SslStream ssl = new SslStream(apiSocket.GetStream());
                ssl.AuthenticateAsClient("xtb.com"); //hardcoded domain, because we use ip-version of the address
                apiWriteStream = new StreamWriter(ssl);
                apiBufferedReader = new StreamReader(ssl);
            }
            else
            {
                NetworkStream ns = apiSocket.GetStream();
                apiWriteStream = new StreamWriter(ns);
                apiBufferedReader = new StreamReader(ns);
            }

            Thread t = new Thread(delegate()
            {
                while (running)
                {
                    readStreamMessage();
                    Thread.Sleep(50);
                }
            });
            t.Start();
            //System.Threading.Timer t = new System.Threading.Timer(o => readStreamMessage(), null, 0, 10);
        }
Exemple #2
0
        public static void Main(string[] args)
        {
            try
            {

                SyncAPIConnect connector = new SyncAPIConnect(ServerData.ProductionServers["CONTEST"]);

                /* Enter your registration credentials (login & pass) here.	   LOGIN     PASSWORD			*/
                BaseCommand loginCmd = APICommandFactory.createLoginCommand( 00000000, "your_password", false);
                Console.Error.WriteLine("SENDING LoginCommand   :  " + loginCmd.toJSONString());
                string responseJSON = connector.executeCommand(loginCmd.toJSONString());
                Console.Error.WriteLine("RECEIVED LoginResponse   : " + responseJSON);
                LoginResponse resp = new LoginResponse(responseJSON);
                Console.Error.WriteLine(resp.Status);

                StrList xyz = new StrList();
               StreamingAPIConnect scnn = new StreamingAPIConnect(xyz, ServerData.ProductionServers["REAL"], resp);

                scnn.subscribeTrades();
                LinkedList<string> symbols = new LinkedList<string>();
                symbols.AddLast("EURUSD.");
                symbols.AddLast("EURJPY.");
                symbols.AddLast("USDPLN.");
                symbols.AddLast("EURGBP.");
                scnn.subscribePricesL(symbols);

                CurrentUserDataResponse data = APICommandFactory.executeCurrentUserDataCommand(connector, false);
                Console.WriteLine(data.Currency + " " + data.Leverage);
                ProfitCalculationResponse resp_calc = APICommandFactory.executeProfitCalculationCommand(connector, "EURUSD", 0.1, TRADE_OPERATION_CODE.BUY, 1.001, 1.0003, false);
                Console.WriteLine(resp_calc.Profit);
                MarginTradeResponse mtrade = APICommandFactory.executeMarginTradeCommand(connector, "EURUSD", 0.1, TRADE_OPERATION_CODE.BUY, false);
                Console.WriteLine(mtrade.Margin);
                mtrade = APICommandFactory.executeMarginTradeCommand(connector, "EURUSD", 0.1, false);
                Console.WriteLine(mtrade.Margin);
                mtrade = APICommandFactory.executeMarginTradeCommand(connector, "EURUSD", 0.1, TRADE_OPERATION_CODE.SELL, false);
                Console.WriteLine(mtrade.Margin);
                mtrade = APICommandFactory.executeMarginTradeCommand(connector, "EURUSD", 0.1, TRADE_OPERATION_CODE.BUY_LIMIT, false);
                Console.WriteLine(mtrade.Margin);

                SymbolResponse sresp = APICommandFactory.executeSymbolCommand(connector, "EURUSD", false);
                SymbolRecord s = sresp.Symbol;
                Console.WriteLine(s.Ask + " " + s.Bid +" " + s.ContractSize + " " + s.SwapLong);

                    Console.Read();
                connector.close();
            }
            catch (APICommandConstructionException ex)
            {
                Console.Error.WriteLine(ex.StackTrace);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
                Console.Write(ex.StackTrace);
                Console.Read();
            }
        }
 public StreamingAPIConnect(StreamingListener sl, ServerData dt, LoginResponse lr)
     : this(sl, dt.address, dt.streamingPort, lr, dt.secure)
 {
 }
 public StreamingAPIConnect(StreamingListener sl, string ip, int port, LoginResponse lr)
     : this(sl, ip, port, lr, false)
 {
 }