mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-11-29 08:33:07 +00:00
Update most of Api schema to pydantic 2.0
This commit is contained in:
@@ -9,9 +9,9 @@ from freqtrade.types import ValidExchangesType
|
|||||||
|
|
||||||
|
|
||||||
class ExchangeModePayloadMixin(BaseModel):
|
class ExchangeModePayloadMixin(BaseModel):
|
||||||
trading_mode: Optional[TradingMode]
|
trading_mode: Optional[TradingMode] = None
|
||||||
margin_mode: Optional[MarginMode]
|
margin_mode: Optional[MarginMode] = None
|
||||||
exchange: Optional[str]
|
exchange: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
class Ping(BaseModel):
|
class Ping(BaseModel):
|
||||||
@@ -43,11 +43,11 @@ class BackgroundTaskStatus(BaseModel):
|
|||||||
job_category: str
|
job_category: str
|
||||||
status: str
|
status: str
|
||||||
running: bool
|
running: bool
|
||||||
progress: Optional[float]
|
progress: Optional[float] = None
|
||||||
|
|
||||||
|
|
||||||
class BackgroundTaskResult(BaseModel):
|
class BackgroundTaskResult(BaseModel):
|
||||||
error: Optional[str]
|
error: Optional[str] = None
|
||||||
status: str
|
status: str
|
||||||
|
|
||||||
|
|
||||||
@@ -60,9 +60,9 @@ class Balance(BaseModel):
|
|||||||
free: float
|
free: float
|
||||||
balance: float
|
balance: float
|
||||||
used: float
|
used: float
|
||||||
bot_owned: Optional[float]
|
bot_owned: Optional[float] = None
|
||||||
est_stake: float
|
est_stake: float
|
||||||
est_stake_bot: Optional[float]
|
est_stake_bot: Optional[float] = None
|
||||||
stake: str
|
stake: str
|
||||||
# Starting with 2.x
|
# Starting with 2.x
|
||||||
side: str
|
side: str
|
||||||
@@ -141,7 +141,7 @@ class Profit(BaseModel):
|
|||||||
expectancy_ratio: float
|
expectancy_ratio: float
|
||||||
max_drawdown: float
|
max_drawdown: float
|
||||||
max_drawdown_abs: float
|
max_drawdown_abs: float
|
||||||
trading_volume: Optional[float]
|
trading_volume: Optional[float] = None
|
||||||
bot_start_timestamp: int
|
bot_start_timestamp: int
|
||||||
bot_start_date: str
|
bot_start_date: str
|
||||||
|
|
||||||
@@ -173,50 +173,50 @@ class Daily(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class UnfilledTimeout(BaseModel):
|
class UnfilledTimeout(BaseModel):
|
||||||
entry: Optional[int]
|
entry: Optional[int] = None
|
||||||
exit: Optional[int]
|
exit: Optional[int] = None
|
||||||
unit: Optional[str]
|
unit: Optional[str] = None
|
||||||
exit_timeout_count: Optional[int]
|
exit_timeout_count: Optional[int] = None
|
||||||
|
|
||||||
|
|
||||||
class OrderTypes(BaseModel):
|
class OrderTypes(BaseModel):
|
||||||
entry: OrderTypeValues
|
entry: OrderTypeValues
|
||||||
exit: OrderTypeValues
|
exit: OrderTypeValues
|
||||||
emergency_exit: Optional[OrderTypeValues]
|
emergency_exit: Optional[OrderTypeValues] = None
|
||||||
force_exit: Optional[OrderTypeValues]
|
force_exit: Optional[OrderTypeValues] = None
|
||||||
force_entry: Optional[OrderTypeValues]
|
force_entry: Optional[OrderTypeValues] = None
|
||||||
stoploss: OrderTypeValues
|
stoploss: OrderTypeValues
|
||||||
stoploss_on_exchange: bool
|
stoploss_on_exchange: bool
|
||||||
stoploss_on_exchange_interval: Optional[int]
|
stoploss_on_exchange_interval: Optional[int] = None
|
||||||
|
|
||||||
|
|
||||||
class ShowConfig(BaseModel):
|
class ShowConfig(BaseModel):
|
||||||
version: str
|
version: str
|
||||||
strategy_version: Optional[str]
|
strategy_version: Optional[str] = None
|
||||||
api_version: float
|
api_version: float
|
||||||
dry_run: bool
|
dry_run: bool
|
||||||
trading_mode: str
|
trading_mode: str
|
||||||
short_allowed: bool
|
short_allowed: bool
|
||||||
stake_currency: str
|
stake_currency: str
|
||||||
stake_amount: str
|
stake_amount: str
|
||||||
available_capital: Optional[float]
|
available_capital: Optional[float] = None
|
||||||
stake_currency_decimals: int
|
stake_currency_decimals: int
|
||||||
max_open_trades: IntOrInf
|
max_open_trades: IntOrInf
|
||||||
minimal_roi: Dict[str, Any]
|
minimal_roi: Dict[str, Any]
|
||||||
stoploss: Optional[float]
|
stoploss: Optional[float] = None
|
||||||
stoploss_on_exchange: bool
|
stoploss_on_exchange: bool
|
||||||
trailing_stop: Optional[bool]
|
trailing_stop: Optional[bool] = None
|
||||||
trailing_stop_positive: Optional[float]
|
trailing_stop_positive: Optional[float] = None
|
||||||
trailing_stop_positive_offset: Optional[float]
|
trailing_stop_positive_offset: Optional[float] = None
|
||||||
trailing_only_offset_is_reached: Optional[bool]
|
trailing_only_offset_is_reached: Optional[bool] = None
|
||||||
unfilledtimeout: Optional[UnfilledTimeout] # Empty in webserver mode
|
unfilledtimeout: Optional[UnfilledTimeout] = None # Empty in webserver mode
|
||||||
order_types: Optional[OrderTypes]
|
order_types: Optional[OrderTypes] = None
|
||||||
use_custom_stoploss: Optional[bool]
|
use_custom_stoploss: Optional[bool] = None
|
||||||
timeframe: Optional[str]
|
timeframe: Optional[str] = None
|
||||||
timeframe_ms: int
|
timeframe_ms: int
|
||||||
timeframe_min: int
|
timeframe_min: int
|
||||||
exchange: str
|
exchange: str
|
||||||
strategy: Optional[str]
|
strategy: Optional[str] = None
|
||||||
force_entry_enable: bool
|
force_entry_enable: bool
|
||||||
exit_pricing: Dict[str, Any]
|
exit_pricing: Dict[str, Any]
|
||||||
entry_pricing: Dict[str, Any]
|
entry_pricing: Dict[str, Any]
|
||||||
@@ -231,17 +231,17 @@ class OrderSchema(BaseModel):
|
|||||||
pair: str
|
pair: str
|
||||||
order_id: str
|
order_id: str
|
||||||
status: str
|
status: str
|
||||||
remaining: Optional[float]
|
remaining: Optional[float] = None
|
||||||
amount: float
|
amount: float
|
||||||
safe_price: float
|
safe_price: float
|
||||||
cost: float
|
cost: float
|
||||||
filled: Optional[float]
|
filled: Optional[float] = None
|
||||||
ft_order_side: str
|
ft_order_side: str
|
||||||
order_type: str
|
order_type: str
|
||||||
is_open: bool
|
is_open: bool
|
||||||
order_timestamp: Optional[int]
|
order_timestamp: Optional[int] = None
|
||||||
order_filled_timestamp: Optional[int]
|
order_filled_timestamp: Optional[int] = None
|
||||||
ft_fee_base: Optional[float]
|
ft_fee_base: Optional[float] = None
|
||||||
|
|
||||||
|
|
||||||
class TradeSchema(BaseModel):
|
class TradeSchema(BaseModel):
|
||||||
@@ -255,81 +255,81 @@ class TradeSchema(BaseModel):
|
|||||||
amount: float
|
amount: float
|
||||||
amount_requested: float
|
amount_requested: float
|
||||||
stake_amount: float
|
stake_amount: float
|
||||||
max_stake_amount: Optional[float]
|
max_stake_amount: Optional[float] = None
|
||||||
strategy: str
|
strategy: str
|
||||||
enter_tag: Optional[str]
|
enter_tag: Optional[str] = None
|
||||||
timeframe: int
|
timeframe: int
|
||||||
fee_open: Optional[float]
|
fee_open: Optional[float] = None
|
||||||
fee_open_cost: Optional[float]
|
fee_open_cost: Optional[float] = None
|
||||||
fee_open_currency: Optional[str]
|
fee_open_currency: Optional[str] = None
|
||||||
fee_close: Optional[float]
|
fee_close: Optional[float] = None
|
||||||
fee_close_cost: Optional[float]
|
fee_close_cost: Optional[float] = None
|
||||||
fee_close_currency: Optional[str]
|
fee_close_currency: Optional[str] = None
|
||||||
|
|
||||||
open_date: str
|
open_date: str
|
||||||
open_timestamp: int
|
open_timestamp: int
|
||||||
open_rate: float
|
open_rate: float
|
||||||
open_rate_requested: Optional[float]
|
open_rate_requested: Optional[float] = None
|
||||||
open_trade_value: float
|
open_trade_value: float
|
||||||
|
|
||||||
close_date: Optional[str]
|
close_date: Optional[str] = None
|
||||||
close_timestamp: Optional[int]
|
close_timestamp: Optional[int] = None
|
||||||
close_rate: Optional[float]
|
close_rate: Optional[float] = None
|
||||||
close_rate_requested: Optional[float]
|
close_rate_requested: Optional[float] = None
|
||||||
|
|
||||||
close_profit: Optional[float]
|
close_profit: Optional[float] = None
|
||||||
close_profit_pct: Optional[float]
|
close_profit_pct: Optional[float] = None
|
||||||
close_profit_abs: Optional[float]
|
close_profit_abs: Optional[float] = None
|
||||||
|
|
||||||
profit_ratio: Optional[float]
|
profit_ratio: Optional[float] = None
|
||||||
profit_pct: Optional[float]
|
profit_pct: Optional[float] = None
|
||||||
profit_abs: Optional[float]
|
profit_abs: Optional[float] = None
|
||||||
profit_fiat: Optional[float]
|
profit_fiat: Optional[float] = None
|
||||||
|
|
||||||
realized_profit: float
|
realized_profit: float
|
||||||
realized_profit_ratio: Optional[float]
|
realized_profit_ratio: Optional[float] = None
|
||||||
|
|
||||||
exit_reason: Optional[str]
|
exit_reason: Optional[str] = None
|
||||||
exit_order_status: Optional[str]
|
exit_order_status: Optional[str] = None
|
||||||
|
|
||||||
stop_loss_abs: Optional[float]
|
stop_loss_abs: Optional[float] = None
|
||||||
stop_loss_ratio: Optional[float]
|
stop_loss_ratio: Optional[float] = None
|
||||||
stop_loss_pct: Optional[float]
|
stop_loss_pct: Optional[float] = None
|
||||||
stoploss_order_id: Optional[str]
|
stoploss_order_id: Optional[str] = None
|
||||||
stoploss_last_update: Optional[str]
|
stoploss_last_update: Optional[str] = None
|
||||||
stoploss_last_update_timestamp: Optional[int]
|
stoploss_last_update_timestamp: Optional[int] = None
|
||||||
initial_stop_loss_abs: Optional[float]
|
initial_stop_loss_abs: Optional[float] = None
|
||||||
initial_stop_loss_ratio: Optional[float]
|
initial_stop_loss_ratio: Optional[float] = None
|
||||||
initial_stop_loss_pct: Optional[float]
|
initial_stop_loss_pct: Optional[float] = None
|
||||||
|
|
||||||
min_rate: Optional[float]
|
min_rate: Optional[float] = None
|
||||||
max_rate: Optional[float]
|
max_rate: Optional[float] = None
|
||||||
open_order_id: Optional[str]
|
open_order_id: Optional[str] = None
|
||||||
orders: List[OrderSchema]
|
orders: List[OrderSchema]
|
||||||
|
|
||||||
leverage: Optional[float]
|
leverage: Optional[float] = None
|
||||||
interest_rate: Optional[float]
|
interest_rate: Optional[float] = None
|
||||||
liquidation_price: Optional[float]
|
liquidation_price: Optional[float] = None
|
||||||
funding_fees: Optional[float]
|
funding_fees: Optional[float] = None
|
||||||
trading_mode: Optional[TradingMode]
|
trading_mode: Optional[TradingMode] = None
|
||||||
|
|
||||||
amount_precision: Optional[float]
|
amount_precision: Optional[float] = None
|
||||||
price_precision: Optional[float]
|
price_precision: Optional[float] = None
|
||||||
precision_mode: Optional[int]
|
precision_mode: Optional[int] = None
|
||||||
|
|
||||||
|
|
||||||
class OpenTradeSchema(TradeSchema):
|
class OpenTradeSchema(TradeSchema):
|
||||||
stoploss_current_dist: Optional[float]
|
stoploss_current_dist: Optional[float] = None
|
||||||
stoploss_current_dist_pct: Optional[float]
|
stoploss_current_dist_pct: Optional[float] = None
|
||||||
stoploss_current_dist_ratio: Optional[float]
|
stoploss_current_dist_ratio: Optional[float] = None
|
||||||
stoploss_entry_dist: Optional[float]
|
stoploss_entry_dist: Optional[float] = None
|
||||||
stoploss_entry_dist_ratio: Optional[float]
|
stoploss_entry_dist_ratio: Optional[float] = None
|
||||||
current_rate: float
|
current_rate: float
|
||||||
total_profit_abs: float
|
total_profit_abs: float
|
||||||
total_profit_fiat: Optional[float]
|
total_profit_fiat: Optional[float] = None
|
||||||
total_profit_ratio: Optional[float]
|
total_profit_ratio: Optional[float] = None
|
||||||
|
|
||||||
open_order: Optional[str]
|
open_order: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
class TradeResponse(BaseModel):
|
class TradeResponse(BaseModel):
|
||||||
@@ -352,7 +352,7 @@ class LockModel(BaseModel):
|
|||||||
lock_timestamp: int
|
lock_timestamp: int
|
||||||
pair: str
|
pair: str
|
||||||
side: str
|
side: str
|
||||||
reason: Optional[str]
|
reason: Optional[str] = None
|
||||||
|
|
||||||
|
|
||||||
class Locks(BaseModel):
|
class Locks(BaseModel):
|
||||||
@@ -361,8 +361,8 @@ class Locks(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class DeleteLockRequest(BaseModel):
|
class DeleteLockRequest(BaseModel):
|
||||||
pair: Optional[str]
|
pair: Optional[str] = None
|
||||||
lockid: Optional[int]
|
lockid: Optional[int] = None
|
||||||
|
|
||||||
|
|
||||||
class Logs(BaseModel):
|
class Logs(BaseModel):
|
||||||
@@ -373,17 +373,17 @@ class Logs(BaseModel):
|
|||||||
class ForceEnterPayload(BaseModel):
|
class ForceEnterPayload(BaseModel):
|
||||||
pair: str
|
pair: str
|
||||||
side: SignalDirection = SignalDirection.LONG
|
side: SignalDirection = SignalDirection.LONG
|
||||||
price: Optional[float]
|
price: Optional[float] = None
|
||||||
ordertype: Optional[OrderTypeValues]
|
ordertype: Optional[OrderTypeValues] = None
|
||||||
stakeamount: Optional[float]
|
stakeamount: Optional[float] = None
|
||||||
entry_tag: Optional[str]
|
entry_tag: Optional[str] = None
|
||||||
leverage: Optional[float]
|
leverage: Optional[float] = None
|
||||||
|
|
||||||
|
|
||||||
class ForceExitPayload(BaseModel):
|
class ForceExitPayload(BaseModel):
|
||||||
tradeid: str
|
tradeid: str
|
||||||
ordertype: Optional[OrderTypeValues]
|
ordertype: Optional[OrderTypeValues] = None
|
||||||
amount: Optional[float]
|
amount: Optional[float] = None
|
||||||
|
|
||||||
|
|
||||||
class BlacklistPayload(BaseModel):
|
class BlacklistPayload(BaseModel):
|
||||||
@@ -405,7 +405,7 @@ class WhitelistResponse(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class WhitelistEvaluateResponse(BackgroundTaskResult):
|
class WhitelistEvaluateResponse(BackgroundTaskResult):
|
||||||
result: Optional[WhitelistResponse]
|
result: Optional[WhitelistResponse] = None
|
||||||
|
|
||||||
|
|
||||||
class DeleteTrade(BaseModel):
|
class DeleteTrade(BaseModel):
|
||||||
@@ -497,16 +497,16 @@ class BacktestFreqAIInputs(BaseModel):
|
|||||||
|
|
||||||
class BacktestRequest(BaseModel):
|
class BacktestRequest(BaseModel):
|
||||||
strategy: str
|
strategy: str
|
||||||
timeframe: Optional[str]
|
timeframe: Optional[str] = None
|
||||||
timeframe_detail: Optional[str]
|
timeframe_detail: Optional[str] = None
|
||||||
timerange: Optional[str]
|
timerange: Optional[str] = None
|
||||||
max_open_trades: Optional[IntOrInf]
|
max_open_trades: Optional[IntOrInf] = None
|
||||||
stake_amount: Optional[str]
|
stake_amount: Optional[str] = None
|
||||||
enable_protections: bool
|
enable_protections: bool
|
||||||
dry_run_wallet: Optional[float]
|
dry_run_wallet: Optional[float] = None
|
||||||
backtest_cache: Optional[str]
|
backtest_cache: Optional[str] = None
|
||||||
freqaimodel: Optional[str]
|
freqaimodel: Optional[str] = None
|
||||||
freqai: Optional[BacktestFreqAIInputs]
|
freqai: Optional[BacktestFreqAIInputs] = None
|
||||||
|
|
||||||
|
|
||||||
class BacktestResponse(BaseModel):
|
class BacktestResponse(BaseModel):
|
||||||
@@ -515,7 +515,7 @@ class BacktestResponse(BaseModel):
|
|||||||
status_msg: str
|
status_msg: str
|
||||||
step: str
|
step: str
|
||||||
progress: float
|
progress: float
|
||||||
trade_count: Optional[float]
|
trade_count: Optional[float] = None
|
||||||
# TODO: Properly type backtestresult...
|
# TODO: Properly type backtestresult...
|
||||||
backtest_result: SerializeAsAny[Optional[Dict[str, Any]]] = None
|
backtest_result: SerializeAsAny[Optional[Dict[str, Any]]] = None
|
||||||
|
|
||||||
@@ -534,5 +534,5 @@ class SysInfo(BaseModel):
|
|||||||
|
|
||||||
|
|
||||||
class Health(BaseModel):
|
class Health(BaseModel):
|
||||||
last_process: Optional[datetime]
|
last_process: Optional[datetime] = None
|
||||||
last_process_ts: Optional[int]
|
last_process_ts: Optional[int] = None
|
||||||
|
|||||||
Reference in New Issue
Block a user