2016-10-16 7 views
0

수정하려고하는 코드 (아래)가 있습니다. 목표는 7 일 연속으로 긍정적 인 날이 있었는지 확인하는 것입니다 (닫힌 것이 열린 것보다 높음). 그런 다음 8 일에 이진 값을 설정합니다 (참인 경우 1, 참인 경우 0).코딩 새로운 거래 표시기

seven.bar.buy = function(open,close,n){ 
    seven.bar.buy = rep(0, length(open)) 
    for(i in (n+2):length(open)){ 
    for(j in (i-n-1):(i-1)){ 
    if(open[(i-n-1):(i-1)]<close[(i-n-1):(i-1)]){ 
    seven.bar.buy[i] == 1 
} 

} 
} 
    return(seven.bar.buy) 
} 

seven.bar.buy(open = Op(EURUSD.st1), close = Cl(EURUSD.st1), n = 7) 

위의 코드는 오류없이 실행되지만 출력은 0의 벡터입니다.

오류가 7 행을 비교하려고하는 5 행에서 오는 것으로 생각하고 단일 if 문에서 열고 true/false에 대한 이진 값을 할당합니다.

나는 EUR/USD에 대해 가지고있는 샘플 OHLC 데이터에 7 연속 일이 존재한다는 것을 알고 있으므로 0의 벡터가되어서는 안된다.

이 방법이 있습니까? 이것은 유일한 오류입니까?

답변

0

코드에 몇 가지 사항을 변경했습니다. 내 솔루션을 테스트하십시오.

seven.bar.buy = function(open,close,n){ 
    seven.bar.buy = rep(0, length(open)) 
    for(i in (n+2):length(open)){ 
     if(open[(i-n):i]<close[(i-n):i]){ 
      seven.bar.buy[i] = 1 
     } 
    } 
    return(seven.bar.buy) 
}