private void TransakcjaStop(TradeRecord tradeRecordStop)
        {
            try
            {
                SyncAPIConnector     connector     = new SyncAPIConnector(serverData);
                Credentials          credentials   = new Credentials(userId, password, "", "pixelNet");
                LoginResponse        loginResponse = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);
                TRADE_OPERATION_CODE toc;
                if (tradeRecordStop.Cmd == 1)
                {
                    toc = TRADE_OPERATION_CODE.SELL;
                }
                else
                {
                    toc = TRADE_OPERATION_CODE.BUY;
                }

                double price      = tradeRecordStop.Close_price.GetValueOrDefault();
                double sl         = 0.0;
                double tp         = 0.0;
                string symbol     = tradeRecordStop.Symbol;
                double?volume     = tradeRecordStop.Volume;
                long   order      = tradeRecordStop.Order.GetValueOrDefault();
                long   expiration = 0;
                TradeTransInfoRecord ttCloseInfoRecord = new TradeTransInfoRecord(
                    toc,
                    TRADE_TRANSACTION_TYPE.ORDER_CLOSE,
                    price, sl, tp, symbol, volume, order, "", expiration);
                TradeTransactionResponse closeTradeTransactionResponse = APICommandFactory.ExecuteTradeTransactionCommand(connector, ttCloseInfoRecord, true);
                LogoutResponse           logoutResponse = APICommandFactory.ExecuteLogoutCommand(connector);
            }
            catch (Exception e) { MessageBox.Show(e.Message); }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            //serverData.
            var ser = new Server("xapia.x-station.eu", 5124, 5125, true, Environment.MachineName);
            SyncAPIConnector connector = new SyncAPIConnector(ser);

            Console.WriteLine("Connected to the server");

            // Login to server
            Credentials credentials = new Credentials(userId, password, "", "YOUR APP NAME");

            LoginResponse loginResponse = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);

            Console.WriteLine("Logged in as: " + userId);

            // Execute GetServerTime command
            ServerTimeResponse serverTimeResponse = APICommandFactory.ExecuteServerTimeCommand(connector, true);

            Console.WriteLine("Server time: " + serverTimeResponse.TimeString);

            // Execute GetAllSymbols command
            AllSymbolsResponse allSymbolsResponse = APICommandFactory.ExecuteAllSymbolsCommand(connector, true);

            Console.WriteLine("All symbols count: " + allSymbolsResponse.SymbolRecords.Count);

            // Print first 5 symbols
            Console.WriteLine("First five symbols:");
            foreach (SymbolRecord symbolRecord in allSymbolsResponse.SymbolRecords.Take(5))
            {
                Console.WriteLine(" > " + symbolRecord.Symbol + " ask: " + symbolRecord.Ask + " bid: " + symbolRecord.Bid);
            }

            Console.Read();
        }
Exemple #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Server address: " + serverData.Address + " port: " + serverData.MainPort + " streaming port: " + serverData.StreamingPort);

            // Connect to server
            SyncAPIConnector connector = new SyncAPIConnector(serverData);

            Console.WriteLine("Connected to the server");

            // Login to server
            Credentials credentials = new Credentials(userId, password, "", "YOUR APP NAME");

            LoginResponse loginResponse = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);

            Console.WriteLine("Logged in as: " + userId);

            // Execute GetServerTime command
            ServerTimeResponse serverTimeResponse = APICommandFactory.ExecuteServerTimeCommand(connector, true);

            Console.WriteLine("Server time: " + serverTimeResponse.TimeString);

            // Execute GetAllSymbols command
            AllSymbolsResponse allSymbolsResponse = APICommandFactory.ExecuteAllSymbolsCommand(connector, true);

            Console.WriteLine("All symbols count: " + allSymbolsResponse.SymbolRecords.Count);

            // Print first 5 symbols
            Console.WriteLine("First five symbols:");
            foreach (SymbolRecord symbolRecord in allSymbolsResponse.SymbolRecords.Take(5))
            {
                Console.WriteLine(" > " + symbolRecord.Symbol + " ask: " + symbolRecord.Ask + " bid: " + symbolRecord.Bid);
            }

            Console.Read();
        }
