2014-01-05 3 views
1

나는 quantmod를 사용하여 매일 촛불 막대를 생성 할,하지만 내가 가진 것은 내가 그것을 분석하고 매일 촛불 줄을 생성하는 방법을 알고 싶어틱 데이터를 퀀텀 (quantmod)으로 구문 분석하는 방법은 무엇입니까?

 
Symbol,Time,Bid,Ask 
GBP/JPY,2013-12-29 17:01:06.000,173.319,173.544 
GBP/JPY,2013-12-29 17:01:07.000,173.319,173.459 
GBP/JPY,2013-12-29 17:01:08.000,173.319,173.459 
GBP/JPY,2013-12-29 17:01:08.000,173.319,173.544 

처럼 눈금의 데이터를 GBPJPY.csv입니다.

답변

0

첫 번째 단계는 틱을 xts 객체에로드하는 것입니다. 두 번째 단계는 해당 xts 객체에서 막대를 만드는 것입니다.

귀하의 csv 파일에는 GBP/JPY 데이터 만 포함되어 있다고 가정합니다 (예 : 첫 번째 열은 중복 됨). 그렇지 않으면 첫 번째 열을 사용하기 위해 더 많은 작업을 수행하면됩니다. (또는 기호 당 하나의 파일을 제공하기 위해 유닉스 도구를 사용하여 데이터를 사전 처리하십시오.)

입찰가와 물음표를 모두 표시할지, 아니면 하나 또는 중간을 원하는지에 대해서도 말하지 않았습니다. 아래 코드는 더 간단하기 때문에 입찰가를 가정합니다. 우리는 하나 개의 컬럼을 가지고 있기 때문에

d=try(read.table(source_fname,sep=',',header=T,stringsAsFactors=F),silent=T) 
if(inherits(d,"try-error")){ 
    print(d);quit() #Or some kind of error-handling 
    } 
timestamps = as.POSIXct(d$Time) 
bids = xts(d$Bid,timestamps) 

은 매일 막대를 만드는 것은 쉽다 :

to.daily(bids) 

이 제공 :

  bids.Open bids.High bids.Low bids.Close 
2013-12-29 173.319 173.319 173.319 173.319 

당신이 (예를 들면가 OHLC을 더 복잡한 일을해야하는 경우 이 대답은 period.apply()을 사용하여 모든 진드기 크기 블록에 사용자 지정 함수를 적용하는 방법을 보여줍니다. https://stackoverflow.com/a/19896834/841830 (이 질문은를 사용하는 방법을 보여줍니다. 진드기를 읽으려면; 이것은 read.table() 함수를 감싸는 래퍼입니다.