【发布时间】:2015-07-08 23:01:50
【问题描述】:
我对如何实现福特收盘价的导入有点困惑。目前,我正在使用扫描仪,虽然有下一行,但它应该继续向下循环。导入该行后,我需要将其转换为双精度。我的问题是如何将整个文件导入字符串数组,然后将其转换为双精度,然后使用 for 循环循环遍历双精度数组,以通过给定的方程计算 MACD。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ImportCSV
{
public static void main(String[] args)
{
//to import .csv file
String fileName = "Ford.csv";
File file = new File(fileName);
try
{
Scanner inputStream = new Scanner(file);
//ignore the first line
inputStream.next();
while (inputStream.hasNext())
{
//get the whole line
String data = inputStream.next();
//split the string into an array of strings
String [] values = data.split(",");
//convert to double
double closingPrice = Double.parseDouble(values[4]);
// System.out.println(closingPrice);
final double EMA_12_AlPHA = 2.0 / (1 + 12);
final double EMA_26_AlPHA = 2.0 / (1 + 26);
double ema12 = 0;
double ema26 = 0;
double macd = 0;
ema12 = EMA_12_AlPHA * closingPrice + (1 - EMA_12_AlPHA) * ema12;
ema26 = EMA_26_AlPHA * closingPrice + (1 - EMA_26_AlPHA) * ema26;
macd = ema12 - ema26;
System.out.println(macd);
}
inputStream.close();
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
} }
【问题讨论】: