private void init() { setDefaultCloseOperation(DISPOSE_ON_CLOSE); setTitle("Strategy Information - " + strategy.getName()); this.addWindowListener( new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { Dispatcher dispatcher = Dispatcher.getInstance(); dispatcher.removeListener(StrategyInformationDialog.this); } }); JPanel contentPanel = new JPanel(new BorderLayout()); getContentPane().add(contentPanel, BorderLayout.CENTER); JTabbedPane tabbedPane = new JTabbedPane(); contentPanel.add(tabbedPane, BorderLayout.CENTER); JPanel performancePanel = new JPanel(new SpringLayout()); tabbedPane.addTab("Performance", performancePanel); NumberFormat nf2 = NumberFormatterFactory.getNumberFormatter(2); PerformanceManager pm = strategy.getPerformanceManager(); add(performancePanel, "Position", strategy.getPositionManager().getCurrentPosition()); add(performancePanel, "Trades", pm.getTrades()); add(performancePanel, "% Profitable", nf2.format(pm.getPercentProfitableTrades())); add(performancePanel, "Average trade", nf2.format(pm.getAverageProfitPerTrade())); add(performancePanel, "Net Profit", nf2.format(pm.getNetProfit())); add(performancePanel, "Max Drawdown", nf2.format(pm.getMaxDrawdown())); add(performancePanel, "Profit Factor", nf2.format(pm.getProfitFactor())); add(performancePanel, "Kelly", nf2.format(pm.getKellyCriterion())); add(performancePanel, "PI", nf2.format(pm.getPerformanceIndex())); add(performancePanel, "CPI", nf2.format(pm.getCPI())); makeCompactGrid(performancePanel); JPanel securityPanel = new JPanel(new SpringLayout()); tabbedPane.addTab("Instrument", securityPanel); add(securityPanel, "Symbol", strategy.getContract().m_symbol); add(securityPanel, "Security Type", strategy.getContract().m_secType); add(securityPanel, "Exchange", strategy.getContract().m_exchange); add(securityPanel, "Multiplier", strategy.getContract().m_multiplier); add(securityPanel, "Commission", strategy.getPerformanceManager().getCommission().toString()); bidAskLabel = new JLabel(); securityPanel.add(new JLabel("Best bid-ask" + ":")); securityPanel.add(bidAskLabel); cumBidAskSizesLabel = new JLabel(); securityPanel.add(new JLabel("Book bid-ask size" + ":")); securityPanel.add(cumBidAskSizesLabel); makeCompactGrid(securityPanel); JPanel parametersPanel = new JPanel(new SpringLayout()); tabbedPane.addTab("Parameters", parametersPanel); StrategyParams params = strategy.getParams(); add(parametersPanel, "Schedule", strategy.getTradingSchedule().toString()); for (StrategyParam param : params.getAll()) { add(parametersPanel, param.getName(), param.getValue()); } makeCompactGrid(parametersPanel); IndicatorManager indicatorManager = strategy.getIndicatorManager(); if (indicatorManager != null) { JPanel indicatorsPanel = new JPanel(new SpringLayout()); tabbedPane.addTab("Indicators", indicatorsPanel); for (Indicator indicator : strategy.getIndicatorManager().getIndicators()) { add(indicatorsPanel, indicator.getKey(), indicator.getValue()); } makeCompactGrid(indicatorsPanel); } getContentPane().setPreferredSize(new Dimension(450, 400)); }
/** The main loop for the background thread. It is here that most of the work os orchestrated. */ public void run() { double thisCost = 500.0; double oldCost = 0.0; double dcost = 500.0; int countSame = 0; map.update(map.getGraphics()); while (countSame < 100) { generation++; int ioffset = matingPopulationSize; int mutated = 0; // Mate the chromosomes in the favoured population // with all in the mating population for (int i = 0; i < favoredPopulationSize; i++) { Chromosome cmother = chromosomes[i]; // Select partner from the mating population int father = (int) (0.999999 * Math.random() * (double) matingPopulationSize); Chromosome cfather = chromosomes[father]; mutated += cmother.mate(cfather, chromosomes[ioffset], chromosomes[ioffset + 1]); ioffset += 2; } // The new generation is in the matingPopulation area // move them to the correct area for sort. for (int i = 0; i < matingPopulationSize; i++) { chromosomes[i] = chromosomes[i + matingPopulationSize]; chromosomes[i].calculateCost(cities); } // Now sort the new mating population Chromosome.sortChromosomes(chromosomes, matingPopulationSize); double cost = chromosomes[0].getCost(); dcost = Math.abs(cost - thisCost); thisCost = cost; double mutationRate = 100.0 * (double) mutated / (double) matingPopulationSize; NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumFractionDigits(2); nf.setMinimumFractionDigits(2); status.setText( "Generation " + generation + " Cost " + (int) thisCost + " Mutated " + nf.format(mutationRate) + "%"); if ((int) thisCost == (int) oldCost) { countSame++; } else { countSame = 0; oldCost = thisCost; } map.update(map.getGraphics()); } status.setText("Solution found after " + generation + " generations."); }
public void updateStates() { NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(2); nf.setMinimumFractionDigits(2); try { // System.out.println("getting variables."); status = cryo.cryoGetStatusCORBA(); frame.lblStatus.setText(statusString[status] + " "); heater = cryo.cryoGetHeaterCORBA(); frame.lblHeater.setText(nf.format(heater) + " watts"); temp = cryo.cryoGetTempCORBA(); frame.lblTemp.setText(nf.format(temp) + " deg"); cli = cryo.cryoGetCliCORBA(); if (Double.isNaN(cli)) { frame.lblCli.setText(cli + " "); } else frame.lblCli.setText(nf.format(cli) + " "); } catch (org.omg.CORBA.COMM_FAILURE cf) { // stop thread and try to reconnect to the server frame.lblStatus.setText("FAILURE!! Server connected?"); stop = true; return; } }
/** Update the statistic */ public void setStats(int mi, double me, int ma, double sd) { NumberFormat nf = NumberFormat.getInstance(); nf.setMaximumFractionDigits(2); nf.setMinimumFractionDigits(2); nf.setGroupingUsed(false); min.setText(Integer.toString(mi)); max.setText(Integer.toString(ma)); String s = nf.format(me); mean.setText(s); s = nf.format(sd); stdDev.setText(s); }
public void label(Graphics g, String var, double m, String units, int adj) { g.setColor(Color.black); g.setFont(font); String s = format.format(m); g.drawString(var + ": " + s, x + 5, y + h / 2 - 5); g.drawString(units, x + w - adj, y + h / 2 - 5); }
/** * Formats the specified value and enters it in the text field. * * @param value the value to be entered */ public void setValue(double value) { if (!isVisible()) return; if (minValue != null) value = Math.max(value, minValue.doubleValue()); if (maxValue != null) value = Math.min(value, maxValue.doubleValue()); setFormatFor(value); setText(format.format(value)); prevValue = value; }
// // Sets the frame rate text displayed in the lower left corner. // void setFrameRateText() { NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumFractionDigits(2); nf.setMaximumFractionDigits(2); frameRateText.text( "frames/sec = " + nf.format((double) frameCount / ((double) (time - lastTime) / 1000.0))); }
public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { setFont( getDefaultRenderer(String.class) .getTableCellRendererComponent(DatasetStatisticsTable.this, "a", false, false, 0, 0) .getFont()); //$NON-NLS-1$ setText(format.format(value)); setHorizontalAlignment(SwingConstants.TRAILING); return this; }
/** * Gets the value from the text field. * * @return the value */ public double getValue() { if (getText().equals(format.format(prevValue))) return prevValue; double retValue; try { retValue = format.parse(getText()).doubleValue(); if (minValue != null && retValue < minValue.doubleValue()) { setValue(minValue.doubleValue()); return minValue.doubleValue(); } if (maxValue != null && retValue > maxValue.doubleValue()) { setValue(maxValue.doubleValue()); return maxValue.doubleValue(); } } catch (ParseException e) { Toolkit.getDefaultToolkit().beep(); setValue(prevValue); return prevValue; } return retValue; }