Skip to content

Commit 083a12d

Browse files
committed
Added account_config and replace_order endpoints
Still need to test account_config
1 parent b237367 commit 083a12d

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

alpaca_trade_api/rest.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,9 @@ def get(self, path, data=None):
150150

151151
def post(self, path, data=None):
152152
return self._request('POST', path, data)
153+
154+
def patch(self, path, data=None):
155+
return self._request('PATCH', path, data)
153156

154157
def delete(self, path, data=None):
155158
return self._request('DELETE', path, data)
@@ -165,6 +168,25 @@ def get_account(self):
165168
resp = self.get('/account')
166169
return Account(resp)
167170

171+
def get_account_configs(self):
172+
'''Get account configs'''
173+
resp = self.get('/account/configurations')
174+
return Account(resp)
175+
176+
def edit_account_configs(self, no_shorting=None, dtbp_check=None, trade_confirm_email=None, suspend_trade=None):
177+
'''Edit account configs'''
178+
params = {}
179+
if no_shorting is not None:
180+
params['no_shorting'] = no_shorting
181+
if dtbp_check is not None:
182+
params['dtbp_check'] = dtbp_check
183+
if trade_confirm_email is not None:
184+
params['trade_confirm_email'] = trade_confirm_email
185+
if suspend_trade is not None:
186+
params['suspend_trade'] = suspend_trade
187+
resp = self.patch('/account/configurations',params)
188+
return Account(resp)
189+
168190
def list_orders(self, status=None, limit=None, after=None, until=None,
169191
direction=None, params=None):
170192
'''
@@ -220,6 +242,21 @@ def get_order(self, order_id):
220242
resp = self.get('/orders/{}'.format(order_id))
221243
return Order(resp)
222244

245+
def replace_order(self, order_id, qty=None, limit_price=None, stop_price=None, time_in_force=None, client_order_id=None):
246+
params = {}
247+
if qty is not None:
248+
params['qty'] = qty
249+
if limit_price is not None:
250+
params['limit_price'] = limit_price
251+
if stop_price is not None:
252+
params['stop_price'] = stop_price
253+
if time_in_force is not None:
254+
params['time_in_force'] = time_in_force
255+
if client_order_id is not None:
256+
params['client_order_id'] = client_order_id
257+
resp = self.patch('/orders/{}'.format(order_id), params)
258+
return Order(resp)
259+
223260
def cancel_order(self, order_id):
224261
'''Cancel an order'''
225262
self.delete('/orders/{}'.format(order_id))

0 commit comments

Comments
 (0)