public CloudSTOPanel() { var panel = new QDockPanel(); Content = panel; Loaded += initialize; instanceGrid = new QDataTableGrid(loadInstanceRow, unloadInstanceRow); var controls = new QDockPanel(); systemIdBox = new QComboBox("-1", resetInstanceId, true) { MinWidth = 80, IsTextSearchEnabled = true, IsSynchronizedWithCurrentItem = false }; controls.add(systemIdBox, Dock.Left); var grid = new QGrid(); grid.addColumns(4); instancesLabel = label(""); grid.add(instancesLabel, 0); redGreenLabel = label(""); grid.add(redGreenLabel, 1); summaryLabel = label(""); grid.add(summaryLabel, 2); completionTimeLabel = label(""); grid.add(completionTimeLabel, 3); controls.add(grid, Dock.Left); controls.add(new QButton("Refresh System Ids", refreshSystemIds), Dock.Left); panel.add(controls, Dock.Top); panel.add(instanceGrid, Dock.Top); LogC.info("starting cloud STO tracker"); tracker = new CloudSTOTracker(this); }
object runSetupControls() { var grid = new QGrid(); grid.addColumn(150); // name grid.addColumn(100); // load grid.addColumn(100); // save grid.addColumn(20); grid.addColumn(115); // system id // take 20 or 30 or 40 grid.addColumn(115); // run number // take same amount as system id grid.addColumn(100); // load system grid.addColumn(20); grid.addColumn(150); //startDate grid.addColumn(150); // end Date grid.addColumn(10); grid.addColumn(90); // Plots checkbox grid.addColumn(10); grid.addColumn(80); // run button (historical) grid.addColumn(60); // live button // word Live is about 25 so 30 + border 10 + 20 for checkbox need 90 grid.add(withLabel("Name:", nameBox), 0); grid.add(loadButton, 1); grid.add(saveButton, 2); grid.add(withLabel("System ID", idBox), 4); numberBoxWithLabel = withLabel("RunNumber", numberBox); numberBoxWithLabel.IsEnabled = false; grid.add(numberBoxWithLabel, 5); grid.add(loadSystemButton, 6); grid.add(withLabel("Start Date:", startDatePicker), 8); grid.add(withLabel("End Date:", endDatePicker), 9); grid.add(showPlots, 11); grid.add(runButton, 13); grid.add(liveButton, 14); return(grid); }
public FerretPanel() { control = new FerretControl(this, FerretControl.incomingStatus()); var grid = new QGrid(); Content = grid; grid.addColumns(4); statusLabel = new Label { Content = "Currently in Unknown mode", FontSize = 24, VerticalAlignment = VerticalAlignment.Center }; dma = new QButton("DMA", () => control.onButtonPressed("DMA")) { Background = Brushes.SpringGreen, HorizontalAlignment = HorizontalAlignment.Stretch, MinWidth = 250, FontSize = 24, IsEnabled = false }; ticket = new QButton("Ticket", () => control.onButtonPressed("Ticket")) { Background = Brushes.Yellow, HorizontalAlignment = HorizontalAlignment.Stretch, MinWidth = 250, FontSize = 24, IsEnabled = false }; staged = new QButton("Stage", () => control.onButtonPressed("Stage")) { Background = Brushes.Red, HorizontalAlignment = HorizontalAlignment.Stretch, MinWidth = 250, FontSize = 24, IsEnabled = false }; grid.add(statusLabel, 0); grid.add(dma, 1); grid.add(ticket, 2); grid.add(staged, 3); }
public StatusMapPanel() { var panel = downPanel(); model = new StatusTreeMap(this); treeMap = new QTreeMap(model); Content = panel; var controlGrid = new QGrid(); ResizingPanel.SetResizeHeight(controlGrid, 23); controlGrid.addColumn(1, GridUnitType.Star); controlGrid.addColumn(1, GridUnitType.Star); controlGrid.addColumn(7, GridUnitType.Star); controlGrid.add(new QCheckBox("Equal Size Boxes", true, selected => { model.setIsEqualSizes(selected); treeMap.updateGuiNodes(); }) { VerticalAlignment = VerticalAlignment.Center }, 0); var refershBox = new QComboBox("5", refreshRate => treeMap.setRefreshRate(int.Parse(refreshRate) * 1000)) { Height = 20 }; controlGrid.add(withLabel("Refresh Rate (sec): ", refershBox), 1); refershBox.populateWithFirst("1", O.list("3", "5", "10", "30", "60"), false); panel.Children.Add(controlGrid); panel.Children.Add(treeMap); refreshContextMenus(); }
void Start() { StartPosistion = transform.position; _game = FindObjectOfType <PongGame>(); _ball = FindObjectOfType <PongBall>(); if (Side == Player.Player1) { _grid = new QGrid(16, transform, new GridSettings { Offset = new Vector3(9.8f, 0, 0), ResolutionX = 1.28f, ResolutionY = 1.28f }); _vect = Vector <float> .Build.Dense(new[] { 1f }); QAIManager.InitAgent(this, new QOption { LearningRate = 0.005f, NetworkArgs = new [] { new CNNArgs { FilterSize = 4, FilterCount = 1, PoolLayerSize = 2, Stride = 2 } }, MaxPoolSize = 2000, BatchSize = 2000, EpsilonStart = 0.5f, EpsilonEnd = 0.1f, Discount = 0.95f, TrainingInterval = 20, TrainingCycle = 10, }); if (QAIManager.CurrentMode == QAIMode.Learning || QAIManager.CurrentMode == QAIMode.Testing) { Time.timeScale = 5f; } } StartCoroutine(Movement()); }
private void SetGridValues(QGrid grid, IEnumerable <Coordinates?> coords, float value) { foreach (var coord in coords.Where(c => c.HasValue).Select(c => c.Value)) { grid[coord] = value; } }
object setupControls() { var grid = new QGrid(); grid.addColumn(115); // system id // take 20 or 30 or 40 grid.addColumn(150); // market grid.add(withLabel("System ID", idBox), 0); grid.add(withLabel("Market", marketBox), 1); return(grid); }
public ReconPanel() { Producer <string> buttonText = () => "set LOG__VERBOSE " + (Log.verbose() ? "off" : "on"); QButton[] verboseButton = { null }; verboseButton[0] = new QButton(buttonText(), () => { bool newVerbose; LogC.flipVerbose(out newVerbose); runOnGuiThread(() => verboseButton[0].setText(buttonText())); }) { HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Top, Width = 250 }; var dockPanel = new QDockPanel { LastChildFill = false }; Content = dockPanel; dockPanel.add(verboseButton[0], Dock.Top); var executionConfigurationGrid = new QGrid { Height = 25 }; dockPanel.add(executionConfigurationGrid, Dock.Top); O.zeroTo(4, i => executionConfigurationGrid.addColumn(200)); var platformBox = new TextBox(); var routeBox = new TextBox(); var typeBox = new QComboBox("Future", selected => { var config = ExecutionConfigurationTable.currentConfiguration(selected); platformBox.Text = config.platform(); routeBox.Text = config.route(); }, O.list("Equity")); executionConfigurationGrid.add(typeBox, 0); executionConfigurationGrid.add(withLabel("Platform", platformBox), 1); executionConfigurationGrid.add(withLabel("Route", routeBox), 2); executionConfigurationGrid.add(new QButton("Set Current Execution Configuration", () => { var type = typeBox.selected("NA"); var platform = platformBox.Text; var route = routeBox.Text; ExecutionConfigurationTable.CONFIG.insert(type, platform, route); Db.commit(); Email.notification("Execution Configuration Changed for " + type + ": " + platform + ", " + route, "").sendTo("team"); alertUser("Configuration changed for " + type + " - don't forget to restart systems to pick up the change."); }) { Width = 200 }, 3); }
private void Start() { _grid = new QGrid(13, transform, new GridSettings { NormalAxis = Axis.Y }); _linearState = Vector <float> .Build.Dense(2); _history = new LinkedList <QState>(); QAIManager.InitAgent(this, new QOption { NetworkArgs = new [] { new CNNArgs { FilterCount = 1, FilterSize = 1, PoolLayerSize = 1, Stride = 1 } } }); }
UIElement filterPanel() { var result = new QGrid { Height = 25 }; result.addColumn(200); result.addColumn(100); result.addColumn(100); result.add(new QComboBox("ALL", selected => watcher.setTagFilter(selected), O.list <string>(BloombergTagsTable.TAGS.C_TAG.distinct(Clause.TRUE)))); result.add(new QCheckBox("Show Zeros", false, setting => watcher.setFilterZeroes(!setting)), 1); result.add(new QCheckBox("Show Hidden", false, setting => watcher.setShowHidden(setting)), 2); return(result); }
UIElement comboBoxPanel() { var comboBoxes = new QGrid { Height = 25 }; comboBoxes.addColumns(6); comboBoxes.add(withLabel("_System:", systemBox), 0); comboBoxes.add(withLabel("_Pv:", pvBox), 1); comboBoxes.add(withLabel("_Market:", marketBox), 2); comboBoxes.add(new QButton("Subscribe", subscribeButtonClicked) { HorizontalAlignment = HorizontalAlignment.Left }, 3); comboBoxes.add(withLabel("_Filter:", filterBox), 4); return(comboBoxes); }
void addTradesTab(Simulator simulator, ItemsControl charts, IEnumerable <Trade> trades) { var dataGrid = new QDataTableGrid(); var table = new QDataTable { { "symbol", typeof(string) }, { "time", typeof(DateTime) }, { "description", typeof(string) }, { "direction", typeof(string) }, { "size", typeof(int) }, { "price", typeof(double) }, { "details", typeof(string) }, { "fxRate", typeof(double) } }; var panel = new QDockPanel(); charts.Items.Add(new DockableContent { Title = title("Trades"), Content = panel }); var controlGrid = new QGrid(); controlGrid.addColumns(2); controlGrid.add(withLabel("S_ymbol", new QComboBox("ALL", selected => table.filter("symbol", selected), markets())), 0); controlGrid.add(withLabel("_Direction", new QComboBox("ALL", selected => table.filter("direction", selected), Objects.list("buy", "sell"))), 1); panel.add(controlGrid, Dock.Top); panel.add(dataGrid, Dock.Bottom); Converter <Trade, DataRow> newTradeRow = trade => { var row = table.NewRow(); row["symbol"] = trade.order().symbol.name; row["time"] = trade.time; row["description"] = trade.description; row["direction"] = trade.direction.longShort("buy", "sell"); row["size"] = trade.size; row["price"] = trade.price; row["details"] = " " + trade.order().details; row["fxRate"] = trade.fxRate; return(row); }; Objects.each(Objects.reverse(trades), trade => table.add(newTradeRow(trade))); dataGrid.populateFromDataTable(table); dataGrid.AutoGeneratedColumns += rightJustifyColumns; simulator.addNewTradeListener((position, trade) => runOnGuiThread(() => table.addAtStart(newTradeRow(trade)))); }
// Use this for initialization void Start() { GetComponentInChildren <SpriteRenderer>().shadowCastingMode = ShadowCastingMode.On; _onTrack = true; _distanceTravelled = StartPosition; Track.GetPointAtDistance(_distanceTravelled); _grid = new QGrid(16, transform, new GridSettings { Offset = Vector3.up * 5.2f }); _vector = Vector <float> .Build.Dense(10, 0); _velocityBin = new Bin(0.01f, 0.25f, 0.5f, 75f); _forceBin = new Bin(0.01f, 0.25f, 0.5f, 75f); var options = new QOption { Discretize = false, MaxPoolSize = 2000, BatchSize = 2000, EpsilonStart = 0.7f, Discount = 0.8f, TrainingInterval = 50, NetworkArgs = new [] { new CNNArgs { FilterSize = 4, FilterCount = 1, PoolLayerSize = 2, Stride = 2 } } }; options.Discretize = false; // if(AiControlled || QAIManager.CurrentMode == QAIMode.Imitating) { QAIManager.InitAgent(this, options); if (QAIManager.CurrentMode == QAIMode.Learning) { Time.timeScale = 2.0f; } // } StartCoroutine(Spas()); }
void addPositionsTab(Researcher researcher, ItemsControl charts) { var simulator = researcher.simulator; var positionsPane = new DockablePane(); var dataGrid = new QDataTableGrid(); var table = new QDataTable("symbol", "entryTime", "exitTime", "direction") { { "initialSize", typeof(int) }, { "pnl", typeof(double) }, { "barsHeld", typeof(int) }, { "numTrades", typeof(int) }, { "positionHIDDEN", typeof(Position) } }; var panel = new QDockPanel(); positionsPane.Items.Add(new DockableContent { Title = title("Position List"), Content = panel }); charts.Items.Add(new DockableContent { Title = title("Positions"), Content = positionsPane }); var controlGrid = new QGrid(); controlGrid.addColumns(3); controlGrid.add(withLabel("S_ymbol", new QComboBox("ALL", selected => table.filter("symbol", selected), markets())), 0); controlGrid.add(withLabel("_Direction", new QComboBox("ALL", selected => table.filter("direction", selected), Objects.list("long", "short"))), 1); controlGrid.add(withLabel("_P&L", new QComboBox("ALL", selected => table.filter <double>("pnl", value => pnlMatchesSelection(selected, value)), Objects.list("winning", "losing"))), 2); panel.add(controlGrid, Dock.Top); panel.add(dataGrid, Dock.Bottom); Action <DataRow, Position> updateRow = (row, position) => { row["symbol"] = position.symbol.name; row["entryTime"] = Objects.ymdHuman(position.entry().time); row["exitTime"] = position.isClosed() ? Objects.ymdHuman(position.exitTrade().time) : "Open"; row["direction"] = position.entry().direction.ToString(); row["initialSize"] = position.entry().size; row["pnl"] = position.isClosed() ? position.pnl(true, simulator.runInNativeCurrency()) : simulator.pnlForPosition(position); row["barsHeld"] = position.barsHeld(); row["numTrades"] = position.trades().Count; row["positionHIDDEN"] = position; }; Converter <Position, DataRow> newRow = position => { var row = table.NewRow(); updateRow(row, position); return(row); }; Objects.each(Objects.reverse(researcher.positions), position => table.add(newRow(position))); dataGrid.populateFromDataTable(table); dataGrid.AutoGeneratedColumns += rightJustifyColumns; simulator.addNewTradeListener((position, trade) => runOnGuiThread(() => { if (position.isEntry(trade)) { table.addAtStart(newRow(position)); } else { updateRow(table.firstRow("positionHIDDEN", position), position); } })); addFilteredHistogram(positionsPane, table, "Average P&L (Bar To End)", new TradePathHistogramControl(researcher, true, true)); addFilteredHistogram(positionsPane, table, "Cumulative P&L (Bar To End)", new TradePathHistogramControl(researcher, false, true)); addFilteredHistogram(positionsPane, table, "Average P&L (Start To Bar)", new TradePathHistogramControl(researcher, true, false)); addFilteredHistogram(positionsPane, table, "Cumulative P&L (Start To Bar)", new TradePathHistogramControl(researcher, false, false)); addFilteredHistogram(positionsPane, table, "Pnl Distribution", new PositionHistogramControl(researcher, position => position.pnl(true, researcher.simulator.runInNativeCurrency()))); addFilteredHistogram(positionsPane, table, "Entry Size Distribution", new PositionHistogramControl(researcher, position => Objects.first(position.trades()).size)); addFilteredHistogram(positionsPane, table, "Bars Held Distribution", new PositionHistogramControl(researcher, position => position.barsHeld())); }