femtotrader / DukascopyTicksReader.jl

A Julia library to download tick data from Dukascopy https://www.dukascopy.com/swiss/english/marketwatch/historical/
Other
5 stars 4 forks source link
data data-analysis dataset dukascopy html julia stock-data

DukascopyTicksReader

Build Status Build status

Installation

julia> Pkg.clone("https://github.com/femtotrader/DukascopyTicksReader.jl")

Usage


julia> using DukascopyTicksReader: get, DukascopyTicks, to_dataframe, to_timearray

julia> source = DukascopyTicks()
DukascopyTicksReader.DukascopyTicks(DukascopyTicksReader.CacheDirectory(""))

julia> reader = get(DukascopyTicks(), "EURUSD", DateTime(2016, 3, 28, 0, 40))
get EURUSD for 2016-03-28T00:40:00 from fname=~/data/dukascopy/ticks/2016/2016-03/2016-03-28/2016-03-28_000000/EURUSD.bi5
DukascopyTicksReader.TickReader("~/data/dukascopy/ticks/2016/2016-03/2016-03-28/2016-03-28_000000/EURUSD.bi5",LibArchive.Reader{LibArchive.ReadFileName{UTF8String}}(LibArchive.ReadFileName{UTF8String}("~/data/dukascopy/ticks/2016/2016-03/2016-03-28/2016-03-28_000000/EURUSD.bi5",10240),Ptr{Void} @0x00007fbcfbcf7800,true),DukascopyTicksReader.TickIter{Base.AbstractIOBuffer{Array{UInt8,1}}}(IOBuffer(data=UInt8[...], readable=true, writable=false, seekable=true, append=false, size=53000, maxsize=Inf, ptr=1, mark=-1),(anonymous function),2016-03-28T00:00:00,0x0000000000000005))

julia> to_dataframe(reader)
2650×5 DataFrames.DataFrame
│ Row  │ Date                    │ Ask     │ Bid     │ AskVolume │ BidVolume │
├──────┼─────────────────────────┼─────────┼─────────┼───────────┼───────────┤
│ 1    │ 2016-03-28T00:00:00.335 │ 1.13267 │ 1.13264 │ 1.0       │ 1.47      │
│ 2    │ 2016-03-28T00:00:00.765 │ 1.13269 │ 1.13266 │ 1.0       │ 2.25      │
│ 3    │ 2016-03-28T00:00:01.119 │ 1.13268 │ 1.13264 │ 1.0       │ 1.91      │
│ 4    │ 2016-03-28T00:00:02.739 │ 1.13267 │ 1.13262 │ 1.0       │ 2.85      │
│ 5    │ 2016-03-28T00:00:03.283 │ 1.13266 │ 1.13262 │ 1.0       │ 1.35      │
│ 6    │ 2016-03-28T00:00:03.801 │ 1.13265 │ 1.13262 │ 1.0       │ 1.29      │
│ 7    │ 2016-03-28T00:00:04.311 │ 1.13266 │ 1.13262 │ 1.0       │ 1.35      │
│ 8    │ 2016-03-28T00:00:05.256 │ 1.13265 │ 1.13261 │ 1.0       │ 1.35      │
│ 9    │ 2016-03-28T00:00:06.424 │ 1.13265 │ 1.1326  │ 1.0       │ 3.79      │
⋮
│ 2641 │ 2016-03-28T00:59:48.517 │ 1.13107 │ 1.13104 │ 1.0       │ 4.06      │
│ 2642 │ 2016-03-28T00:59:48.821 │ 1.13106 │ 1.13104 │ 1.0       │ 3.5       │
│ 2643 │ 2016-03-28T00:59:50.057 │ 1.13106 │ 1.13103 │ 1.0       │ 6.19      │
│ 2644 │ 2016-03-28T00:59:50.413 │ 1.13106 │ 1.13103 │ 1.0       │ 1.5       │
│ 2645 │ 2016-03-28T00:59:51.434 │ 1.13106 │ 1.13103 │ 1.0       │ 3.19      │
│ 2646 │ 2016-03-28T00:59:51.94  │ 1.13106 │ 1.13103 │ 1.0       │ 2.25      │
│ 2647 │ 2016-03-28T00:59:54.999 │ 1.13106 │ 1.13102 │ 1.0       │ 4.2       │
│ 2648 │ 2016-03-28T00:59:55.438 │ 1.13104 │ 1.13102 │ 1.0       │ 4.39      │
│ 2649 │ 2016-03-28T00:59:56.25  │ 1.13105 │ 1.13102 │ 1.0       │ 1.95      │
│ 2650 │ 2016-03-28T00:59:59.944 │ 1.13104 │ 1.13102 │ 1.0       │ 1.5       │

julia> to_timearray(reader)
2650x4 TimeSeries.TimeArray{Float64,2,DateTime,Array{Float64,2}} 2016-03-28T00:00:00.335 to 2016-03-28T00:59:59.944

                          Ask     Bid     AskVolume  BidVolume
2016-03-28T00:00:00.335 | 1.1327  1.1326  1.0        1.47
2016-03-28T00:00:00.765 | 1.1327  1.1327  1.0        2.25
2016-03-28T00:00:01.119 | 1.1327  1.1326  1.0        1.91
2016-03-28T00:00:02.739 | 1.1327  1.1326  1.0        2.85
⋮
2016-03-28T00:59:54.999 | 1.1311  1.131   1.0        4.2
2016-03-28T00:59:55.438 | 1.131   1.131   1.0        4.39
2016-03-28T00:59:56.25 | 1.1311  1.131   1.0        1.95
2016-03-28T00:59:59.944 | 1.131   1.131   1.0        1.5
``