На формах подписки на сигналы и добавления робота
к инпуту для ввода торгового объема в asset (BTC) добавляем еще один инпут для ввода торгового объема в currency ($).
два этих инпута взаимосвязаны и значение во втором инпуте пересчитываются по текущей средней цене
- при вводе числа в инпут asset (например BTC) пересчитывается значение в currency ($)
currency_value = asset_value * price
- при ввода числа в инпут currency ($) пересчитывается значение в asset (например BTC)
asset_value = currency_value / price
текущая цена получается следующим запросом при открытии формы
query last_daily_candle($exchange: String!, $asset: String!) {
candles1440(
where: { exchange: { _eq: $exchange }, asset: { _eq: $asset } }
limit: 1
order_by: { time: desc }
) {
high
low
}
}
и рассчитывается среднее значение price = (high+low)/2
форма выглядит следующим образом
Please enter desired trading volume
Minimum value is 0.002 BTC ≈ 14,2 $
| инпут asset_value | BTC
≈
| инпут currency_value | $
валидация остается по полю asset_value и передаем именно это значение как и раньше
currency_value в $ просто для упрощения ввода