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); } }
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(); }
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(); }
public AllSymbolsResponse GetAllSymbols() { SyncAPIConnector connector = new SyncAPIConnector(serverData); LoginResponse loginResponse = APICommandFactory.ExecuteLoginCommand(connector, GetCredentials(), true); var allSymbolsResponse = APICommandFactory.ExecuteAllSymbolsCommand(connector, true); return(allSymbolsResponse); }
public ServerTimeResponse GetServerTime() { SyncAPIConnector connector = new SyncAPIConnector(serverData); LoginResponse loginResponse = APICommandFactory.ExecuteLoginCommand(connector, GetCredentials(), true); ServerTimeResponse serverTimeResponse = APICommandFactory.ExecuteServerTimeCommand(connector, true); return(serverTimeResponse); }
// 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); }
// 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); } }
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); } }
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 { } }
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); } }