Example usage for org.jfree.chart ChartFrame dispose

List of usage examples for org.jfree.chart ChartFrame dispose

Introduction

In this page you can find the example usage for org.jfree.chart ChartFrame dispose.

Prototype

public void dispose() 

Source Link

Document

Releases all of the native screen resources used by this Window , its subcomponents, and all of its owned children.

Usage

From source file:org.activequant.tradesystem.system.integration.VolatilityCharterTradeSystem.java

public synchronized Order[] onMarket(Account account, Market market) throws Exception {
    log.info("[evaluate] using account '" + account.getId() + "'");
    log.info("[evaluate] candle series in market: " + market.getCandleSeries().length);

    List<Order> orders = new ArrayList<Order>();
    window = 0;/*from   w w w  . j  a  va2s  .c  o  m*/
    for (ChartFrame cf : charts) {
        cf.dispose();
    }
    charts.clear();
    //iterate over the candle series in the market object.
    for (CandleSeries cs : market.getCandleSeries()) {
        if (!cs.isEmpty()) {
            CandleSeries tempSeries = new CandleSeries(cs.getSeriesSpecification());
            // chart the latest 100 candles.
            int maxIndex = cs.size() > 201 ? 200 : cs.size();
            for (int i = 0; i < maxIndex - 1; i++) {
                tempSeries.add(cs.get(i));
            }

            // simply chart it. 
            chartIt(tempSeries);

            if (cs.getSeriesSpecification().getInstrumentSpecification().getSecurityType().equals("FUT")) {
                refSeries = cs;
            }

            if (cs.getSeriesSpecification().getInstrumentSpecification().getSecurityType().equals("OPT")) {
                if (refSeries != null) {
                    // calculate the volatilities. 
                    Candle c = cs.get(0);
                    final Candle refCandle = refSeries.getByTimeStamp(c.getTimeStamp());

                    final double vola = BlackScholes.resolveImplicitVolatility(
                            cs.getSeriesSpecification().getInstrumentSpecification().getContractRight()
                                    .toLowerCase().charAt(0),
                            refCandle.getClosePrice(),
                            cs.getSeriesSpecification().getInstrumentSpecification().getStrike(),
                            timeToMaturity, 0.0, interestRate, c.getClosePrice());

                    Candle volaCandle = new Candle(c.getTimeStamp(), vola, vola, vola, vola);

                    if (cs.getSeriesSpecification().getInstrumentSpecification().getContractRight()
                            .equalsIgnoreCase("C")) {
                        if (volaSeriesCall == null)
                            volaSeriesCall = new CandleSeries(cs.getSeriesSpecification());
                        volaSeriesCall.add(0, volaCandle);
                        CandlestickChart chart = chartIt(volaSeriesCall);
                        // 
                        if (volaSeriesCall.size() > 5) {
                            double ave5 = FinancialLibrary.SMA(5, volaSeriesCall.getCloses(), 0);
                            Tuple<TimeStamp, Double> tuple = new Tuple<TimeStamp, Double>(
                                    volaCandle.getTimeStamp(), ave5);
                            volaSeriesCallAverage1.add(0, tuple);
                            if (volaSeriesCallAverage1.size() > 201)
                                volaSeriesCallAverage1 = volaSeriesCallAverage1.subList(0, 200);
                            chart.addLineSeriesChart("Vola Ave 5", volaSeriesCallAverage1);
                        }

                        if (volaSeriesCall.size() > 15) {
                            double ave5 = FinancialLibrary.SMA(15, volaSeriesCall.getCloses(), 0);
                            Tuple<TimeStamp, Double> tuple = new Tuple<TimeStamp, Double>(
                                    volaCandle.getTimeStamp(), ave5);
                            volaSeriesCallAverage2.add(0, tuple);
                            if (volaSeriesCallAverage2.size() > 201)
                                volaSeriesCallAverage2 = volaSeriesCallAverage2.subList(0, 200);
                            chart.addLineSeriesChart("Vola Ave 5", volaSeriesCallAverage2);
                        }

                        if (volaSeriesCall.size() > 30) {
                            double ave5 = FinancialLibrary.SMA(30, volaSeriesCall.getCloses(), 0);
                            Tuple<TimeStamp, Double> tuple = new Tuple<TimeStamp, Double>(
                                    volaCandle.getTimeStamp(), ave5);
                            volaSeriesCallAverage3.add(0, tuple);
                            if (volaSeriesCallAverage3.size() > 201)
                                volaSeriesCallAverage3 = volaSeriesCallAverage3.subList(0, 200);
                            chart.addLineSeriesChart("Vola Ave 5", volaSeriesCallAverage3);
                        }

                    }

                    if (cs.getSeriesSpecification().getInstrumentSpecification().getContractRight()
                            .equalsIgnoreCase("P")) {
                        if (volaSeriesPut == null)
                            volaSeriesPut = new CandleSeries(cs.getSeriesSpecification());
                        volaSeriesPut.add(0, volaCandle);
                        CandlestickChart chart = chartIt(volaSeriesPut);

                        // 
                        if (volaSeriesPut.size() > 5) {
                            double ave5 = FinancialLibrary.SMA(5, volaSeriesPut.getCloses(), 0);
                            Tuple<TimeStamp, Double> tuple = new Tuple<TimeStamp, Double>(
                                    volaCandle.getTimeStamp(), ave5);
                            volaSeriesPutAverage1.add(0, tuple);
                            if (volaSeriesPutAverage1.size() > 201)
                                volaSeriesPutAverage1 = volaSeriesPutAverage1.subList(0, 200);
                            chart.addLineSeriesChart("Vola Ave 5", volaSeriesPutAverage1);
                        }
                        if (volaSeriesPut.size() > 15) {
                            double ave5 = FinancialLibrary.SMA(15, volaSeriesPut.getCloses(), 0);
                            Tuple<TimeStamp, Double> tuple = new Tuple<TimeStamp, Double>(
                                    volaCandle.getTimeStamp(), ave5);
                            volaSeriesPutAverage2.add(0, tuple);
                            if (volaSeriesPutAverage2.size() > 201)
                                volaSeriesPutAverage2 = volaSeriesPutAverage2.subList(0, 200);
                            chart.addLineSeriesChart("Vola Ave 5", volaSeriesPutAverage2);
                        }

                        if (volaSeriesPut.size() > 30) {
                            double ave5 = FinancialLibrary.SMA(30, volaSeriesPut.getCloses(), 0);
                            Tuple<TimeStamp, Double> tuple = new Tuple<TimeStamp, Double>(
                                    volaCandle.getTimeStamp(), ave5);
                            volaSeriesPutAverage3.add(0, tuple);
                            if (volaSeriesPutAverage3.size() > 201)
                                volaSeriesPutAverage3 = volaSeriesPutAverage3.subList(0, 200);
                            chart.addLineSeriesChart("Vola Ave 5", volaSeriesPutAverage3);
                        }

                    }
                }
            }
        }
    }

    return orders.toArray(new Order[] {});
}