Package org.encog.app.quant.ninja

Source Code of org.encog.app.quant.ninja.NinjaFileConvert

/*
* Encog(tm) Core v3.0 - Java Version
* http://www.heatonresearch.com/encog/
* http://code.google.com/p/encog-java/
* Copyright 2008-2011 Heaton Research, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*  
* For more information on Heaton Research copyrights, licenses
* and trademarks visit:
* http://www.heatonresearch.com/copyright
*/
package org.encog.app.quant.ninja;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;

import org.encog.app.analyst.csv.basic.BasicCachedFile;
import org.encog.app.analyst.csv.basic.FileData;
import org.encog.app.quant.QuantError;
import org.encog.util.csv.ReadCSV;

/**
* A simple class to convert financial data files into the format used
* by NinjaTrader for input.
*/
public class NinjaFileConvert extends BasicCachedFile {
 
  /**
   * Process the file and output to the target file.
   * @param target The target file to write to.
   */
  public final void process(final File target) {
    try {
      ReadCSV csv = new ReadCSV(this.getInputFilename().toString(),
          this.isExpectInputHeaders(), this.getInputFormat());

      PrintWriter tw = new PrintWriter(new FileWriter(target));

      resetStatus();
      while (csv.next() && !this.shouldStop()) {
        StringBuilder line = new StringBuilder();
        updateStatus(false);
        line.append(this.getColumnData(FileData.DATE, csv));
        line.append(" ");
        line.append(this.getColumnData(FileData.TIME, csv));
        line.append(";");
        line.append(getInputFormat().format(
            Double.parseDouble(this.getColumnData(FileData.OPEN,
                csv)), this.getPrecision()));
        line.append(";");
        line.append(getInputFormat().format(
            Double.parseDouble(this.getColumnData(FileData.HIGH,
                csv)), this.getPrecision()));
        line.append(";");
        line.append(getInputFormat().format(
            Double.parseDouble(this
                .getColumnData(FileData.LOW, csv)),
            this.getPrecision()));
        line.append(";");
        line.append(getInputFormat().format(
            Double.parseDouble(this.getColumnData(FileData.CLOSE,
                csv)), this.getPrecision()));
        line.append(";");
        line.append(getInputFormat().format(
            Double.parseDouble(this.getColumnData(FileData.VOLUME,
                csv)), this.getPrecision()));

        tw.println(line.toString());
      }
      reportDone(false);
      csv.close();
      tw.close();
    } catch (IOException ex) {
      throw new QuantError(ex);
    }
  }
}
TOP

Related Classes of org.encog.app.quant.ninja.NinjaFileConvert

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.