1
1
from enum import Enum
2
- from typing import List , Optional
3
2
4
3
from pydantic import BaseModel
5
4
@@ -52,20 +51,20 @@ class StopPriceUnits(str, Enum):
52
51
53
52
class OrdersRequestModel (BaseModel ):
54
53
clientId : str
55
- includeMatched : Optional [ str ] = None
56
- includeCanceled : Optional [ str ] = None
57
- includeActive : Optional [ str ] = None
54
+ includeMatched : str | None = None
55
+ includeCanceled : str | None = None
56
+ includeActive : str | None = None
58
57
59
58
60
59
class Condition (BaseModel ):
61
60
type : ConditionType
62
61
price : float # цена активации
63
- time : Optional [ str ] = None
62
+ time : str | None = None
64
63
65
64
66
65
class ValidBefore (BaseModel ):
67
66
type : ValidBeforeType
68
- time : Optional [ str ] = None
67
+ time : str | None = None
69
68
70
69
71
70
class OrderStatus (str , Enum ):
@@ -75,29 +74,57 @@ class OrderStatus(str, Enum):
75
74
Matched = "Matched"
76
75
77
76
77
+ class StopQuantity (BaseModel ):
78
+ value : float # Значение объема.
79
+ units : StopQuantityUnits # Единицы объема стоп-заявки.
80
+
81
+
82
+ class StopLossModel (BaseModel ):
83
+ activationPrice : float
84
+ price : float | None = None
85
+ marketPrice : bool
86
+ quantity : StopQuantity
87
+ time : int = 0 # Защитное время, сек.
88
+ useCredit : bool = False
89
+
90
+
91
+ class StopPrice (BaseModel ):
92
+ value : float # Значение объема.
93
+ units : StopPriceUnits # Единицы объема стоп-заявки.
94
+
95
+
96
+ class TakeProfitModel (BaseModel ):
97
+ activationPrice : float
98
+ correctionPrice : StopPrice | None = None
99
+ spreadPrice : StopPrice | None = None
100
+ marketPrice : bool
101
+ quantity : StopQuantity
102
+ time : int = 0 # Защитное время, сек.
103
+ useCredit : bool = False
104
+
78
105
class Order (BaseModel ):
79
106
orderNo : int
80
107
transactionId : int
81
- securityCode : Optional [ str ] = None
82
- clientId : Optional [ str ] = None
108
+ securityCode : str | None = None
109
+ clientId : str | None = None
83
110
status : OrderStatus
84
111
buySell : OrderType
85
- createdAt : Optional [ str ] = None
86
- acceptedAt : Optional [ str ] = None
87
- price : float = 0 # В последующих версиях API поле для рыночных заявок будет равно null, а не 0.
112
+ createdAt : str | None = None
113
+ acceptedAt : str | None = None
114
+ price : float | None = None
88
115
quantity : int
89
116
balance : int
90
- message : Optional [ str ] = None
91
- currency : Optional [ str ] = None
92
- condition : Optional [ Condition ] = None
93
- validBefore : Optional [ ValidBefore ] = None
94
- securityBoard : Optional [ str ] = None
117
+ message : str | None = None
118
+ currency : str | None = None
119
+ condition : Condition | None = None
120
+ validBefore : ValidBefore | None = None
121
+ securityBoard : str | None = None
95
122
market : Market
96
123
97
124
98
125
class OrdersResponseData (BaseModel ):
99
126
clientId : str
100
- orders : List [Order ]
127
+ orders : list [Order ]
101
128
102
129
103
130
class OrdersResponseModel (BaseModel ):
@@ -111,25 +138,25 @@ class StopOrder(BaseModel):
111
138
market : Market
112
139
clientId : str
113
140
buySell : OrderType
114
- expirationDate : Optional [ str ] = None
141
+ expirationDate : str | None = None
115
142
linkOrder : int
116
- validBefore : Optional [ ValidBefore ] = None
143
+ validBefore : ValidBefore | None = None
117
144
status : OrderStatus
118
- message : Optional [ str ] = None
145
+ message : str | None = None
119
146
orderNo : int
120
147
tradeNo : int
121
- acceptedAt : Optional [ str ] = None
122
- canceledAt : Optional [ str ] = None
123
- currency : Optional [ str ] = None
148
+ acceptedAt : str | None = None
149
+ canceledAt : str | None = None
150
+ currency : str | None = None
124
151
takeProfitExtremum : float
125
152
takeProfitLevel : float
126
- stopLoss : Optional [ " StopLossModel" ] = None
127
- takeProfit : Optional [ " TakeProfitModel" ] = None
153
+ stopLoss : StopLossModel | None = None
154
+ takeProfit : TakeProfitModel | None = None
128
155
129
156
130
157
class StopOrdersResponseData (BaseModel ):
131
158
clientId : str
132
- stops : List [StopOrder ]
159
+ stops : list [StopOrder ]
133
160
134
161
135
162
class StopOrdersResponseModel (BaseModel ):
@@ -155,37 +182,8 @@ class CreateOrderRequestModel(BaseModel):
155
182
useCredit : bool = False
156
183
price : float | None = None
157
184
property : PropertyType
158
- condition : Optional [Condition ] = None
159
- validBefore : Optional [ValidBefore ] = None
160
-
161
-
162
- class StopQuantity (BaseModel ):
163
- value : float # Значение объема.
164
- units : StopQuantityUnits # Единицы объема стоп-заявки.
165
-
166
-
167
- class StopLossModel (BaseModel ):
168
- activationPrice : float
169
- price : float = 0
170
- marketPrice : bool
171
- quantity : StopQuantity
172
- time : int = 0 # Защитное время, сек.
173
- useCredit : bool = False
174
-
175
-
176
- class StopPrice (BaseModel ):
177
- value : float # Значение объема.
178
- units : StopPriceUnits # Единицы объема стоп-заявки.
179
-
180
-
181
- class TakeProfitModel (BaseModel ):
182
- activationPrice : float
183
- correctionPrice : Optional [StopPrice ] = None
184
- spreadPrice : Optional [StopPrice ] = None
185
- marketPrice : bool
186
- quantity : StopQuantity
187
- time : int = 0 # Защитное время, сек.
188
- useCredit : bool = False
185
+ condition : Condition | None = None
186
+ validBefore : ValidBefore | None = None
189
187
190
188
191
189
class CreateStopOrderRequestModel (BaseModel ):
@@ -195,16 +193,16 @@ class CreateStopOrderRequestModel(BaseModel):
195
193
buySell : OrderType
196
194
stopLoss : StopLossModel
197
195
takeProfit : TakeProfitModel
198
- expirationDate : Optional [ str ] = None
199
- linkOrder : Optional [ int ] = None
200
- validBefore : Optional [ ValidBefore ] = None
196
+ expirationDate : str | None = None
197
+ linkOrder : int | None = None
198
+ validBefore : ValidBefore | None = None
201
199
202
200
203
201
class CreateStopOrderData (BaseModel ):
204
202
clientId : str
205
203
stopId : int
206
- securityCode : Optional [ str ] = None
207
- securityBoard : Optional [ str ] = None
204
+ securityCode : str | None = None
205
+ securityBoard : str | None = None
208
206
209
207
210
208
class CreateStopOrderResponseModel (BaseModel ):
0 commit comments