Matlab 如何从文件中计算特定的蜡烛?
我对Matlab编程语言一无所知。我已经编写了一个程序,从YahooFinance获取数据,并绘制了一个烛台图,接下来我想计算文件中包含的特定烛台的总数。然而,我尝试引用非结构数组的字段时出错。我的目标是数一数任何两支蜡烛,看起来像这样::我不能在这里发布图片,因为我需要10次重复,所以我已经上传到我的dropebox上 到目前为止,我已经完成了以下工作:Matlab 如何从文件中计算特定的蜡烛?,matlab,Matlab,我对Matlab编程语言一无所知。我已经编写了一个程序,从YahooFinance获取数据,并绘制了一个烛台图,接下来我想计算文件中包含的特定烛台的总数。然而,我尝试引用非结构数组的字段时出错。我的目标是数一数任何两支蜡烛,看起来像这样::我不能在这里发布图片,因为我需要10次重复,所以我已经上传到我的dropebox上 到目前为止,我已经完成了以下工作: clear; close all; str = urlread('http://ichart.yahoo.com/table.csv?s=A
clear;
close all;
str = urlread('http://ichart.yahoo.com/table.csv?s=AMZN&a=0&b=1&c=2008&d=0&e=31&n=2014&g=d&ignore=.csv');
i = 0;
[dates,o,h,l,c] = dataread('string',str,'%s%f%f%f%f%*f%*f','delimiter',',','headerlines',1);
dates = datenum(dates);
previousDate = dates-1; %start from previous date
curDate = previousDate+1;
if (previousDate (previousDate.o < curDate.o) && (previousDate.c > curDate.c) )
i = i+1;
end
save('output.txt','i','-ASCII');
从这里,我想要的是程序读取该文件中的所有数据,并计算出有这些数据的记录数:
检查上一日期,如果上一日期的开盘价小于下一日期的开盘价,且上一日期的收盘数据大于下一日期,则将其记录到文件中。现在让我们来看看这一点:这是我的.csv文件中的历史数据,c/p这是用来获取这些数据的http://ichart.yahoo.com/table.csv?s=AMZN&a=0&b=1&c=2008&d=0&e=31&n=2014&g=d&ignore=.csv:
首先,我告诉我的程序使用前两行:
Date,Open,High,Low,Close,Volume,Adj Close
2014-07-18,354.40,359.68,352.08,358.66,3407400,358.66 <-- 1st line - this is a second date
2014-07-17,353.44,356.96,351.38,352.45,3636000,352.45 <-- 2nd line - this is previous date
让我知道这是否仍然令人困惑 你打算对上一个日期做什么?previousDate是一个矩阵,而不是一个struct@LuisMendo我尝试使用前一个日期,并说如果开盘价和收盘价与当前日期的意思是什么,如果程序检测到上图中显示的任何两个烛台,那么+1到I。我的目标是从文件中计算图片中显示的蜡烛总数您的代码可能会简化,但您应该解释什么是日期、o、l、c以及您期望的结果;最好是用一个小的example@LuisMendoohhkk-如果您复制并通过ore=.csv如果你在顶部阅读,你会得到谷歌的历史数据,上面有一个标题,例如日期、开放、高、低等。。我已经更新了我的问题,现在应该更清楚了
Date,Open,High,Low,Close,Volume,Adj Close
2014-07-18,354.40,359.68,352.08,358.66,3407400,358.66
2014-07-17,353.44,356.96,351.38,352.45,3636000,352.45
2014-07-16,355.62,359.32,353.00,355.90,3503600,355.90
Date,Open,High,Low,Close,Volume,Adj Close
2014-07-18,354.40,359.68,352.08,358.66,3407400,358.66 <-- 1st line - this is a second date
2014-07-17,353.44,356.96,351.38,352.45,3636000,352.45 <-- 2nd line - this is previous date
2014-07-17,353.44,356.96,351.38,352.45,3636000,352.45
2014-07-16,355.62,359.32,353.00,355.90,3503600,355.90