Exemple #4
0
        public static LoginResponse ExecuteLoginCommand(SyncAPIConnector connector, Credentials credentials, bool prettyPrint = false)
        {
            LoginCommand  loginCommand  = CreateLoginCommand(credentials, prettyPrint);
            LoginResponse loginResponse = new LoginResponse(connector.ExecuteCommand(loginCommand).ToString());

            redirectCounter = 0;

            while (loginResponse.RedirectRecord != null)
            {
                if (redirectCounter >= SyncAPIConnector.MAX_REDIRECTS)
                {
                    throw new APICommunicationException("too many redirects");
                }

                Server newServer = new Server(loginResponse.RedirectRecord.Address, loginResponse.RedirectRecord.MainPort, loginResponse.RedirectRecord.StreamingPort, true, "Redirected to: " + loginResponse.RedirectRecord.Address + ":" + loginResponse.RedirectRecord.MainPort + "/" + loginResponse.RedirectRecord.StreamingPort);
                connector.Redirect(newServer);
                redirectCounter++;
                loginResponse = new LoginResponse(connector.ExecuteCommand(loginCommand).ToString());
            }

            if (loginResponse.StreamSessionId != null)
            {
                connector.Streaming.StreamSessionId = loginResponse.StreamSessionId;
            }

            return(loginResponse);
        }
Exemple #5
0
        public AllSymbolsResponse GetAllSymbols()
        {
            SyncAPIConnector connector     = new SyncAPIConnector(serverData);
            LoginResponse    loginResponse = APICommandFactory.ExecuteLoginCommand(connector, GetCredentials(), true);
            var allSymbolsResponse         = APICommandFactory.ExecuteAllSymbolsCommand(connector, true);

            return(allSymbolsResponse);
        }
Exemple #6
0
        public ServerTimeResponse GetServerTime()
        {
            SyncAPIConnector   connector          = new SyncAPIConnector(serverData);
            LoginResponse      loginResponse      = APICommandFactory.ExecuteLoginCommand(connector, GetCredentials(), true);
            ServerTimeResponse serverTimeResponse = APICommandFactory.ExecuteServerTimeCommand(connector, true);

            return(serverTimeResponse);
        }
Exemple #7
0
        // Prototype
        public ChartLastResponse GetChart(string symbol)
        {
            if (string.IsNullOrEmpty(symbol))
            {
                symbol = "OIL"; //default to oil, change this later
            }

            SyncAPIConnector connector     = new SyncAPIConnector(serverData);
            LoginResponse    loginResponse = APICommandFactory.ExecuteLoginCommand(connector, GetCredentials(), true);
            var ms    = DateTimeToUnixTimestamp(DateTime.Now.AddDays(-1));
            var chart = APICommandFactory.ExecuteChartLastCommand(connector, new ChartLastInfoRecord("OIL", PERIOD_CODE.PERIOD_M30, ms));

            return(chart);
        }
Exemple #8
0
        // Prototype
        public TickPricesResponse GetTicks(string symbol)
        {
            if (string.IsNullOrEmpty(symbol))
            {
                symbol = "OIL"; //default to oil, change this later
            }

            SyncAPIConnector connector     = new SyncAPIConnector(serverData);
            LoginResponse    loginResponse = APICommandFactory.ExecuteLoginCommand(connector, GetCredentials(), true);
            var ms    = DateTimeToUnixTimestamp(DateTime.Now.AddDays(-1));
            var ticks = APICommandFactory.ExecuteTickPricesCommand(connector, new List <string> {
                "OIL"
            }, DateTime.Now.Millisecond);

            return(ticks);
        }
        private void ListaInstrumentow()
        {
            try
            {
                SyncAPIConnector   connector          = new SyncAPIConnector(serverData);
                Credentials        credentials        = new Credentials(userId, password, "", "pixelNet");
                LoginResponse      loginResponse      = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);
                AllSymbolsResponse allSymbolsResponse = APICommandFactory.ExecuteAllSymbolsCommand(connector, true);

                ListaInstrumentow fx = new ListaInstrumentow()
                {
                    Symbol = "FX"
                };
                ListaInstrumentow cmd = new ListaInstrumentow()
                {
                    Symbol = "CMD"
                };
                ListaInstrumentow crt = new ListaInstrumentow()
                {
                    Symbol = "CRT"
                };


                foreach (SymbolRecord symbolRecord in allSymbolsResponse.SymbolRecords)
                {
                    if (symbolRecord.CategoryName == "FX")
                    {
                        fx.Pozycje.Add(symbolRecord);
                    }
                    if (symbolRecord.CategoryName == "CMD")
                    {
                        cmd.Pozycje.Add(symbolRecord);
                    }
                    if (symbolRecord.CategoryName == "CRT")
                    {
                        crt.Pozycje.Add(symbolRecord);
                    }
                }

                treev.Items.Add(fx);
                treev.Items.Add(cmd);
                treev.Items.Add(crt);

                LogoutResponse logoutResponse = APICommandFactory.ExecuteLogoutCommand(connector);
            }
            catch (Exception e) { MessageBox.Show(e.Message); }
        }
