編集: みなさん、こんにちは。Quandl からすべてのゴールド個人契約をダウンロードしたいと思います。契約は 1975 年から 2016 年までのもので、月コードは G (2 月) J (4 月) M (6 月) Q (8 月) V (10 月) Z (12 月) です。リンクの下部には、すべてのCME 金先物が表示されます。したがって、個々の契約をクリックすると、最も古い契約は 1975 年 2 月であり、R でダウンロードする構文は次のようになります。
require(Quandl)
Quandl("CME/GCG1975")
一般的な構文:
Quandl(":database_code/:dataset_code", type = ":return_format")
"database_code" : CME (Chicago Mercantile Exchange)
"dataset_code" : INSTRUMENT:MONTH:YEAR (example: GC:G:1975 without colon)
パラメーター:
The parameter order can take the following values:
"asc" : return data in ascending order
"desc" : return data in descending order
The parameter type can take the following values:
"raw" : returns a data frame
"zoo" : returns a zoo object
"ts" : returns a time-series object
"xts" : returns an extensible time-series object
"timeSeries" : returns a financial time-series object
When type is omitted, a data frame is returned.
ここで、1975 年 2 月と 4 月の最後の 2 つの契約について、やりたいことを実行します。
require(Quandl)
pre_contract <- Quandl("CME/GCG1975",order = "asc", type="raw") #download previous or February 1975 and post contract starting from February 1975, then April 1975, June 1975...
post_contract <- Quandl("CME/GCJ1975",order = "asc", type="raw") #download post contract or April 1975
pre_contract$Last = pre_contract$Change = NULL #delete column Last and Change
post_contract$Last = post_contract$Change = NULL #delete column Last and Change
colnames(pre_contract) # output: [1] "Date" [2] "Open" [3] "High" [4] "Low" [5] "Settle" [6] "Volume" [7] "Prev. Day Open Interest"
row_pre = nrow(pre_contract)-5 # this is the 6th last row
pre_contract[row_pre,"Date"] #output: "1975-02-18" this is the 6th last date, col 33 from the total columns 38, not necessary
row_post = which(post_contract$Date == pre_contract[nrow(pre_contract)-5,"Date"]) #output:33 says which row in post_contract is "Date" 1975-02-18
post_contract[row_post,"Date"] #output:"1975-02-18" my visual confirmation, not necessary
row_pre <- row_pre - 1 # I don't want to add 2 times the same date (1975-02-18), and I want the row of the April 1975
contract_union <- rbind(pre_contract[1:row_pre,],post_contract[row_post:nrow(post_contract),]) #I paste both contracts in same data.frame, the division-date is 1975-02-18 where I use the row of the April 1975
次のステップは、1975 年 4 月を pre_contract として、1975 年 6 月を post_contract として、実際の契約である 2016 年 12 月まで同じことを行い、最終的contract_union
にすべての契約を昇順で並べることです。このプロジェクトでは、どの楽器/コマンドを使用すればよいかわかりません。の構文でQuandl
CME/GC
は固定して置くことができmonthcode
、year
制限付きの変数として、月コードの制限は月の文字でありG J M Q V Z
、年の制限は1975:2016
.
require(xlsx)
write.xlsx(contract_union,"/gold-data.xlsx")
最終的な解決策は必要ありません。助けていただければ/どの部分でも私を指導していただければ問題ありません。私はどんな提案や質問にもオープンです。そして、私はこのプロジェクトに役立つことなら何でも学びたいと思っています。
ありがとう、RTA