Current section

Files

Jump to
ex_oanda lib models definitions position position_side.ex
Raw

lib/models/definitions/position/position_side.ex

defmodule ExOanda.PositionSide do
@moduledoc """
Schema for Oanda position side.
[Oanda Docs](https://developer.oanda.com/rest-live-v20/position-df/)
"""
use TypedEctoSchema
import Ecto.Changeset
@primary_key false
typed_embedded_schema do
field(:units, :integer)
field(:average_price, :float)
field(:trade_ids, {:array, :string}, default: [])
field(:pl, :float)
field(:unrealized_pl, :float)
field(:resettable_pl, :float)
field(:financing, :float)
field(:commission, :float)
field(:dividend_adjustment, :float)
field(:guaranteed_execution_fees, :float)
end
@doc false
def changeset(struct, params) do
struct
|> cast(params, [
:units, :average_price, :trade_ids, :pl, :unrealized_pl, :resettable_pl,
:financing, :commission, :dividend_adjustment, :guaranteed_execution_fees
])
|> validate_required([:units, :trade_ids, :pl, :resettable_pl, :financing])
end
end