スキップしてメイン コンテンツに移動

投稿

3月, 2014の投稿を表示しています

[Haskell]Database.HDBC.Sqlite3でSQLite3のデータを読む。

関数型言語のHaskellというものに手を出してみました。 今回は、システムトレードで使っているSQLite3からHaskellで時系列データ(日足)を読んでみます。 備忘録として、コードを上げておきます。 import Database.HDBC import Database.HDBC.Sqlite3 main = do conn <- connectSqlite3 "investment.dbf" closes <- getHistoricalPrices conn "2712" "CLOSE" print [zenjitsuhi |(x,y) <- (zip (init closes) (tail closes)),let zenjitsuhi = ((x-y)/y)*100] hist <- getHistoricals conn "8411" print hist disconnect conn return () getHistoricals :: IConnection c => c -> String -> IO [(String, String, String, Double, Double, Double, Double, Double)] getHistoricals conn code = do stmt <- prepare conn "SELECT S.DATE,S.CODE,S.MARKET,S.OPEN,S.HIGH,S.LOW,S.CLOSE,S.VOLUME FROM STOCK_DAILY S,MARKET_LISTINGS L WHERE L.CODE=? AND L.MAIN_MARKET='true' AND L.CODE=S.CODE ORDER BY S.DATE DESC" execute stmt [(toSql code)] rows <- fetchAllRows s