public static int BrokerAsset(string asset, double[] pPrice, double[] pSpread, double[] pVolume, double[] pPip, double[] pPipCost, double[] pMinAmount, double[] pMargin, double[] pRollLong, double[] pRollShort) { // TODO implementation BrokerError("BrokerAsset"); if (!connected) { return(0); } asset = asset.Replace("/", ""); SymbolJson symbol = Array.Find(symbols, s => s.SymbolName.Equals(asset)); if (symbol != null) { BrokerError(symbol.ToString()); pPrice[0] = symbol.LastAsk; pSpread[0] = symbol.LastAsk - symbol.LastBid; pVolume[0] = 0; pPip[0] = symbol.PipPosition; pMinAmount[0] = symbol.MinOrderVolume; return(1); } return(0); }
private View createBottomPanel() { symbolPicker = new Picker { Title = "Symbol", HorizontalOptions = LayoutOptions.StartAndExpand }; symbolPicker.SelectedIndexChanged += (object sender, EventArgs e) => { if (symbolPicker.SelectedIndex > -1) { currentSymbol = symbols[symbolPicker.SelectedIndex]; tradingAPI.SendSubscribeForSpotsRequest(currentTradingAccount.AccountId, currentSymbol.SymbolName); refreshPlotView(); } }; Picker volumePicker = new Picker { Title = "Volume", HorizontalOptions = LayoutOptions.StartAndExpand }; foreach (string volumeLabel in nameToVolume.Keys) { volumePicker.Items.Add(volumeLabel); } volumePicker.SelectedIndex = 0; buyButton.HorizontalOptions = LayoutOptions.End; buyButton.Clicked += (object sender, EventArgs e) => tradingAPI.SendMarketOrderRequest(currentTradingAccount.AccountId, currentSymbol.SymbolName, ProtoTradeSide.BUY, nameToVolume[volumePicker.Items[volumePicker.SelectedIndex]]); sellButton.HorizontalOptions = LayoutOptions.End; sellButton.Clicked += (object sender, EventArgs e) => tradingAPI.SendMarketOrderRequest(currentTradingAccount.AccountId, currentSymbol.SymbolName, ProtoTradeSide.SELL, nameToVolume[volumePicker.Items[volumePicker.SelectedIndex]]); StackLayout panel = new StackLayout { Spacing = 5, Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.FillAndExpand, Children = { this.symbolPicker, volumePicker, buyButton, sellButton, } }; return(panel); }
private void fillSymbols() { string oldSymbol = null; if (symbolPicker.Items.Count > 0) { oldSymbol = symbolPicker.Items [symbolPicker.SelectedIndex]; symbolPicker.Items.Clear(); } symbols = accountsAPI.getSymbols(currentTradingAccount.AccountId); int selectedIndex = 0; foreach (SymbolJson symbol in symbols) { symbolPicker.Items.Add(symbol.SymbolName); if (symbol.SymbolName.Equals(oldSymbol)) { selectedIndex = symbolPicker.Items.Count - 1; } } symbolPicker.SelectedIndex = selectedIndex; currentSymbol = symbols[symbolPicker.SelectedIndex]; }