Exemple #10
0
        public StreamingBalanceRecord GetBalance()
        {
            BalanceRecord = null;
            using (StreamingAPIConnector streamingApi = new StreamingAPIConnector(serverData))
                using (SyncAPIConnector connector = new SyncAPIConnector(serverData))
                {
                    try
                    {
                        Credentials   credentials   = new Credentials(userId, password, appGuid, appName);
                        LoginResponse loginResponse = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);

                        streamingApi.StreamSessionId = loginResponse.StreamSessionId;
                        streamingApi.Connect();
                        streamingApi.SubscribeBalance();

                        streamingApi.BalanceRecordReceived += OnBalanceChanged;

                        Stopwatch sw = new Stopwatch();
                        sw.Start();

                        var timestamp = sw.ElapsedMilliseconds;

                        //wait for balance
                        while (BalanceRecord == null)
                        {
                            Thread.Sleep(50);
                            if (timestamp + timeout < sw.ElapsedMilliseconds)
                            {
                                sw.Stop();
                                log.Info($"Unable to fetch balance, timeout of [{timeout}s] elapsed.");
                                break;
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        log.Error("Unable to fetch balance, exception occured.", e);
                    }
                    finally
                    {
                        streamingApi.UnsubscribeBalance();
                    }

                    return(BalanceRecord);
                }
        }
        public void DaneInstrumentu()
        {
            try
            {
                SyncAPIConnector connector      = new SyncAPIConnector(serverData);
                Credentials      credentials    = new Credentials(userId, password, "", "pixelNet");
                LoginResponse    loginResponse  = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);
                SymbolResponse   symbolResponse = APICommandFactory.ExecuteSymbolCommand(connector, this.Nazwa);
                this.info = symbolResponse.Symbol;
                ulamek    = Convert.ToInt32(info.Precision);
                double d    = Convert.ToDouble(info.Ask);
                string strl = d.ToString("0");
                dziesiatki = strl.Length;
                podzielp   = Convert.ToInt32(Math.Pow(10, strl.Length));

                LogoutResponse logoutResponse = APICommandFactory.ExecuteLogoutCommand(connector);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
 private void TransakcjaStart(string Nazwa, double volume, TRADE_OPERATION_CODE toc)
 {
     try
     {
         SyncAPIConnector     connector        = new SyncAPIConnector(serverData);
         Credentials          credentials      = new Credentials(userId, password, "", "pixelNet");
         LoginResponse        loginResponse    = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);
         SymbolResponse       symbolResponse   = APICommandFactory.ExecuteSymbolCommand(connector, Nazwa);
         double               price            = symbolResponse.Symbol.Ask.GetValueOrDefault();
         double               sl               = 0.0;
         double               tp               = 0.0;
         string               symbol           = symbolResponse.Symbol.Symbol;
         long                 order            = 0;
         long                 expiration       = 0;
         TradeTransInfoRecord ttOpenInfoRecord = new TradeTransInfoRecord(
             toc,
             TRADE_TRANSACTION_TYPE.ORDER_OPEN,
             price, sl, tp, symbol, volume, order, "", expiration);
         TradeTransactionResponse tradeTransactionResponse = APICommandFactory.ExecuteTradeTransactionCommand(connector, ttOpenInfoRecord);
         LogoutResponse           logoutResponse           = APICommandFactory.ExecuteLogoutCommand(connector);
     }
     catch (Exception e) { MessageBox.Show(e.Message); }
 }
        public void Notowania(PERIOD_CODE pc, long Zakres)
        {
            tabelaWynikow = new double[10000];
            try
            {
                SyncAPIConnector connector     = new SyncAPIConnector(serverData);
                Credentials      credentials   = new Credentials(userId, password, "", "pixelNet");
                LoginResponse    loginResponse = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);

                double ms   = DateTime.Now.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
                long?  msd  = Convert.ToInt64(ms);
                long?  msd1 = msd - (Zakres * (60 * 1000));//17800 10000min
                ChartRangeInfoRecord zakres             = new ChartRangeInfoRecord(Nazwa, pc, msd1, msd, 0);
                ChartRangeResponse   chartRangeResponse = APICommandFactory.ExecuteChartRangeCommand(connector, zakres);

                int tabdl  = 0;
                int dlresp = chartRangeResponse.RateInfos.Count - 10000;

                double podz = dziesiatki + ulamek;
                podz = Math.Pow(10, podz);

                foreach (xAPI.Records.RateInfoRecord nota in chartRangeResponse.RateInfos)
                {
                    if (tabdl >= dlresp)
                    {
                        tabelaWynikow[tabdl - dlresp] = (double)nota.Open / podz;
                    }
                    tabdl++;
                }
                LogoutResponse logoutResponse = APICommandFactory.ExecuteLogoutCommand(connector);
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
        private void ListaTransakcji()
        {
            try
            {
                SyncAPIConnector connector      = new SyncAPIConnector(serverData);
                Credentials      credentials    = new Credentials(userId, password, "", "pixelNet");
                LoginResponse    loginResponse  = APICommandFactory.ExecuteLoginCommand(connector, credentials, true);
                TradesResponse   tradesResponse = APICommandFactory.ExecuteTradesCommand(connector, true);

                listaTran.Items.Clear();
                foreach (xAPI.Records.TradeRecord rec in tradesResponse.TradeRecords)
                {
                    string rodz = "";
                    if (rec.Cmd == 1)
                    {
                        rodz = "Sell";
                    }
                    else
                    {
                        rodz = "Buy";
                    }
                    listaTran.Items.Add(new PozTran()
                    {
                        Nazwa   = rec.Symbol,
                        CenaZak = (double)rec.Open_price,
                        Zysk    = (double)rec.Profit,
                        Rodzaj  = rodz
                    });;

                    //if (rec.Profit > 30) TransakcjaStop(rec);
                    LogoutResponse logoutResponse = APICommandFactory.ExecuteLogoutCommand(connector);
                }

                tradesResponse = null;
            } catch { }
        }
Exemple #15
0
 public static TradeTransactionStatusResponse ExecuteTradeTransactionStatusCommand(SyncAPIConnector connector, long?order, bool prettyPrint = false)
 {
     return(new TradeTransactionStatusResponse(connector.ExecuteCommand(CreateTradeTransactionStatusCommand(order, prettyPrint)).ToString()));
 }
Exemple #16
0
 public static TradeTransactionResponse ExecuteTradeTransactionCommand(SyncAPIConnector connector, TRADE_OPERATION_CODE cmd, TRADE_TRANSACTION_TYPE type, double?price, double?sl, double?tp, string symbol, double?volume, long?ie_deviation, long?order, string comment, long?expiration, bool prettyPrint = false)
 {
     return(new TradeTransactionResponse(connector.ExecuteCommand(CreateTradeTransactionCommand(cmd, type, price, sl, tp, symbol, volume, order, "", expiration, prettyPrint)).ToString()));
 }
Exemple #17
0
 public static TradeTransactionResponse ExecuteTradeTransactionCommand(SyncAPIConnector connector, TradeTransInfoRecord tradeTransInfo, bool prettyPrint = false)
 {
     return(new TradeTransactionResponse(connector.ExecuteCommand(CreateTradeTransactionCommand(tradeTransInfo, prettyPrint)).ToString()));
 }
Exemple #18
0
 public static TradeRecordsResponse ExecuteTradeRecordsCommand(SyncAPIConnector connector, LinkedList <long?> orders, bool prettyPrint = false)
 {
     return(new TradeRecordsResponse(connector.ExecuteCommand(CreateTradeRecordsCommand(orders, prettyPrint)).ToString()));
 }
Exemple #19
0
 public static TickPricesResponse ExecuteTickPricesCommand(SyncAPIConnector connector, List <string> symbols, long?timestamp, bool prettyPrint = false)
 {
     return(new TickPricesResponse(connector.ExecuteCommand(CreateTickPricesCommand(symbols, timestamp, prettyPrint)).ToString()));
 }
Exemple #20
0
 public static SymbolResponse ExecuteSymbolCommand(SyncAPIConnector connector, string symbol, bool prettyPrint = false)
 {
     return(new SymbolResponse(connector.ExecuteCommand(CreateSymbolCommand(symbol, prettyPrint)).ToString()));
 }
Exemple #21
0
 public static StepRulesResponse ExecuteStepRulesCommand(SyncAPIConnector connector, bool prettyPrint = false)
 {
     return(new StepRulesResponse(connector.ExecuteCommand(CreateStepRulesCommand(prettyPrint)).ToString()));
 }
Exemple #22
0
 public static AllSymbolGroupsResponse ExecuteSymbolGroupsCommand(SyncAPIConnector connector, bool prettyPrint = false)
 {
     return(null);
 }
Exemple #23
0
 public static ProfitCalculationResponse ExecuteProfitCalculationCommand(SyncAPIConnector connector, string symbol, double?volume, TRADE_OPERATION_CODE cmd, double?openPrice, double?closePrice, bool prettyPrint = false)
 {
     return(new ProfitCalculationResponse(connector.ExecuteCommand(CreateProfitCalculationCommand(symbol, volume, cmd, openPrice, closePrice, prettyPrint)).ToString()));
 }
Exemple #24
0
 public static CurrentUserDataResponse ExecuteCurrentUserDataCommand(SyncAPIConnector connector, bool prettyPrint = false)
 {
     return(new CurrentUserDataResponse(connector.ExecuteCommand(CreateCurrentUserDataCommand(prettyPrint)).ToString()));
 }
Exemple #25
0
 public static TradingHoursResponse ExecuteTradingHoursCommand(SyncAPIConnector connector, List <string> symbols, bool prettyPrint = false)
 {
     return(new TradingHoursResponse(connector.ExecuteCommand(CreateTradingHoursCommand(symbols, prettyPrint)).ToString()));
 }
Exemple #26
0
 public static TradesResponse ExecuteTradesCommand(SyncAPIConnector connector, bool openedOnly, bool prettyPrint = false)
 {
     return(new TradesResponse(connector.ExecuteCommand(CreateTradesCommand(openedOnly, prettyPrint)).ToString()));
 }
Exemple #27
0
 public static TradesHistoryResponse ExecuteTradesHistoryCommand(SyncAPIConnector connector, long?start, long?end, bool prettyPrint = false)
 {
     return(new TradesHistoryResponse(connector.ExecuteCommand(CreateTradesHistoryCommand(start, end, prettyPrint)).ToString()));
 }
Exemple #28
0
 public static MarginLevelResponse ExecuteMarginLevelCommand(SyncAPIConnector connector, bool prettyPrint = false)
 {
     return(new MarginLevelResponse(connector.ExecuteCommand(CreateMarginLevelCommand(prettyPrint)).ToString()));
 }
Exemple #29
0
 public static VersionResponse ExecuteVersionCommand(SyncAPIConnector connector, bool prettyPrint = false)
 {
     return(new VersionResponse(connector.ExecuteCommand(CreateVersionCommand(prettyPrint)).ToString()));
 }
Exemple #30
0
 public static MarginTradeResponse ExecuteMarginTradeCommand(SyncAPIConnector connector, string symbol, double?volume, bool prettyPrint)
 {
     return(new MarginTradeResponse(connector.ExecuteCommand(CreateMarginTradeCommand(symbol, volume, prettyPrint)).ToString()));
 }