J'ai un problème avec les trois dernières lignes de mon code. J'ai une liste filtrée de l'API d'alpaga (Effectable_Marginable_Assets). J'ai ensuite un dictionnaire existant de tickers (symbol_list) et souhaitez stocker uniquement les tickers qui sont dans la liste filtrée et le dictionnaire.
[Asset({ 'class': 'us_equity',
'easy_to_borrow': True,
'exchange': 'NASDAQ',
'id': '8ccae427-5dd0-45b3-b5fe-7ba5e422c766',
'marginable': True,
'name': 'Tesla, Inc. Common Stock',
'shortable': True,
'status': 'active',
'symbol': 'TSLA',
'tradable': True})]
[Asset({ 'class': 'us_equity',
'easy_to_borrow': True,
'exchange': 'NYSE',
'id': '81f61b55-adee-402e-87d4-7b49579e2338',
'marginable': True,
'name': 'Norwegian Cruise Line Holdings Ltd. Ordinary Shares',
'shortable': True,
'status': 'active',
'symbol': 'NCLH',
'tradable': True})]
[]
[]
etc.
3 Réponses :
Vous devez déplacer le pour actif dans final_universe code> dans le symbole pour le symbole dans symbole_list code> comme vous ne vous bougeez actuellement que sur le dernier em> final_universe code>. final_universe_tickers = []
for symbol in symbol_list:
# Filter the assets which have passed all vola and price filters and are shortable based on Alpaca API
final_universe = [a for a in shortable_marginable_assets if a.symbol == symbol]
print(final_universe)
for asset in final_universe:
final_universe_tickers.append(asset["symbol"])
OK, je devais faire un petit ajustement à votre code: Asset.Symbol au lieu d'actif ["Symbole"] dans la dernière ligne. Alors ça a fonctionné.
@ FM2020 Désolé je n'ai jamais utilisé cette bibliothèque avant que je ne connaissais pas. Je suis content que vous ayez réussi à le réparer! :RÉ
envisager de tirer le dictionnaire de l'objet d'actif; Je ne sais pas pourquoi l'alpaga doit présenter les données qu'ils voient. Je préfère travailler des dictionnaires plutôt que comment Alpaca le présente.
import alpaca_trade_api as tradeapi
api = tradeapi.REST(key_id=API_KEY,
secret_key=SECRET_KEY,
base_url='https://api.alpaca.markets',
api_version='v2',
oauth=None)
a = api.get_asset('NFLX')
print(a._raw)
print(a._raw['symbol'])
side note: if you do dir(response) you'll see a bunch of options you have with object. I chose _raw.
['__class__',
'__delattr__',
'__dict__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattr__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__le__',
'__lt__',
'__module__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'__weakref__',
'_raw']
Qu'est-ce que
final_universe_tickers code> contient?['TSLA', 'NCLH' ...] CODE>?Oui, absolument correct