Skip to content

Commit 469404a

Browse files
committed
allow user to select data feed (iex/sip)
1 parent 036365a commit 469404a

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

alpaca_backtrader_api/alpacadata.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ class AlpacaData(with_metaclass(MetaAlpacaData, DataBase)):
133133
('reconnect', True),
134134
('reconnections', -1), # forever
135135
('reconntimeout', 5.0),
136+
('data_feed', 'iex'), # options iex/sip for pro
136137
)
137138

138139
_store = alpacastore.AlpacaStore
@@ -233,7 +234,8 @@ def _st_start(self, instart=True, tmout=None):
233234
return True
234235
self.qlive = self.o.streaming_prices(self.p.dataname,
235236
self.p.timeframe,
236-
tmout=tmout)
237+
tmout=tmout,
238+
data_feed=self.p.data_feed)
237239
if instart:
238240
self._statelivereconn = self.p.backfill_start
239241
else:

alpaca_backtrader_api/alpacastore.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,7 @@ def __init__(
117117
method: StreamingMethod = StreamingMethod.AccountUpdate,
118118
base_url='',
119119
data_url='',
120+
data_feed='iex',
120121
*args,
121122
**kwargs):
122123
try:
@@ -128,7 +129,7 @@ def __init__(
128129
self.conn = Stream(api_key,
129130
api_secret,
130131
base_url,
131-
data_feed='iex')
132+
data_feed=data_feed)
132133
self.instrument = instrument
133134
self.method = method
134135
self.q = q
@@ -610,18 +611,20 @@ def _resample(df):
610611
response = response[~response.index.duplicated()]
611612
return response
612613

613-
def streaming_prices(self, dataname, timeframe, tmout=None):
614+
def streaming_prices(self,
615+
dataname, timeframe, tmout=None, data_feed='iex'):
614616
q = queue.Queue()
615617
kwargs = {'q': q,
616618
'dataname': dataname,
617619
'timeframe': timeframe,
620+
'data_feed': data_feed,
618621
'tmout': tmout}
619622
t = threading.Thread(target=self._t_streaming_prices, kwargs=kwargs)
620623
t.daemon = True
621624
t.start()
622625
return q
623626

624-
def _t_streaming_prices(self, dataname, timeframe, q, tmout):
627+
def _t_streaming_prices(self, dataname, timeframe, q, tmout, data_feed):
625628
if tmout is not None:
626629
_time.sleep(tmout)
627630

@@ -639,7 +642,8 @@ def _t_streaming_prices(self, dataname, timeframe, q, tmout):
639642
instrument=dataname,
640643
method=method,
641644
base_url=self.p.base_url,
642-
data_url=os.environ.get("DATA_PROXY_WS", ''))
645+
data_url=os.environ.get("DATA_PROXY_WS", ''),
646+
data_feed=data_feed)
643647

644648
streamer.run()
645649

0 commit comments

Comments
 (0)