|
|
- # coding: utf-8
-
- """
- Gate API v4
-
- Welcome to Gate.io API APIv4 provides spot, margin and futures trading operations. There are public APIs to retrieve the real-time market statistics, and private APIs which needs authentication to trade on user's behalf. # noqa: E501
-
- Contact: support@mail.gate.io
- Generated by: https://openapi-generator.tech
- """
-
-
- import pprint
- import re # noqa: F401
-
- import six
-
- from gate_api.configuration import Configuration
-
-
- class Position(object):
- """NOTE: This class is auto generated by OpenAPI Generator.
- Ref: https://openapi-generator.tech
-
- Do not edit the class manually.
- """
-
- """
- Attributes:
- openapi_types (dict): The key is attribute name
- and the value is attribute type.
- attribute_map (dict): The key is attribute name
- and the value is json key in definition.
- """
- openapi_types = {
- 'user': 'int',
- 'contract': 'str',
- 'size': 'int',
- 'leverage': 'str',
- 'risk_limit': 'str',
- 'leverage_max': 'str',
- 'maintenance_rate': 'str',
- 'value': 'str',
- 'margin': 'str',
- 'entry_price': 'str',
- 'liq_price': 'str',
- 'mark_price': 'str',
- 'initial_margin': 'str',
- 'maintenance_margin': 'str',
- 'unrealised_pnl': 'str',
- 'realised_pnl': 'str',
- 'history_pnl': 'str',
- 'last_close_pnl': 'str',
- 'realised_point': 'str',
- 'history_point': 'str',
- 'adl_ranking': 'int',
- 'pending_orders': 'int',
- 'close_order': 'PositionCloseOrder',
- 'mode': 'str',
- 'cross_leverage_limit': 'str',
- }
-
- attribute_map = {
- 'user': 'user',
- 'contract': 'contract',
- 'size': 'size',
- 'leverage': 'leverage',
- 'risk_limit': 'risk_limit',
- 'leverage_max': 'leverage_max',
- 'maintenance_rate': 'maintenance_rate',
- 'value': 'value',
- 'margin': 'margin',
- 'entry_price': 'entry_price',
- 'liq_price': 'liq_price',
- 'mark_price': 'mark_price',
- 'initial_margin': 'initial_margin',
- 'maintenance_margin': 'maintenance_margin',
- 'unrealised_pnl': 'unrealised_pnl',
- 'realised_pnl': 'realised_pnl',
- 'history_pnl': 'history_pnl',
- 'last_close_pnl': 'last_close_pnl',
- 'realised_point': 'realised_point',
- 'history_point': 'history_point',
- 'adl_ranking': 'adl_ranking',
- 'pending_orders': 'pending_orders',
- 'close_order': 'close_order',
- 'mode': 'mode',
- 'cross_leverage_limit': 'cross_leverage_limit',
- }
-
- def __init__(
- self,
- user=None,
- contract=None,
- size=None,
- leverage=None,
- risk_limit=None,
- leverage_max=None,
- maintenance_rate=None,
- value=None,
- margin=None,
- entry_price=None,
- liq_price=None,
- mark_price=None,
- initial_margin=None,
- maintenance_margin=None,
- unrealised_pnl=None,
- realised_pnl=None,
- history_pnl=None,
- last_close_pnl=None,
- realised_point=None,
- history_point=None,
- adl_ranking=None,
- pending_orders=None,
- close_order=None,
- mode=None,
- cross_leverage_limit=None,
- local_vars_configuration=None,
- ): # noqa: E501
- # type: (int, str, int, str, str, str, str, str, str, str, str, str, str, str, str, str, str, str, str, str, int, int, PositionCloseOrder, str, str, Configuration) -> None
- """Position - a model defined in OpenAPI""" # noqa: E501
- if local_vars_configuration is None:
- local_vars_configuration = Configuration()
- self.local_vars_configuration = local_vars_configuration
-
- self._user = None
- self._contract = None
- self._size = None
- self._leverage = None
- self._risk_limit = None
- self._leverage_max = None
- self._maintenance_rate = None
- self._value = None
- self._margin = None
- self._entry_price = None
- self._liq_price = None
- self._mark_price = None
- self._initial_margin = None
- self._maintenance_margin = None
- self._unrealised_pnl = None
- self._realised_pnl = None
- self._history_pnl = None
- self._last_close_pnl = None
- self._realised_point = None
- self._history_point = None
- self._adl_ranking = None
- self._pending_orders = None
- self._close_order = None
- self._mode = None
- self._cross_leverage_limit = None
- self.discriminator = None
-
- if user is not None:
- self.user = user
- if contract is not None:
- self.contract = contract
- if size is not None:
- self.size = size
- if leverage is not None:
- self.leverage = leverage
- if risk_limit is not None:
- self.risk_limit = risk_limit
- if leverage_max is not None:
- self.leverage_max = leverage_max
- if maintenance_rate is not None:
- self.maintenance_rate = maintenance_rate
- if value is not None:
- self.value = value
- if margin is not None:
- self.margin = margin
- if entry_price is not None:
- self.entry_price = entry_price
- if liq_price is not None:
- self.liq_price = liq_price
- if mark_price is not None:
- self.mark_price = mark_price
- if initial_margin is not None:
- self.initial_margin = initial_margin
- if maintenance_margin is not None:
- self.maintenance_margin = maintenance_margin
- if unrealised_pnl is not None:
- self.unrealised_pnl = unrealised_pnl
- if realised_pnl is not None:
- self.realised_pnl = realised_pnl
- if history_pnl is not None:
- self.history_pnl = history_pnl
- if last_close_pnl is not None:
- self.last_close_pnl = last_close_pnl
- if realised_point is not None:
- self.realised_point = realised_point
- if history_point is not None:
- self.history_point = history_point
- if adl_ranking is not None:
- self.adl_ranking = adl_ranking
- if pending_orders is not None:
- self.pending_orders = pending_orders
- self.close_order = close_order
- if mode is not None:
- self.mode = mode
- if cross_leverage_limit is not None:
- self.cross_leverage_limit = cross_leverage_limit
-
- @property
- def user(self):
- """Gets the user of this Position. # noqa: E501
-
- User ID # noqa: E501
-
- :return: The user of this Position. # noqa: E501
- :rtype: int
- """
- return self._user
-
- @user.setter
- def user(self, user):
- """Sets the user of this Position.
-
- User ID # noqa: E501
-
- :param user: The user of this Position. # noqa: E501
- :type: int
- """
-
- self._user = user
-
- @property
- def contract(self):
- """Gets the contract of this Position. # noqa: E501
-
- Futures contract # noqa: E501
-
- :return: The contract of this Position. # noqa: E501
- :rtype: str
- """
- return self._contract
-
- @contract.setter
- def contract(self, contract):
- """Sets the contract of this Position.
-
- Futures contract # noqa: E501
-
- :param contract: The contract of this Position. # noqa: E501
- :type: str
- """
-
- self._contract = contract
-
- @property
- def size(self):
- """Gets the size of this Position. # noqa: E501
-
- Position size # noqa: E501
-
- :return: The size of this Position. # noqa: E501
- :rtype: int
- """
- return self._size
-
- @size.setter
- def size(self, size):
- """Sets the size of this Position.
-
- Position size # noqa: E501
-
- :param size: The size of this Position. # noqa: E501
- :type: int
- """
-
- self._size = size
-
- @property
- def leverage(self):
- """Gets the leverage of this Position. # noqa: E501
-
- Position leverage. 0 means cross margin; positive number means isolated margin # noqa: E501
-
- :return: The leverage of this Position. # noqa: E501
- :rtype: str
- """
- return self._leverage
-
- @leverage.setter
- def leverage(self, leverage):
- """Sets the leverage of this Position.
-
- Position leverage. 0 means cross margin; positive number means isolated margin # noqa: E501
-
- :param leverage: The leverage of this Position. # noqa: E501
- :type: str
- """
-
- self._leverage = leverage
-
- @property
- def risk_limit(self):
- """Gets the risk_limit of this Position. # noqa: E501
-
- Position risk limit # noqa: E501
-
- :return: The risk_limit of this Position. # noqa: E501
- :rtype: str
- """
- return self._risk_limit
-
- @risk_limit.setter
- def risk_limit(self, risk_limit):
- """Sets the risk_limit of this Position.
-
- Position risk limit # noqa: E501
-
- :param risk_limit: The risk_limit of this Position. # noqa: E501
- :type: str
- """
-
- self._risk_limit = risk_limit
-
- @property
- def leverage_max(self):
- """Gets the leverage_max of this Position. # noqa: E501
-
- Maximum leverage under current risk limit # noqa: E501
-
- :return: The leverage_max of this Position. # noqa: E501
- :rtype: str
- """
- return self._leverage_max
-
- @leverage_max.setter
- def leverage_max(self, leverage_max):
- """Sets the leverage_max of this Position.
-
- Maximum leverage under current risk limit # noqa: E501
-
- :param leverage_max: The leverage_max of this Position. # noqa: E501
- :type: str
- """
-
- self._leverage_max = leverage_max
-
- @property
- def maintenance_rate(self):
- """Gets the maintenance_rate of this Position. # noqa: E501
-
- Maintenance rate under current risk limit # noqa: E501
-
- :return: The maintenance_rate of this Position. # noqa: E501
- :rtype: str
- """
- return self._maintenance_rate
-
- @maintenance_rate.setter
- def maintenance_rate(self, maintenance_rate):
- """Sets the maintenance_rate of this Position.
-
- Maintenance rate under current risk limit # noqa: E501
-
- :param maintenance_rate: The maintenance_rate of this Position. # noqa: E501
- :type: str
- """
-
- self._maintenance_rate = maintenance_rate
-
- @property
- def value(self):
- """Gets the value of this Position. # noqa: E501
-
- Position value calculated in settlement currency # noqa: E501
-
- :return: The value of this Position. # noqa: E501
- :rtype: str
- """
- return self._value
-
- @value.setter
- def value(self, value):
- """Sets the value of this Position.
-
- Position value calculated in settlement currency # noqa: E501
-
- :param value: The value of this Position. # noqa: E501
- :type: str
- """
-
- self._value = value
-
- @property
- def margin(self):
- """Gets the margin of this Position. # noqa: E501
-
- Position margin # noqa: E501
-
- :return: The margin of this Position. # noqa: E501
- :rtype: str
- """
- return self._margin
-
- @margin.setter
- def margin(self, margin):
- """Sets the margin of this Position.
-
- Position margin # noqa: E501
-
- :param margin: The margin of this Position. # noqa: E501
- :type: str
- """
-
- self._margin = margin
-
- @property
- def entry_price(self):
- """Gets the entry_price of this Position. # noqa: E501
-
- Entry price # noqa: E501
-
- :return: The entry_price of this Position. # noqa: E501
- :rtype: str
- """
- return self._entry_price
-
- @entry_price.setter
- def entry_price(self, entry_price):
- """Sets the entry_price of this Position.
-
- Entry price # noqa: E501
-
- :param entry_price: The entry_price of this Position. # noqa: E501
- :type: str
- """
-
- self._entry_price = entry_price
-
- @property
- def liq_price(self):
- """Gets the liq_price of this Position. # noqa: E501
-
- Liquidation price # noqa: E501
-
- :return: The liq_price of this Position. # noqa: E501
- :rtype: str
- """
- return self._liq_price
-
- @liq_price.setter
- def liq_price(self, liq_price):
- """Sets the liq_price of this Position.
-
- Liquidation price # noqa: E501
-
- :param liq_price: The liq_price of this Position. # noqa: E501
- :type: str
- """
-
- self._liq_price = liq_price
-
- @property
- def mark_price(self):
- """Gets the mark_price of this Position. # noqa: E501
-
- Current mark price # noqa: E501
-
- :return: The mark_price of this Position. # noqa: E501
- :rtype: str
- """
- return self._mark_price
-
- @mark_price.setter
- def mark_price(self, mark_price):
- """Sets the mark_price of this Position.
-
- Current mark price # noqa: E501
-
- :param mark_price: The mark_price of this Position. # noqa: E501
- :type: str
- """
-
- self._mark_price = mark_price
-
- @property
- def initial_margin(self):
- """Gets the initial_margin of this Position. # noqa: E501
-
- The initial margin occupied by the position, applicable to the portfolio margin account # noqa: E501
-
- :return: The initial_margin of this Position. # noqa: E501
- :rtype: str
- """
- return self._initial_margin
-
- @initial_margin.setter
- def initial_margin(self, initial_margin):
- """Sets the initial_margin of this Position.
-
- The initial margin occupied by the position, applicable to the portfolio margin account # noqa: E501
-
- :param initial_margin: The initial_margin of this Position. # noqa: E501
- :type: str
- """
-
- self._initial_margin = initial_margin
-
- @property
- def maintenance_margin(self):
- """Gets the maintenance_margin of this Position. # noqa: E501
-
- Maintenance margin required for the position, applicable to portfolio margin account # noqa: E501
-
- :return: The maintenance_margin of this Position. # noqa: E501
- :rtype: str
- """
- return self._maintenance_margin
-
- @maintenance_margin.setter
- def maintenance_margin(self, maintenance_margin):
- """Sets the maintenance_margin of this Position.
-
- Maintenance margin required for the position, applicable to portfolio margin account # noqa: E501
-
- :param maintenance_margin: The maintenance_margin of this Position. # noqa: E501
- :type: str
- """
-
- self._maintenance_margin = maintenance_margin
-
- @property
- def unrealised_pnl(self):
- """Gets the unrealised_pnl of this Position. # noqa: E501
-
- Unrealized PNL # noqa: E501
-
- :return: The unrealised_pnl of this Position. # noqa: E501
- :rtype: str
- """
- return self._unrealised_pnl
-
- @unrealised_pnl.setter
- def unrealised_pnl(self, unrealised_pnl):
- """Sets the unrealised_pnl of this Position.
-
- Unrealized PNL # noqa: E501
-
- :param unrealised_pnl: The unrealised_pnl of this Position. # noqa: E501
- :type: str
- """
-
- self._unrealised_pnl = unrealised_pnl
-
- @property
- def realised_pnl(self):
- """Gets the realised_pnl of this Position. # noqa: E501
-
- Realized PNL # noqa: E501
-
- :return: The realised_pnl of this Position. # noqa: E501
- :rtype: str
- """
- return self._realised_pnl
-
- @realised_pnl.setter
- def realised_pnl(self, realised_pnl):
- """Sets the realised_pnl of this Position.
-
- Realized PNL # noqa: E501
-
- :param realised_pnl: The realised_pnl of this Position. # noqa: E501
- :type: str
- """
-
- self._realised_pnl = realised_pnl
-
- @property
- def history_pnl(self):
- """Gets the history_pnl of this Position. # noqa: E501
-
- History realized PNL # noqa: E501
-
- :return: The history_pnl of this Position. # noqa: E501
- :rtype: str
- """
- return self._history_pnl
-
- @history_pnl.setter
- def history_pnl(self, history_pnl):
- """Sets the history_pnl of this Position.
-
- History realized PNL # noqa: E501
-
- :param history_pnl: The history_pnl of this Position. # noqa: E501
- :type: str
- """
-
- self._history_pnl = history_pnl
-
- @property
- def last_close_pnl(self):
- """Gets the last_close_pnl of this Position. # noqa: E501
-
- PNL of last position close # noqa: E501
-
- :return: The last_close_pnl of this Position. # noqa: E501
- :rtype: str
- """
- return self._last_close_pnl
-
- @last_close_pnl.setter
- def last_close_pnl(self, last_close_pnl):
- """Sets the last_close_pnl of this Position.
-
- PNL of last position close # noqa: E501
-
- :param last_close_pnl: The last_close_pnl of this Position. # noqa: E501
- :type: str
- """
-
- self._last_close_pnl = last_close_pnl
-
- @property
- def realised_point(self):
- """Gets the realised_point of this Position. # noqa: E501
-
- Realized POINT PNL # noqa: E501
-
- :return: The realised_point of this Position. # noqa: E501
- :rtype: str
- """
- return self._realised_point
-
- @realised_point.setter
- def realised_point(self, realised_point):
- """Sets the realised_point of this Position.
-
- Realized POINT PNL # noqa: E501
-
- :param realised_point: The realised_point of this Position. # noqa: E501
- :type: str
- """
-
- self._realised_point = realised_point
-
- @property
- def history_point(self):
- """Gets the history_point of this Position. # noqa: E501
-
- History realized POINT PNL # noqa: E501
-
- :return: The history_point of this Position. # noqa: E501
- :rtype: str
- """
- return self._history_point
-
- @history_point.setter
- def history_point(self, history_point):
- """Sets the history_point of this Position.
-
- History realized POINT PNL # noqa: E501
-
- :param history_point: The history_point of this Position. # noqa: E501
- :type: str
- """
-
- self._history_point = history_point
-
- @property
- def adl_ranking(self):
- """Gets the adl_ranking of this Position. # noqa: E501
-
- Ranking of auto deleveraging, a total of 1-5 grades, `1` is the highest, `5` is the lowest, and `6` is the special case when there is no position held or in liquidation # noqa: E501
-
- :return: The adl_ranking of this Position. # noqa: E501
- :rtype: int
- """
- return self._adl_ranking
-
- @adl_ranking.setter
- def adl_ranking(self, adl_ranking):
- """Sets the adl_ranking of this Position.
-
- Ranking of auto deleveraging, a total of 1-5 grades, `1` is the highest, `5` is the lowest, and `6` is the special case when there is no position held or in liquidation # noqa: E501
-
- :param adl_ranking: The adl_ranking of this Position. # noqa: E501
- :type: int
- """
-
- self._adl_ranking = adl_ranking
-
- @property
- def pending_orders(self):
- """Gets the pending_orders of this Position. # noqa: E501
-
- Current open orders # noqa: E501
-
- :return: The pending_orders of this Position. # noqa: E501
- :rtype: int
- """
- return self._pending_orders
-
- @pending_orders.setter
- def pending_orders(self, pending_orders):
- """Sets the pending_orders of this Position.
-
- Current open orders # noqa: E501
-
- :param pending_orders: The pending_orders of this Position. # noqa: E501
- :type: int
- """
-
- self._pending_orders = pending_orders
-
- @property
- def close_order(self):
- """Gets the close_order of this Position. # noqa: E501
-
-
- :return: The close_order of this Position. # noqa: E501
- :rtype: PositionCloseOrder
- """
- return self._close_order
-
- @close_order.setter
- def close_order(self, close_order):
- """Sets the close_order of this Position.
-
-
- :param close_order: The close_order of this Position. # noqa: E501
- :type: PositionCloseOrder
- """
-
- self._close_order = close_order
-
- @property
- def mode(self):
- """Gets the mode of this Position. # noqa: E501
-
- Position mode, including: - `single`: dual mode is not enabled- `dual_long`: long position in dual mode- `dual_short`: short position in dual mode # noqa: E501
-
- :return: The mode of this Position. # noqa: E501
- :rtype: str
- """
- return self._mode
-
- @mode.setter
- def mode(self, mode):
- """Sets the mode of this Position.
-
- Position mode, including: - `single`: dual mode is not enabled- `dual_long`: long position in dual mode- `dual_short`: short position in dual mode # noqa: E501
-
- :param mode: The mode of this Position. # noqa: E501
- :type: str
- """
- allowed_values = ["single", "dual_long", "dual_short"] # noqa: E501
- if self.local_vars_configuration.client_side_validation and mode not in allowed_values: # noqa: E501
- raise ValueError(
- "Invalid value for `mode` ({0}), must be one of {1}".format(mode, allowed_values) # noqa: E501
- )
-
- self._mode = mode
-
- @property
- def cross_leverage_limit(self):
- """Gets the cross_leverage_limit of this Position. # noqa: E501
-
- Cross margin leverage(valid only when `leverage` is 0) # noqa: E501
-
- :return: The cross_leverage_limit of this Position. # noqa: E501
- :rtype: str
- """
- return self._cross_leverage_limit
-
- @cross_leverage_limit.setter
- def cross_leverage_limit(self, cross_leverage_limit):
- """Sets the cross_leverage_limit of this Position.
-
- Cross margin leverage(valid only when `leverage` is 0) # noqa: E501
-
- :param cross_leverage_limit: The cross_leverage_limit of this Position. # noqa: E501
- :type: str
- """
-
- self._cross_leverage_limit = cross_leverage_limit
-
- def to_dict(self):
- """Returns the model properties as a dict"""
- result = {}
-
- for attr, _ in six.iteritems(self.openapi_types):
- value = getattr(self, attr)
- if isinstance(value, list):
- result[attr] = list(map(lambda x: x.to_dict() if hasattr(x, "to_dict") else x, value))
- elif hasattr(value, "to_dict"):
- result[attr] = value.to_dict()
- elif isinstance(value, dict):
- result[attr] = dict(
- map(
- lambda item: (item[0], item[1].to_dict()) if hasattr(item[1], "to_dict") else item,
- value.items(),
- )
- )
- else:
- result[attr] = value
-
- return result
-
- def to_str(self):
- """Returns the string representation of the model"""
- return pprint.pformat(self.to_dict())
-
- def __repr__(self):
- """For `print` and `pprint`"""
- return self.to_str()
-
- def __eq__(self, other):
- """Returns true if both objects are equal"""
- if not isinstance(other, Position):
- return False
-
- return self.to_dict() == other.to_dict()
-
- def __ne__(self, other):
- """Returns true if both objects are not equal"""
- if not isinstance(other, Position):
- return True
-
- return self.to_dict() != other.to_dict()
|