trades.jl
1 @doc "Buy or Sell" 2 @enum TradeSide buy sell 3 @doc "Taker Or Maker" 4 @enum TradeRole taker maker 5 6 const FeesType = Union{Nothing,DFT,<:NamedTuple{(:cost, :currency), <:Tuple{<:Option{DFT},<:Option{DFT}}}} 7 @doc """A named tuple representing a trade in the CCXT (CryptoCurrency eXchange Trading) library. 8 9 $(FIELDS) 10 11 """ 12 const CcxtTrade = @NamedTuple begin 13 timestamp::DateTime 14 symbol::String 15 order::Option{String} 16 type::Option{String} 17 side::TradeSide 18 takerOrMaker::Option{TradeRole} 19 price::DFT 20 amount::DFT 21 cost::DFT 22 fee::FeesType 23 fees::Vector{FeesType} 24 end 25 26 TradeSide(v) = getproperty(@__MODULE__, Symbol(v)) 27 TradeRole(v) = getproperty(@__MODULE__, Symbol(v)) 28 Base.convert(::Type{TradeSide}, v) = TradeSide(v) 29 Base.convert(::Type{TradeRole}, v) = TradeRole(v) 30 31 export CcxtTrade, TradeSide, TradeRole, FeesType