Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        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];
        }