tv module¶
Module with TVData.
FIELD_LIST list¶
List of fields supported by the market scanner (list may be incomplete).
MARKET_LIST list¶
List of markets supported by the market scanner (list may be incomplete).
ORIGIN_URL str¶
Origin URL.
PRO_WS_URL str¶
Websocket URL (Pro).
REFERER_URL str¶
Referer URL.
SCAN_URL str¶
Market scanner URL.
SEARCH_URL str¶
Symbol search URL.
SIGNIN_URL str¶
Sign-in URL.
USER_AGENT str¶
User agent.
WS_TIMEOUT int¶
Websocket timeout.
WS_URL str¶
Websocket URL.
TVClient class¶
Client for TradingView.
Client for TradingView.
Superclasses
Inherited members
- Cacheable.get_ca_setup()
- Chainable.pipe()
- Configured.config
- Configured.copy()
- Configured.equals()
- Configured.get_writeable_attrs()
- Configured.prettify()
- Configured.rec_state
- Configured.replace()
- Configured.resolve_merge_kwargs()
- Configured.update_config()
- HasSettings.get_path_setting()
- HasSettings.get_path_settings()
- HasSettings.get_setting()
- HasSettings.get_settings()
- HasSettings.has_path_setting()
- HasSettings.has_path_settings()
- HasSettings.has_setting()
- HasSettings.has_settings()
- HasSettings.reset_settings()
- HasSettings.resolve_setting()
- HasSettings.resolve_settings_paths()
- HasSettings.set_settings()
- Pickleable.decode_config()
- Pickleable.decode_config_node()
- Pickleable.dumps()
- Pickleable.encode_config()
- Pickleable.encode_config_node()
- Pickleable.file_exists()
- Pickleable.getsize()
- Pickleable.load()
- Pickleable.loads()
- Pickleable.modify_state()
- Pickleable.resolve_file_path()
- Pickleable.save()
auth class method¶
Authenticate.
auth_token property¶
Authentication token.
chart_session property¶
Chart session.
construct_message class method¶
Construct a message.
convert_raw_data class method¶
Process raw data into a DataFrame.
create_connection method¶
Create a websocket connection.
create_message method¶
Create a message.
filter_raw_message class method¶
Filter raw message.
format_symbol class method¶
Format a symbol.
generate_chart_session class method¶
Generate chart session.
generate_session class method¶
Generate session.
get_hist method¶
TVClient.get_hist(
symbol,
exchange='NSE',
interval='1D',
fut_contract=None,
adjustment='splits',
extended_session=False,
pro_data=True,
limit=20000,
return_raw=False
)
Get historical data.
prepend_header class method¶
Prepend a header.
scan_symbols class method¶
Scan symbols in a region/market.
search_symbol class method¶
TVClient.search_symbol(
text=None,
exchange=None,
pages=None,
delay=None,
retries=3,
show_progress=True,
pbar_kwargs=None
)
Search for a symbol.
send_message method¶
Send a message.
session property¶
Session.
ws property¶
Instance of websocket.Websocket.
TVData class¶
TVData(
wrapper,
data,
single_key=True,
classes=None,
level_name=None,
fetch_kwargs=None,
returned_kwargs=None,
last_index=None,
delisted=None,
tz_localize=None,
tz_convert=None,
missing_index=None,
missing_columns=None,
**kwargs
)
Data class for fetching from TradingView.
See TVData.fetch_symbol() for arguments.
Note
If you're getting the error "Please confirm that you are not a robot by clicking the captcha box." when attempting to authenticate, use auth_token instead of username and password. To get the authentication token, go to TradingView, log in, visit any chart, open your console's developer tools, and search for "auth_token".
Usage
- Set up the credentials globally (optional):
>>> from vectorbtpro import *
>>> vbt.TVData.set_custom_settings(
... client_config=dict(
... username="YOUR_USERNAME",
... password="YOUR_PASSWORD",
... auth_token="YOUR_AUTH_TOKEN", # optional, instead of username and password
... )
... )
- Pull data:
Superclasses
- Analyzable
- AttrResolverMixin
- BaseDataMixin
- Cacheable
- Chainable
- Comparable
- Configured
- CustomData
- Data
- DataWithFeatures
- ExtPandasIndexer
- HasSettings
- IndexApplier
- IndexingBase
- Itemable
- OHLCDataMixin
- PandasIndexer
- Paramable
- Pickleable
- PlotsBuilderMixin
- Prettified
- RemoteData
- StatsBuilderMixin
- Wrapping
Inherited members
- AttrResolverMixin.deep_getattr()
- AttrResolverMixin.post_resolve_attr()
- AttrResolverMixin.pre_resolve_attr()
- AttrResolverMixin.resolve_attr()
- AttrResolverMixin.resolve_shortcut_attr()
- BaseDataMixin.assert_has_feature()
- BaseDataMixin.assert_has_symbol()
- BaseDataMixin.get_feature()
- BaseDataMixin.get_feature_idx()
- BaseDataMixin.get_symbol()
- BaseDataMixin.get_symbol_idx()
- BaseDataMixin.has_feature()
- BaseDataMixin.has_multiple_keys()
- BaseDataMixin.has_symbol()
- BaseDataMixin.prepare_key()
- BaseDataMixin.select_features()
- BaseDataMixin.select_symbols()
- Cacheable.get_ca_setup()
- Chainable.pipe()
- Configured.copy()
- Configured.equals()
- Configured.get_writeable_attrs()
- Configured.prettify()
- Configured.resolve_merge_kwargs()
- Configured.update_config()
- CustomData.get_custom_setting()
- CustomData.get_custom_settings()
- CustomData.has_custom_setting()
- CustomData.has_custom_settings()
- CustomData.key_match()
- CustomData.resolve_custom_setting()
- CustomData.set_custom_settings()
- Data.add()
- Data.add_column()
- Data.add_feature()
- Data.add_key()
- Data.add_symbol()
- Data.align_columns()
- Data.align_data()
- Data.align_index()
- Data.build_feature_config_doc()
- Data.check_dict_type()
- Data.column_stack()
- Data.concat()
- Data.dropna()
- Data.fetch()
- Data.fetch_feature()
- Data.fix_data_dict_type()
- Data.fix_dict_types_in_kwargs()
- Data.from_csv()
- Data.from_data()
- Data.from_data_str()
- Data.from_duckdb()
- Data.from_feather()
- Data.from_hdf()
- Data.from_parquet()
- Data.from_sql()
- Data.get()
- Data.get_base_setting()
- Data.get_base_settings()
- Data.get_feature_wrapper()
- Data.get_intersection_dict()
- Data.get_key_index()
- Data.get_key_wrapper()
- Data.get_keys()
- Data.get_level_name()
- Data.get_symbol_wrapper()
- Data.has_base_setting()
- Data.has_base_settings()
- Data.has_key_dict()
- Data.indexing_func()
- Data.invert()
- Data.invert_data()
- Data.items()
- Data.merge()
- Data.modify_state()
- Data.override_feature_config_doc()
- Data.plot()
- Data.prepare_dt()
- Data.prepare_dt_column()
- Data.prepare_dt_index()
- Data.prepare_tzaware_index()
- Data.pull()
- Data.realign()
- Data.remove()
- Data.remove_columns()
- Data.remove_features()
- Data.remove_keys()
- Data.remove_symbols()
- Data.rename()
- Data.rename_columns()
- Data.rename_features()
- Data.rename_in_dict()
- Data.rename_keys()
- Data.rename_symbols()
- Data.replace()
- Data.resample()
- Data.resolve_base_setting()
- Data.resolve_columns()
- Data.resolve_features()
- Data.resolve_key_arg()
- Data.resolve_keys()
- Data.resolve_keys_meta()
- Data.resolve_symbols()
- Data.row_stack()
- Data.run()
- Data.select()
- Data.select_classes()
- Data.select_columns()
- Data.select_delisted()
- Data.select_feature_from_dict()
- Data.select_feature_idxs()
- Data.select_feature_kwargs()
- Data.select_fetch_kwargs()
- Data.select_from_dict()
- Data.select_key_from_dict()
- Data.select_key_kwargs()
- Data.select_keys()
- Data.select_last_index()
- Data.select_returned_kwargs()
- Data.select_run_func_args()
- Data.select_run_func_kwargs()
- Data.select_symbol_from_dict()
- Data.select_symbol_idxs()
- Data.select_symbol_kwargs()
- Data.set_base_settings()
- Data.sql()
- Data.switch_class()
- Data.to_csv()
- Data.to_duckdb()
- Data.to_feather()
- Data.to_feature_oriented()
- Data.to_hdf()
- Data.to_parquet()
- Data.to_sql()
- Data.to_symbol_oriented()
- Data.transform()
- Data.try_fetch_feature()
- Data.try_fetch_symbol()
- Data.try_run()
- Data.try_update_feature()
- Data.try_update_symbol()
- Data.update()
- Data.update_classes()
- Data.update_feature()
- Data.update_fetch_kwargs()
- Data.update_returned_kwargs()
- Data.update_symbol()
- Data.use_feature_config_of()
- HasSettings.get_path_setting()
- HasSettings.get_path_settings()
- HasSettings.get_setting()
- HasSettings.get_settings()
- HasSettings.has_path_setting()
- HasSettings.has_path_settings()
- HasSettings.has_setting()
- HasSettings.has_settings()
- HasSettings.reset_settings()
- HasSettings.resolve_setting()
- HasSettings.resolve_settings_paths()
- HasSettings.set_settings()
- IndexApplier.add_levels()
- IndexApplier.drop_duplicate_levels()
- IndexApplier.drop_levels()
- IndexApplier.drop_redundant_levels()
- IndexApplier.rename_levels()
- IndexApplier.select_levels()
- IndexingBase.indexing_setter_func()
- OHLCDataMixin.get_daily_log_returns()
- OHLCDataMixin.get_daily_returns()
- OHLCDataMixin.get_drawdowns()
- OHLCDataMixin.get_log_returns()
- OHLCDataMixin.get_returns()
- OHLCDataMixin.get_returns_acc()
- PandasIndexer.xs()
- Pickleable.decode_config()
- Pickleable.decode_config_node()
- Pickleable.dumps()
- Pickleable.encode_config()
- Pickleable.encode_config_node()
- Pickleable.file_exists()
- Pickleable.getsize()
- Pickleable.load()
- Pickleable.loads()
- Pickleable.resolve_file_path()
- Pickleable.save()
- PlotsBuilderMixin.build_subplots_doc()
- PlotsBuilderMixin.override_subplots_doc()
- PlotsBuilderMixin.plots()
- RemoteData.classes
- RemoteData.close
- RemoteData.cls_dir
- RemoteData.column_only_select
- RemoteData.column_type
- RemoteData.columns
- RemoteData.config
- RemoteData.daily_log_returns
- RemoteData.daily_returns
- RemoteData.data
- RemoteData.delisted
- RemoteData.dict_type
- RemoteData.drawdowns
- RemoteData.feature_classes
- RemoteData.feature_config
- RemoteData.feature_oriented
- RemoteData.feature_wrapper
- RemoteData.features
- RemoteData.fetch_kwargs
- RemoteData.freq
- RemoteData.group_select
- RemoteData.has_any_ohlc
- RemoteData.has_any_ohlcv
- RemoteData.has_ohlc
- RemoteData.has_ohlcv
- RemoteData.high
- RemoteData.hlc3
- RemoteData.iloc
- RemoteData.index
- RemoteData.indexing_kwargs
- RemoteData.key_index
- RemoteData.key_wrapper
- RemoteData.keys
- RemoteData.last_index
- RemoteData.level_name
- RemoteData.loc
- RemoteData.log_returns
- RemoteData.low
- RemoteData.missing_columns
- RemoteData.missing_index
- RemoteData.ndim
- RemoteData.ohlc
- RemoteData.ohlc4
- RemoteData.ohlcv
- RemoteData.open
- RemoteData.plots_defaults
- RemoteData.range_only_select
- RemoteData.rec_state
- RemoteData.returned_kwargs
- RemoteData.returns
- RemoteData.returns_acc
- RemoteData.self_aliases
- RemoteData.shape
- RemoteData.shape_2d
- RemoteData.single_feature
- RemoteData.single_key
- RemoteData.single_symbol
- RemoteData.stats_defaults
- RemoteData.symbol_classes
- RemoteData.symbol_oriented
- RemoteData.symbol_wrapper
- RemoteData.symbols
- RemoteData.trade_count
- RemoteData.tz_convert
- RemoteData.tz_localize
- RemoteData.volume
- RemoteData.vwap
- RemoteData.wrapper
- RemoteData.xloc
- StatsBuilderMixin.build_metrics_doc()
- StatsBuilderMixin.override_metrics_doc()
- StatsBuilderMixin.stats()
- Wrapping.apply_to_index()
- Wrapping.as_param()
- Wrapping.regroup()
- Wrapping.resolve_column_stack_kwargs()
- Wrapping.resolve_row_stack_kwargs()
- Wrapping.resolve_self()
- Wrapping.resolve_stack_kwargs()
- Wrapping.select_col()
- Wrapping.select_col_from_obj()
- Wrapping.split()
- Wrapping.split_apply()
fetch_symbol class method¶
TVData.fetch_symbol(
symbol,
client=None,
client_config=None,
exchange=None,
timeframe=None,
tz=None,
fut_contract=None,
adjustment=None,
extended_session=None,
pro_data=None,
limit=None,
delay=None,
retries=None
)
Override Data.fetch_symbol() to fetch a symbol from TradingView.
Args
symbol:str-
Symbol.
Symbol must be in the
EXCHANGE:SYMBOLformat ifexchangeis None. client: TVClient-
Client.
client_config:dict-
Client config.
exchange:str-
Exchange.
Can be omitted if already provided via
symbol. timeframe:str-
Timeframe.
Allows human-readable strings such as "15 minutes".
tz:any-
Timezone.
See to_timezone().
fut_contract:int- None for cash, 1 for continuous current contract in front, 2 for continuous next contract in front.
adjustment:str-
Adjustment.
Either "splits" (default) or "dividends".
extended_session:bool- Regular session if False, extended session if True.
pro_data:bool- Whether to use pro data.
limit:int- The maximum number of returned items.
delay:float- Time to sleep after each request (in seconds).
retries:int- The number of retries on failure to fetch data.
For defaults, see custom.tv in data.
list_symbols class method¶
TVData.list_symbols(
*,
exchange_pattern=None,
symbol_pattern=None,
use_regex=False,
sort=True,
client=None,
client_config=None,
text=None,
exchange=None,
pages=None,
delay=None,
retries=None,
show_progress=None,
pbar_kwargs=None,
market=None,
markets=None,
fields=None,
filter_by=None,
groups=None,
template_context=None,
return_field_data=False,
**scanner_kwargs
)
List all symbols.
Uses symbol search when either text or exchange is provided (returns a subset of symbols). Otherwise, uses the market scanner (returns all symbols, big payload).
When using the market scanner, use market to filter by one or multiple markets. For the list of available markets, see MARKET_LIST.
Use fields to make the market scanner return additional information that can be used for filtering with filter_by. Such information is passed to the function as a dictionary where fields are keys. The function can also be a template that can use the same information provided as a context, or a list of values that should be matched against the values corresponding to their fields. For the list of available fields, see FIELD_LIST. Argument fields can also be "all". Set return_field_data to True to return a list with (filtered) field data.
Use groups to provide a single dictionary or a list of dictionaries with groups. Each dictionary can be provided either in a compressed format, such as dict(index=index), or in a full format, such as dict(type="index", values=[index]).
Keyword arguments scanner_kwargs are encoded and passed directly to the market scanner.
Uses CustomData.key_match() to check each exchange against exchange_pattern and each symbol against symbol_pattern.
Usage
- List all symbols (market scanner):
- Search for symbols matching a pattern (market scanner, client-side):
- Search for exchanges matching a pattern (market scanner, client-side):
- Search for symbols containing a text (symbol search, server-side):
- List symbols from an exchange (symbol search):
- List symbols from a market (market scanner):
- List index constituents (market scanner):
- Filter symbols by fields using a function (market scanner):
>>> vbt.TVData.list_symbols(
... market="america",
... fields=["sector"],
... filter_by=lambda context: context["sector"] == "Technology Services"
... )
- Filter symbols by fields using a template (market scanner):
>>> vbt.TVData.list_symbols(
... market="america",
... fields=["sector"],
... filter_by=vbt.RepEval("sector == 'Technology Services'")
... )
resolve_client class method¶
Resolve the client.
If provided, must be of the type TVClient. Otherwise, will be created using client_config.