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) { //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(); }
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(); }
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); }
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); } }
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 { } }
public static TradeTransactionStatusResponse ExecuteTradeTransactionStatusCommand(SyncAPIConnector connector, long?order, bool prettyPrint = false) { return(new TradeTransactionStatusResponse(connector.ExecuteCommand(CreateTradeTransactionStatusCommand(order, prettyPrint)).ToString())); }
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())); }
public static TradeTransactionResponse ExecuteTradeTransactionCommand(SyncAPIConnector connector, TradeTransInfoRecord tradeTransInfo, bool prettyPrint = false) { return(new TradeTransactionResponse(connector.ExecuteCommand(CreateTradeTransactionCommand(tradeTransInfo, prettyPrint)).ToString())); }
public static TradeRecordsResponse ExecuteTradeRecordsCommand(SyncAPIConnector connector, LinkedList <long?> orders, bool prettyPrint = false) { return(new TradeRecordsResponse(connector.ExecuteCommand(CreateTradeRecordsCommand(orders, prettyPrint)).ToString())); }
public static TickPricesResponse ExecuteTickPricesCommand(SyncAPIConnector connector, List <string> symbols, long?timestamp, bool prettyPrint = false) { return(new TickPricesResponse(connector.ExecuteCommand(CreateTickPricesCommand(symbols, timestamp, prettyPrint)).ToString())); }
public static SymbolResponse ExecuteSymbolCommand(SyncAPIConnector connector, string symbol, bool prettyPrint = false) { return(new SymbolResponse(connector.ExecuteCommand(CreateSymbolCommand(symbol, prettyPrint)).ToString())); }
public static StepRulesResponse ExecuteStepRulesCommand(SyncAPIConnector connector, bool prettyPrint = false) { return(new StepRulesResponse(connector.ExecuteCommand(CreateStepRulesCommand(prettyPrint)).ToString())); }
public static AllSymbolGroupsResponse ExecuteSymbolGroupsCommand(SyncAPIConnector connector, bool prettyPrint = false) { return(null); }
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())); }
public static CurrentUserDataResponse ExecuteCurrentUserDataCommand(SyncAPIConnector connector, bool prettyPrint = false) { return(new CurrentUserDataResponse(connector.ExecuteCommand(CreateCurrentUserDataCommand(prettyPrint)).ToString())); }
public static TradingHoursResponse ExecuteTradingHoursCommand(SyncAPIConnector connector, List <string> symbols, bool prettyPrint = false) { return(new TradingHoursResponse(connector.ExecuteCommand(CreateTradingHoursCommand(symbols, prettyPrint)).ToString())); }
public static TradesResponse ExecuteTradesCommand(SyncAPIConnector connector, bool openedOnly, bool prettyPrint = false) { return(new TradesResponse(connector.ExecuteCommand(CreateTradesCommand(openedOnly, prettyPrint)).ToString())); }
public static TradesHistoryResponse ExecuteTradesHistoryCommand(SyncAPIConnector connector, long?start, long?end, bool prettyPrint = false) { return(new TradesHistoryResponse(connector.ExecuteCommand(CreateTradesHistoryCommand(start, end, prettyPrint)).ToString())); }
public static MarginLevelResponse ExecuteMarginLevelCommand(SyncAPIConnector connector, bool prettyPrint = false) { return(new MarginLevelResponse(connector.ExecuteCommand(CreateMarginLevelCommand(prettyPrint)).ToString())); }
public static VersionResponse ExecuteVersionCommand(SyncAPIConnector connector, bool prettyPrint = false) { return(new VersionResponse(connector.ExecuteCommand(CreateVersionCommand(prettyPrint)).ToString())); }
public static MarginTradeResponse ExecuteMarginTradeCommand(SyncAPIConnector connector, string symbol, double?volume, bool prettyPrint) { return(new MarginTradeResponse(connector.ExecuteCommand(CreateMarginTradeCommand(symbol, volume, prettyPrint)).ToString())); }