거래량에 대한 기술적 지표를 만들기 위해 거래량에 대한 250일간의 리스트를 만든 뒤 거기에 사용된 변수를 기술적 지표로 활용하는 방법을 생각해봤습니다.
그런데 당연히 초보자답게... 안되네요. 아래같은 에러코드가 뜨면서 안되는데 뭐가 문젠지 알 수 있을까요?
[abnormal terminated]TypeError: Cannot read property "getRSI" from undefined in <eval> at line number 241''
              
            
네 에러가 나는 이유는... 말씀드렸던 것처럼 기본제공하는 기술적 지표 함수들은 종목이나 지수의 종가데이터를 받도록 정해져 있기 때문에 RSI 블록 안에 끼울 수 있는 블록은 종목코드를 지정한 stock이나 지수 블록이어야 합니다. (또는 함수에서라면 일반적인 stock 객체 블록) 단순히 배열로 데이터를 만들어서 넣어 주기만 한다고 해서 동작하지는 않습니다. (블록에 대한 자세한 가이드가 빨리 나올 수 있도록 준비하겠습니다. ㅜㅜ) 블록으로 기술적 지표 함수를 만드려면 RSI를 계산해 주는 함수 자체를 만들어야 합니다. 예를 들어, 자바스크립트로는 아래와 같이 거래량 RSI 함수를 만들 수 있을 것 같습니다. (정확한지 여부는 확인이 필요합니다. 대략 생각나는대로 코딩해 보았습니다. ^^) function Volume_RSI(stock, period) { var up = 0; var down = 0; var up_count = 0; var down_count = 0; for (var i = 0; i < period - 1; i++) { var diff = stock.getTradingVolume(i) - stock.getTradingVolume(i+1); if (diff > 0) { up += diff; up_count++; } else if (diff < 0) { down += (-diff); down_count++; } } var au = up / up_count; var ad = down / down_count; var rsi = au / (au + ad); return rsi; } 자바스크립트가 익숙하지 않더라도, 해당하는 키워드에 맞는 블록을 찾아 구성을 해 보시면, 블록으로도 이 함수를 만드실 수 있을 것입니다.