Trading
Binance portfolio
Pex.BinanceTrade.coins_list()
Trades not saved
Pex.BinanceTrade.coins_list_without_trade()
Trade saved
Pex.Data.list_trades()
|> Enum.filter(&(&1.stop_loss != nil))
|> Enum.map(fn order ->
{:ok, %{price: price}} = Pex.BinanceAPI.get_price(order.symbol)
current_price = String.to_float(price)
percent = Pex.Stat.percent_order(order, current_price)
%{
id: order.id,
coin: order.symbol,
sl: order.stop_loss,
tp: order.take_profit,
# price: current_price,
percent: Float.ceil(percent, 2),
bought: order.price
}
end)
|> Enum.sort(&(&1.coin > &2.coin))
Old binance order
symbol = IO.gets("symbol") |> String.trim("\n")
{limit, _a} = IO.gets("limit") |> Integer.parse()
{:ok, data} = Binance.account_trade_list(symbol, limit)
data
|> Enum.map(
&%{
quantity: &1.qty,
price: &1.price,
id: &1.id
}
)
Cancel binance order
order_id = IO.gets("order_id") |> String.trim("\n")
Binance.cancel_order(symbol, 5000, order_id)
Delete trade
{id, _} = IO.gets("order_id") |> Integer.parse()
Pex.Data.delete_trade(id)
Risk management
{distance, _} = IO.gets("distance") |> Float.parse()
pair = IO.gets("pair") |> String.trim("\n")
{:ok, risk} = Pex.BinanceTrade.init_risk_management(pair, distance)
"#{risk.quantity} #{pair} pour un total de #{risk.cost} $ avec un stop loss à #{risk.stop_loss} (prix: #{risk.pair_price})"
Buy Trade
{tp, _} = IO.gets("tp") |> Float.parse()
{distance, _} = IO.gets("distance") |> Float.parse()
pair = IO.gets("pair") |> String.trim("\n")
[coin_1, coin_2] = String.split(pair, "/")
Pex.BinanceTrade.trade_buy(coin_1, coin_2, tp, distance)