=begin #Intrinio API #Welcome to the Intrinio API! Through our Financial Data Marketplace, we offer a wide selection of financial data feed APIs sourced by our own proprietary processes as well as from many data vendors. For a complete API request / response reference please view the [Intrinio API documentation](https://docs.intrinio.com/documentation/api_v2). If you need additional help in using the API, please visit the [Intrinio website](https://intrinio.com) and click on the chat icon in the lower right corner. OpenAPI spec version: 2.75.0 Generated by: https://github.com/swagger-api/swagger-codegen.git Swagger Codegen version: unset =end require "uri" module Intrinio class TechnicalApi attr_accessor :api_client def initialize(api_client = ApiClient.default) @api_client = api_client end # Accumulation/Distribution Index # The Accumulation / Distribution Indicator is a volume-based technical indicator which uses the relationship between the stock`s price and volume flow to determine the underlying trend of a stock, up, down, or sideways trend of a stock. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityAccumulationDistributionIndex] def get_security_price_technicals_adi(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_adi_with_http_info(identifier, opts) return data end # Accumulation/Distribution Index # The Accumulation / Distribution Indicator is a volume-based technical indicator which uses the relationship between the stock`s price and volume flow to determine the underlying trend of a stock, up, down, or sideways trend of a stock. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityAccumulationDistributionIndex, Fixnum, Hash)>] ApiResponseSecurityAccumulationDistributionIndex data, response status code and response headers def get_security_price_technicals_adi_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_adi ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_adi" end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_adi, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/adi".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityAccumulationDistributionIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_adi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Average Daily Trading Volume # Average Daily Trading Volume is the average number of shares traded over a given period, usually between 20 to 30 trading days. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Average Daily Trading Volume (default to 22) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityAverageDailyTradingVolume] def get_security_price_technicals_adtv(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_adtv_with_http_info(identifier, opts) return data end # Average Daily Trading Volume # Average Daily Trading Volume is the average number of shares traded over a given period, usually between 20 to 30 trading days. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Average Daily Trading Volume # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityAverageDailyTradingVolume, Fixnum, Hash)>] ApiResponseSecurityAverageDailyTradingVolume data, response status code and response headers def get_security_price_technicals_adtv_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_adtv ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_adtv" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 5 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_adtv, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_adtv, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/adtv".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityAverageDailyTradingVolume') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_adtv\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Average Directional Index # The Average Directional Index indicator is often used to identify decreasing or increasing price momentum for an underlying security, it is composed of a total of three indicators, the current trendline (adx), a positive directional indicator (di_pos), and a negative directional indicator (di_neg). # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Average Directional Index (default to 14) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityAverageDirectionalIndex] def get_security_price_technicals_adx(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_adx_with_http_info(identifier, opts) return data end # Average Directional Index # The Average Directional Index indicator is often used to identify decreasing or increasing price momentum for an underlying security, it is composed of a total of three indicators, the current trendline (adx), a positive directional indicator (di_pos), and a negative directional indicator (di_neg). # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Average Directional Index # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityAverageDirectionalIndex, Fixnum, Hash)>] ApiResponseSecurityAverageDirectionalIndex data, response status code and response headers def get_security_price_technicals_adx_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_adx ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_adx" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 3 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_adx, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_adx, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/adx".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityAverageDirectionalIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_adx\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Awesome Oscillator # The Awesome Oscillator (ao) is a momentum indicator and is calculated by taking the difference between the latest 5 period simple moving average and the 34 period simple moving average. Rather than using the closing price like other indicators, the Awesome Oscillator uses the latest period`s midpoint value (period_high - period_low / 2). The Awesome Oscillator is useful in identifying and trading, zero-line crossovers, twin-peaks trading, and bullish/bearish saucers - Awesome Oscillator is often aggregated with additional technical indicators. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :short_period The number of observations, per period, to calculate short period Simple Moving Average of the Awesome Oscillator (default to 5) # @option opts [Integer] :long_period The number of observations, per period, to calculate long period Simple Moving Average of the Awesome Oscillator (default to 34) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityAwesomeOscillator] def get_security_price_technicals_ao(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_ao_with_http_info(identifier, opts) return data end # Awesome Oscillator # The Awesome Oscillator (ao) is a momentum indicator and is calculated by taking the difference between the latest 5 period simple moving average and the 34 period simple moving average. Rather than using the closing price like other indicators, the Awesome Oscillator uses the latest period`s midpoint value (period_high - period_low / 2). The Awesome Oscillator is useful in identifying and trading, zero-line crossovers, twin-peaks trading, and bullish/bearish saucers - Awesome Oscillator is often aggregated with additional technical indicators. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :short_period The number of observations, per period, to calculate short period Simple Moving Average of the Awesome Oscillator # @option opts [Integer] :long_period The number of observations, per period, to calculate long period Simple Moving Average of the Awesome Oscillator # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityAwesomeOscillator, Fixnum, Hash)>] ApiResponseSecurityAwesomeOscillator data, response status code and response headers def get_security_price_technicals_ao_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_ao ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_ao" end if @api_client.config.client_side_validation && !opts[:'long_period'].nil? && opts[:'long_period'] < 5 fail ArgumentError, 'invalid value for "opts[:"long_period"]" when calling TechnicalApi.get_security_price_technicals_ao, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_ao, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/ao".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'short_period'] = opts[:'short_period'] if !opts[:'short_period'].nil? query_params[:'long_period'] = opts[:'long_period'] if !opts[:'long_period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityAwesomeOscillator') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_ao\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Average True Range # The Average True Range (ATR) is a non-directional market volatility indicator often used to generate stop-out or entry indications. An increasing or expanding ATR typically indicates higher volatility, and a decreasing ATR indicates sideways price action and lower volatility. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Average True Range (default to 14) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityAverageTrueRange] def get_security_price_technicals_atr(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_atr_with_http_info(identifier, opts) return data end # Average True Range # The Average True Range (ATR) is a non-directional market volatility indicator often used to generate stop-out or entry indications. An increasing or expanding ATR typically indicates higher volatility, and a decreasing ATR indicates sideways price action and lower volatility. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Average True Range # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityAverageTrueRange, Fixnum, Hash)>] ApiResponseSecurityAverageTrueRange data, response status code and response headers def get_security_price_technicals_atr_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_atr ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_atr" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 4 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_atr, must be greater than or equal to 4.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_atr, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/atr".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityAverageTrueRange') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_atr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Bollinger Bands # Bollinger Bands can be a useful technical analysis tool for generating oversold or overbought indicators. Bollinger Bands are composed of three lines, a simple moving average (middle band) and an upper and lower band – the upper and lower bands are typically 2 standard deviations +/- from a 20-day simple moving average, but can be modified. Traders typically consider an underlying security to be overbought as the underlying`s price moves towards the upper band and oversold as the underlying price moves towards the lower band. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Bollinger Bands (default to 20) # @option opts [Float] :standard_deviations The number of standard deviations to calculate the upper and lower bands of the Bollinger Bands (default to 2.0) # @option opts [String] :price_key The Stock Price field to use when calculating Bollinger Bands (default to close) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityBollingerBands] def get_security_price_technicals_bb(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_bb_with_http_info(identifier, opts) return data end # Bollinger Bands # Bollinger Bands can be a useful technical analysis tool for generating oversold or overbought indicators. Bollinger Bands are composed of three lines, a simple moving average (middle band) and an upper and lower band – the upper and lower bands are typically 2 standard deviations +/- from a 20-day simple moving average, but can be modified. Traders typically consider an underlying security to be overbought as the underlying`s price moves towards the upper band and oversold as the underlying price moves towards the lower band. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Bollinger Bands # @option opts [Float] :standard_deviations The number of standard deviations to calculate the upper and lower bands of the Bollinger Bands # @option opts [String] :price_key The Stock Price field to use when calculating Bollinger Bands # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityBollingerBands, Fixnum, Hash)>] ApiResponseSecurityBollingerBands data, response status code and response headers def get_security_price_technicals_bb_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_bb ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_bb" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 5 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_bb, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && opts[:'price_key'] && !['open', 'high', 'low', 'close', 'volume'].include?(opts[:'price_key']) fail ArgumentError, 'invalid value for "price_key", must be one of open, high, low, close, volume' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_bb, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/bb".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'standard_deviations'] = opts[:'standard_deviations'] if !opts[:'standard_deviations'].nil? query_params[:'price_key'] = opts[:'price_key'] if !opts[:'price_key'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityBollingerBands') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_bb\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Commodity Channel Index # The Commodity Channel Index (CCI) is a technical indicator used to generate buy and sell signals by indicating periods of strength and weakness in the market. CCI signals that fall below -100 are often perceived as weakness in the underlying price movement and CCI signals that rise above 100 indicate strength behind the underlying price movement. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Commodity Channel Index (default to 20) # @option opts [Float] :constant The number of observations, per period, to calculate Commodity Channel Index (default to 0.015) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityCommodityChannelIndex] def get_security_price_technicals_cci(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_cci_with_http_info(identifier, opts) return data end # Commodity Channel Index # The Commodity Channel Index (CCI) is a technical indicator used to generate buy and sell signals by indicating periods of strength and weakness in the market. CCI signals that fall below -100 are often perceived as weakness in the underlying price movement and CCI signals that rise above 100 indicate strength behind the underlying price movement. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Commodity Channel Index # @option opts [Float] :constant The number of observations, per period, to calculate Commodity Channel Index # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityCommodityChannelIndex, Fixnum, Hash)>] ApiResponseSecurityCommodityChannelIndex data, response status code and response headers def get_security_price_technicals_cci_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_cci ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_cci" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 5 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_cci, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_cci, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/cci".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'constant'] = opts[:'constant'] if !opts[:'constant'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityCommodityChannelIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_cci\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Chaikin Money Flow # The Chaikin Money Flow (CMF) utilizes exponential moving averages as an indicator to monitor the flow of money and momentum. The CMF indicator oscillates around a midrange 0-line and ranges between 100 and -100. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Chaikin Money Flow (default to 20) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityChaikinMoneyFlow] def get_security_price_technicals_cmf(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_cmf_with_http_info(identifier, opts) return data end # Chaikin Money Flow # The Chaikin Money Flow (CMF) utilizes exponential moving averages as an indicator to monitor the flow of money and momentum. The CMF indicator oscillates around a midrange 0-line and ranges between 100 and -100. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Chaikin Money Flow # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityChaikinMoneyFlow, Fixnum, Hash)>] ApiResponseSecurityChaikinMoneyFlow data, response status code and response headers def get_security_price_technicals_cmf_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_cmf ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_cmf" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 5 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_cmf, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_cmf, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/cmf".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityChaikinMoneyFlow') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_cmf\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Donchian Channel # The Donchian Channel consists of an Upper Bound (upper_bound) and Lower Bound (lower_bound) that track the recent highs and lows and is often used to signal entry and exit points for a position. As the price of the underlying symbol increases the Upper Bound raises, if the price becomes range bound the Upper Bound will remain flat and if the price begins to decrease, the Upper Bound will fall (and vice-versa for the Lower Bound). # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Donchian Channel (default to 20) # @option opts [String] :price_key The Stock Price field to use when calculating Donchian Channel (default to close) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityDonchianChannel] def get_security_price_technicals_dc(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_dc_with_http_info(identifier, opts) return data end # Donchian Channel # The Donchian Channel consists of an Upper Bound (upper_bound) and Lower Bound (lower_bound) that track the recent highs and lows and is often used to signal entry and exit points for a position. As the price of the underlying symbol increases the Upper Bound raises, if the price becomes range bound the Upper Bound will remain flat and if the price begins to decrease, the Upper Bound will fall (and vice-versa for the Lower Bound). # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Donchian Channel # @option opts [String] :price_key The Stock Price field to use when calculating Donchian Channel # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityDonchianChannel, Fixnum, Hash)>] ApiResponseSecurityDonchianChannel data, response status code and response headers def get_security_price_technicals_dc_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_dc ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_dc" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 5 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_dc, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && opts[:'price_key'] && !['open', 'high', 'low', 'close', 'volume'].include?(opts[:'price_key']) fail ArgumentError, 'invalid value for "price_key", must be one of open, high, low, close, volume' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_dc, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/dc".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'price_key'] = opts[:'price_key'] if !opts[:'price_key'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityDonchianChannel') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_dc\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Detrended Price Oscillator # The Detrended Price Oscillator (DPO) signals the peaks and troughs of the underlying symbol’s price for a set period of time and is often used by traders to estimate future peaks and troughs using this as guidance to enter or exit a position. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Detrended Price Oscillator (default to 20) # @option opts [String] :price_key The Stock Price field to use when calculating Detrended Price Oscillator (default to close) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityDetrendedPriceOscillator] def get_security_price_technicals_dpo(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_dpo_with_http_info(identifier, opts) return data end # Detrended Price Oscillator # The Detrended Price Oscillator (DPO) signals the peaks and troughs of the underlying symbol’s price for a set period of time and is often used by traders to estimate future peaks and troughs using this as guidance to enter or exit a position. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Detrended Price Oscillator # @option opts [String] :price_key The Stock Price field to use when calculating Detrended Price Oscillator # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityDetrendedPriceOscillator, Fixnum, Hash)>] ApiResponseSecurityDetrendedPriceOscillator data, response status code and response headers def get_security_price_technicals_dpo_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_dpo ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_dpo" end if @api_client.config.client_side_validation && opts[:'price_key'] && !['open', 'high', 'low', 'close', 'volume'].include?(opts[:'price_key']) fail ArgumentError, 'invalid value for "price_key", must be one of open, high, low, close, volume' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_dpo, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/dpo".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'price_key'] = opts[:'price_key'] if !opts[:'price_key'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityDetrendedPriceOscillator') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_dpo\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Ease of Movement # The Ease of Movement (EOM) is a volume based oscillator that fluctuates around a midrange 0-line into positive and negative values. Positive values indicate that the underlying symbol`s price is rising with relative ease and negative value indicates the underlying symbol`s price is failing with relative ease. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Ease of Movement (default to 20) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityEaseOfMovement] def get_security_price_technicals_eom(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_eom_with_http_info(identifier, opts) return data end # Ease of Movement # The Ease of Movement (EOM) is a volume based oscillator that fluctuates around a midrange 0-line into positive and negative values. Positive values indicate that the underlying symbol`s price is rising with relative ease and negative value indicates the underlying symbol`s price is failing with relative ease. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Ease of Movement # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityEaseOfMovement, Fixnum, Hash)>] ApiResponseSecurityEaseOfMovement data, response status code and response headers def get_security_price_technicals_eom_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_eom ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_eom" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 4 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_eom, must be greater than or equal to 4.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_eom, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/eom".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityEaseOfMovement') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_eom\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Force Index # The Force Index (FI) is an oscillator that takes into account the intensity of an underlying symbol`s price movement and its corresponding volume. It is used to confirm price breakouts and signal underlying trends. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityForceIndex] def get_security_price_technicals_fi(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_fi_with_http_info(identifier, opts) return data end # Force Index # The Force Index (FI) is an oscillator that takes into account the intensity of an underlying symbol`s price movement and its corresponding volume. It is used to confirm price breakouts and signal underlying trends. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityForceIndex, Fixnum, Hash)>] ApiResponseSecurityForceIndex data, response status code and response headers def get_security_price_technicals_fi_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_fi ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_fi" end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_fi, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/fi".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityForceIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_fi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Ichimoku Kinko Hyo # The Ichimoku Kinko Hyo was designed to be an all-in-one trading indicator that could help traders determine momentum, support, and resistance. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :low_period The number of observations, per period, to calculate Tenkan Sen (Conversion Line) of Ichimoku Kinko Hyo (default to 9) # @option opts [Integer] :medium_period The number of observations, per period, to calculate Kijun Sen (Base Line), Senkou Span A (Leading Span A), and Chikou Span (Lagging Span) of Ichimoku Kinko Hyo (default to 26) # @option opts [Integer] :high_period The number of observations, per period, to calculate Senkou Span B (Leading Span B) of Ichimoku Kinko Hyo (default to 52) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityIchimokuKinkoHyo] def get_security_price_technicals_ichimoku(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_ichimoku_with_http_info(identifier, opts) return data end # Ichimoku Kinko Hyo # The Ichimoku Kinko Hyo was designed to be an all-in-one trading indicator that could help traders determine momentum, support, and resistance. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :low_period The number of observations, per period, to calculate Tenkan Sen (Conversion Line) of Ichimoku Kinko Hyo # @option opts [Integer] :medium_period The number of observations, per period, to calculate Kijun Sen (Base Line), Senkou Span A (Leading Span A), and Chikou Span (Lagging Span) of Ichimoku Kinko Hyo # @option opts [Integer] :high_period The number of observations, per period, to calculate Senkou Span B (Leading Span B) of Ichimoku Kinko Hyo # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityIchimokuKinkoHyo, Fixnum, Hash)>] ApiResponseSecurityIchimokuKinkoHyo data, response status code and response headers def get_security_price_technicals_ichimoku_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_ichimoku ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_ichimoku" end if @api_client.config.client_side_validation && !opts[:'medium_period'].nil? && opts[:'medium_period'] < 2 fail ArgumentError, 'invalid value for "opts[:"medium_period"]" when calling TechnicalApi.get_security_price_technicals_ichimoku, must be greater than or equal to 2.' end if @api_client.config.client_side_validation && !opts[:'high_period'].nil? && opts[:'high_period'] < 4 fail ArgumentError, 'invalid value for "opts[:"high_period"]" when calling TechnicalApi.get_security_price_technicals_ichimoku, must be greater than or equal to 4.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_ichimoku, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/ichimoku".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'low_period'] = opts[:'low_period'] if !opts[:'low_period'].nil? query_params[:'medium_period'] = opts[:'medium_period'] if !opts[:'medium_period'].nil? query_params[:'high_period'] = opts[:'high_period'] if !opts[:'high_period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityIchimokuKinkoHyo') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_ichimoku\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Keltner Channel # The Keltner Channel is a volatility based signal, with upper, middle, and lower bands. It is often used at market open, when the largest moves tend to occur. In general, traders tend to buy if the price breaks up above the upper band or sell short if the price drops below the lower band. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Kelter Channel (default to 10) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityKeltnerChannel] def get_security_price_technicals_kc(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_kc_with_http_info(identifier, opts) return data end # Keltner Channel # The Keltner Channel is a volatility based signal, with upper, middle, and lower bands. It is often used at market open, when the largest moves tend to occur. In general, traders tend to buy if the price breaks up above the upper band or sell short if the price drops below the lower band. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Kelter Channel # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityKeltnerChannel, Fixnum, Hash)>] ApiResponseSecurityKeltnerChannel data, response status code and response headers def get_security_price_technicals_kc_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_kc ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_kc" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 5 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_kc, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_kc, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/kc".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityKeltnerChannel') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_kc\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Know Sure Thing # The Know Sure Thing indicator (KST) is a momentum based oscillator that is calculated by measuring the momentum of four separate price cycles. KST fluctuates above and below a zero line and is used to identify overbought and oversold conditions, and is often used with additional indicators to boost signal strength. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :roc1 The number of observations, per period, to calculate the rate-of-change for RCMA1 (default to 10) # @option opts [Integer] :roc2 The number of observations, per period, to calculate the rate-of-change for RCMA2 (default to 15) # @option opts [Integer] :roc3 The number of observations, per period, to calculate the rate-of-change for RCMA3 (default to 20) # @option opts [Integer] :roc4 The number of observations, per period, to calculate the rate-of-change for RCMA4 (default to 30) # @option opts [Integer] :sma1 The number of observations, per period, to calculate the Simple Moving Average of the rate-of-change for RCMA1 (default to 10) # @option opts [Integer] :sma2 The number of observations, per period, to calculate the Simple Moving Average of the rate-of-change for RCMA2 (default to 10) # @option opts [Integer] :sma3 The number of observations, per period, to calculate the Simple Moving Average of the rate-of-change for RCMA3 (default to 10) # @option opts [Integer] :sma4 The number of observations, per period, to calculate the Simple Moving Average of the rate-of-change for RCMA4 (default to 15) # @option opts [String] :price_key The Stock Price field to use when calculating Know Sure Thing (default to close) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityKnowSureThing] def get_security_price_technicals_kst(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_kst_with_http_info(identifier, opts) return data end # Know Sure Thing # The Know Sure Thing indicator (KST) is a momentum based oscillator that is calculated by measuring the momentum of four separate price cycles. KST fluctuates above and below a zero line and is used to identify overbought and oversold conditions, and is often used with additional indicators to boost signal strength. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :roc1 The number of observations, per period, to calculate the rate-of-change for RCMA1 # @option opts [Integer] :roc2 The number of observations, per period, to calculate the rate-of-change for RCMA2 # @option opts [Integer] :roc3 The number of observations, per period, to calculate the rate-of-change for RCMA3 # @option opts [Integer] :roc4 The number of observations, per period, to calculate the rate-of-change for RCMA4 # @option opts [Integer] :sma1 The number of observations, per period, to calculate the Simple Moving Average of the rate-of-change for RCMA1 # @option opts [Integer] :sma2 The number of observations, per period, to calculate the Simple Moving Average of the rate-of-change for RCMA2 # @option opts [Integer] :sma3 The number of observations, per period, to calculate the Simple Moving Average of the rate-of-change for RCMA3 # @option opts [Integer] :sma4 The number of observations, per period, to calculate the Simple Moving Average of the rate-of-change for RCMA4 # @option opts [String] :price_key The Stock Price field to use when calculating Know Sure Thing # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityKnowSureThing, Fixnum, Hash)>] ApiResponseSecurityKnowSureThing data, response status code and response headers def get_security_price_technicals_kst_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_kst ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_kst" end if @api_client.config.client_side_validation && !opts[:'roc4'].nil? && opts[:'roc4'] < 3 fail ArgumentError, 'invalid value for "opts[:"roc4"]" when calling TechnicalApi.get_security_price_technicals_kst, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && !opts[:'sma4'].nil? && opts[:'sma4'] < 3 fail ArgumentError, 'invalid value for "opts[:"sma4"]" when calling TechnicalApi.get_security_price_technicals_kst, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && opts[:'price_key'] && !['open', 'high', 'low', 'close', 'volume'].include?(opts[:'price_key']) fail ArgumentError, 'invalid value for "price_key", must be one of open, high, low, close, volume' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_kst, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/kst".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'roc1'] = opts[:'roc1'] if !opts[:'roc1'].nil? query_params[:'roc2'] = opts[:'roc2'] if !opts[:'roc2'].nil? query_params[:'roc3'] = opts[:'roc3'] if !opts[:'roc3'].nil? query_params[:'roc4'] = opts[:'roc4'] if !opts[:'roc4'].nil? query_params[:'sma1'] = opts[:'sma1'] if !opts[:'sma1'].nil? query_params[:'sma2'] = opts[:'sma2'] if !opts[:'sma2'].nil? query_params[:'sma3'] = opts[:'sma3'] if !opts[:'sma3'].nil? query_params[:'sma4'] = opts[:'sma4'] if !opts[:'sma4'].nil? query_params[:'price_key'] = opts[:'price_key'] if !opts[:'price_key'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityKnowSureThing') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_kst\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Moving Average Convergence Divergence # Moving average convergence divergence (MACD) is a trend-following momentum oscillator that consists of three indicators: (1) a 12 period short-term exponential moving average (EMA) a 26 period long-term EMA and a 9 period EMA signal line. Traders using MACD often look for signal line crossovers, centerline crossovers, and EMA divergences to indicate the momentum and underlying trend of a security`s price. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :fast_period The number of observations, per period, to calculate the fast moving Exponential Moving Average for Moving Average Convergence Divergence (default to 12) # @option opts [Integer] :slow_period The number of observations, per period, to calculate the slow moving Exponential Moving Average for Moving Average Convergence Divergence (default to 26) # @option opts [Integer] :signal_period The number of observations, per period, to calculate the signal line for Moving Average Convergence Divergence (default to 9) # @option opts [String] :price_key The Stock Price field to use when calculating Moving Average Convergence Divergence (default to close) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityMovingAverageConvergenceDivergence] def get_security_price_technicals_macd(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_macd_with_http_info(identifier, opts) return data end # Moving Average Convergence Divergence # Moving average convergence divergence (MACD) is a trend-following momentum oscillator that consists of three indicators: (1) a 12 period short-term exponential moving average (EMA) a 26 period long-term EMA and a 9 period EMA signal line. Traders using MACD often look for signal line crossovers, centerline crossovers, and EMA divergences to indicate the momentum and underlying trend of a security`s price. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :fast_period The number of observations, per period, to calculate the fast moving Exponential Moving Average for Moving Average Convergence Divergence # @option opts [Integer] :slow_period The number of observations, per period, to calculate the slow moving Exponential Moving Average for Moving Average Convergence Divergence # @option opts [Integer] :signal_period The number of observations, per period, to calculate the signal line for Moving Average Convergence Divergence # @option opts [String] :price_key The Stock Price field to use when calculating Moving Average Convergence Divergence # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityMovingAverageConvergenceDivergence, Fixnum, Hash)>] ApiResponseSecurityMovingAverageConvergenceDivergence data, response status code and response headers def get_security_price_technicals_macd_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_macd ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_macd" end if @api_client.config.client_side_validation && !opts[:'slow_period'].nil? && opts[:'slow_period'] < 3 fail ArgumentError, 'invalid value for "opts[:"slow_period"]" when calling TechnicalApi.get_security_price_technicals_macd, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && !opts[:'signal_period'].nil? && opts[:'signal_period'] < 3 fail ArgumentError, 'invalid value for "opts[:"signal_period"]" when calling TechnicalApi.get_security_price_technicals_macd, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && opts[:'price_key'] && !['open', 'high', 'low', 'close', 'volume'].include?(opts[:'price_key']) fail ArgumentError, 'invalid value for "price_key", must be one of open, high, low, close, volume' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_macd, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/macd".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'fast_period'] = opts[:'fast_period'] if !opts[:'fast_period'].nil? query_params[:'slow_period'] = opts[:'slow_period'] if !opts[:'slow_period'].nil? query_params[:'signal_period'] = opts[:'signal_period'] if !opts[:'signal_period'].nil? query_params[:'price_key'] = opts[:'price_key'] if !opts[:'price_key'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityMovingAverageConvergenceDivergence') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_macd\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Money Flow Index # The Money Flow Index (MFI) is a technical oscillator that incorporates both price and volume, moving between 0 and 100. Traders often consider a MFI above 80 as overbought conditions and below 20 as oversold conditions. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Money Flow Index (default to 14) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityMoneyFlowIndex] def get_security_price_technicals_mfi(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_mfi_with_http_info(identifier, opts) return data end # Money Flow Index # The Money Flow Index (MFI) is a technical oscillator that incorporates both price and volume, moving between 0 and 100. Traders often consider a MFI above 80 as overbought conditions and below 20 as oversold conditions. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Money Flow Index # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityMoneyFlowIndex, Fixnum, Hash)>] ApiResponseSecurityMoneyFlowIndex data, response status code and response headers def get_security_price_technicals_mfi_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_mfi ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_mfi" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 4 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_mfi, must be greater than or equal to 4.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_mfi, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/mfi".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityMoneyFlowIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_mfi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Mass Index # The mass index (MI) is a technical indicator used by traders to predict trend reversals. A trend reversal signal is said to occur when the 25-day MI reaches 27.0 and then falls below 26.0. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :ema_period The number of observations, per period, to calculate the single Exponential Moving Average and the Double Exponential Moving Average for Mass Index (default to 9) # @option opts [Integer] :sum_period The number of observations, per period, to calculate the sum of the Exponetinal Moving Average Ratios for Mass Index (default to 25) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityMassIndex] def get_security_price_technicals_mi(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_mi_with_http_info(identifier, opts) return data end # Mass Index # The mass index (MI) is a technical indicator used by traders to predict trend reversals. A trend reversal signal is said to occur when the 25-day MI reaches 27.0 and then falls below 26.0. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :ema_period The number of observations, per period, to calculate the single Exponential Moving Average and the Double Exponential Moving Average for Mass Index # @option opts [Integer] :sum_period The number of observations, per period, to calculate the sum of the Exponetinal Moving Average Ratios for Mass Index # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityMassIndex, Fixnum, Hash)>] ApiResponseSecurityMassIndex data, response status code and response headers def get_security_price_technicals_mi_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_mi ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_mi" end if @api_client.config.client_side_validation && !opts[:'ema_period'].nil? && opts[:'ema_period'] < 2 fail ArgumentError, 'invalid value for "opts[:"ema_period"]" when calling TechnicalApi.get_security_price_technicals_mi, must be greater than or equal to 2.' end if @api_client.config.client_side_validation && !opts[:'sum_period'].nil? && opts[:'sum_period'] < 3 fail ArgumentError, 'invalid value for "opts[:"sum_period"]" when calling TechnicalApi.get_security_price_technicals_mi, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_mi, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/mi".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'ema_period'] = opts[:'ema_period'] if !opts[:'ema_period'].nil? query_params[:'sum_period'] = opts[:'sum_period'] if !opts[:'sum_period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityMassIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_mi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Negative Volume Index # The negative volume index (NVI) is often referred to as the `smart money indicator.` It works by the assumption that smart money (institutional money) is at work when volume decreases and vice versa when volume increases. NVI starts at 1000 and increases in regard to the percentage price change when volume decreases over a 255-day EMA period. Traders often use this technical indicator when researching broder markets and indices. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityNegativeVolumeIndex] def get_security_price_technicals_nvi(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_nvi_with_http_info(identifier, opts) return data end # Negative Volume Index # The negative volume index (NVI) is often referred to as the `smart money indicator.` It works by the assumption that smart money (institutional money) is at work when volume decreases and vice versa when volume increases. NVI starts at 1000 and increases in regard to the percentage price change when volume decreases over a 255-day EMA period. Traders often use this technical indicator when researching broder markets and indices. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityNegativeVolumeIndex, Fixnum, Hash)>] ApiResponseSecurityNegativeVolumeIndex data, response status code and response headers def get_security_price_technicals_nvi_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_nvi ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_nvi" end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_nvi, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/nvi".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityNegativeVolumeIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_nvi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # On-balance Volume # On-balance volume (OBV) is a leading momentum indicator that uses the increase/decrease flow in volume to predict upcoming stock price changes. When both OBV and a security`s price are making higher highs, it is presumed the upward trend is likely to continue and vice versa. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityOnBalanceVolume] def get_security_price_technicals_obv(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_obv_with_http_info(identifier, opts) return data end # On-balance Volume # On-balance volume (OBV) is a leading momentum indicator that uses the increase/decrease flow in volume to predict upcoming stock price changes. When both OBV and a security`s price are making higher highs, it is presumed the upward trend is likely to continue and vice versa. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityOnBalanceVolume, Fixnum, Hash)>] ApiResponseSecurityOnBalanceVolume data, response status code and response headers def get_security_price_technicals_obv_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_obv ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_obv" end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_obv, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/obv".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityOnBalanceVolume') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_obv\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # On-balance Volume Mean # On-balance volume mean (OBVM) is a leading momentum indicator that uses the increase/decrease flow in volume to predict upcoming stock price changes. The difference between OBV and OBVM is that OBVM takes the mean average of a provided period. When both OBVM and a security`s price are making higher highs, it is presumed the upward trend is likely to continue and vice versa. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate On-balance Volume Mean (default to 10) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityOnBalanceVolumeMean] def get_security_price_technicals_obv_mean(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_obv_mean_with_http_info(identifier, opts) return data end # On-balance Volume Mean # On-balance volume mean (OBVM) is a leading momentum indicator that uses the increase/decrease flow in volume to predict upcoming stock price changes. The difference between OBV and OBVM is that OBVM takes the mean average of a provided period. When both OBVM and a security`s price are making higher highs, it is presumed the upward trend is likely to continue and vice versa. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate On-balance Volume Mean # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityOnBalanceVolumeMean, Fixnum, Hash)>] ApiResponseSecurityOnBalanceVolumeMean data, response status code and response headers def get_security_price_technicals_obv_mean_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_obv_mean ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_obv_mean" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 4 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_obv_mean, must be greater than or equal to 4.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_obv_mean, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/obv_mean".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityOnBalanceVolumeMean') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_obv_mean\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Relative Strength Index # Relative strength index (RSI) is a momentum oscillator that ranges between 0 and 100. Traders believe that an RSI value over 70 indicates that a security is overbought and an RSI under 30 indicates that a security is oversold. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Relative Strength Index (default to 14) # @option opts [String] :price_key The Stock Price field to use when calculating Relative Strength Index (default to close) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityRelativeStrengthIndex] def get_security_price_technicals_rsi(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_rsi_with_http_info(identifier, opts) return data end # Relative Strength Index # Relative strength index (RSI) is a momentum oscillator that ranges between 0 and 100. Traders believe that an RSI value over 70 indicates that a security is overbought and an RSI under 30 indicates that a security is oversold. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Relative Strength Index # @option opts [String] :price_key The Stock Price field to use when calculating Relative Strength Index # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityRelativeStrengthIndex, Fixnum, Hash)>] ApiResponseSecurityRelativeStrengthIndex data, response status code and response headers def get_security_price_technicals_rsi_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_rsi ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_rsi" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 4 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_rsi, must be greater than or equal to 4.' end if @api_client.config.client_side_validation && opts[:'price_key'] && !['open', 'high', 'low', 'close', 'volume'].include?(opts[:'price_key']) fail ArgumentError, 'invalid value for "price_key", must be one of open, high, low, close, volume' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_rsi, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/rsi".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'price_key'] = opts[:'price_key'] if !opts[:'price_key'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityRelativeStrengthIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_rsi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Simple Moving Average # A simple moving average (SMA) adds recent prices for a specified period and divides the total by that same number of periods. SMA is typically used to indicate whether a security is in an uptrend or downtrend and can also be combined with a long-term moving average to improve the signal`s abilities. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Simple Moving Average (default to 20) # @option opts [String] :price_key The Stock Price field to use when calculating Simple Moving Average (default to close) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecuritySimpleMovingAverage] def get_security_price_technicals_sma(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_sma_with_http_info(identifier, opts) return data end # Simple Moving Average # A simple moving average (SMA) adds recent prices for a specified period and divides the total by that same number of periods. SMA is typically used to indicate whether a security is in an uptrend or downtrend and can also be combined with a long-term moving average to improve the signal`s abilities. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Simple Moving Average # @option opts [String] :price_key The Stock Price field to use when calculating Simple Moving Average # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecuritySimpleMovingAverage, Fixnum, Hash)>] ApiResponseSecuritySimpleMovingAverage data, response status code and response headers def get_security_price_technicals_sma_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_sma ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_sma" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 5 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_sma, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && opts[:'price_key'] && !['open', 'high', 'low', 'close', 'volume'].include?(opts[:'price_key']) fail ArgumentError, 'invalid value for "price_key", must be one of open, high, low, close, volume' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_sma, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/sma".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'price_key'] = opts[:'price_key'] if !opts[:'price_key'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecuritySimpleMovingAverage') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_sma\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Stochastic Oscillator # The Stochastic Oscillator (SO) is a range-bound momentum indicator that ranges from 0 to 100 and follows the velocity of the momentum itself, not the underlying price or volume. When SO is above 80 it indicates that a security is trading at the high end of its period`s high-low range and vice versa if the reading is below 20. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate %K of Stochastic Oscillator (default to 14) # @option opts [Integer] :signal_period The number of observations, per period, to calculate the %D (the Simple Moving Average of %K) as a signal line for Stochastic Oscillator (default to 3) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityStochasticOscillator] def get_security_price_technicals_sr(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_sr_with_http_info(identifier, opts) return data end # Stochastic Oscillator # The Stochastic Oscillator (SO) is a range-bound momentum indicator that ranges from 0 to 100 and follows the velocity of the momentum itself, not the underlying price or volume. When SO is above 80 it indicates that a security is trading at the high end of its period`s high-low range and vice versa if the reading is below 20. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate %K of Stochastic Oscillator # @option opts [Integer] :signal_period The number of observations, per period, to calculate the %D (the Simple Moving Average of %K) as a signal line for Stochastic Oscillator # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityStochasticOscillator, Fixnum, Hash)>] ApiResponseSecurityStochasticOscillator data, response status code and response headers def get_security_price_technicals_sr_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_sr ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_sr" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 3 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_sr, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && !opts[:'signal_period'].nil? && opts[:'signal_period'] < 3 fail ArgumentError, 'invalid value for "opts[:"signal_period"]" when calling TechnicalApi.get_security_price_technicals_sr, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_sr, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/sr".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'signal_period'] = opts[:'signal_period'] if !opts[:'signal_period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityStochasticOscillator') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_sr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Triple Exponential Average # The Triple Exponential Average (TEA) is a momentum indicator used to identify when a security is oversold and overbought. By exponentially smoothing out the underlying security`s moving average, the TEA filters out insignificant price movements. A positive TEA is often believed to indicate momentum is increasing and a negative TEA indicates that momentum is decreasing. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Exponential Moving Average for Triple Exponential Average (default to 15) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityTripleExponentialAverage] def get_security_price_technicals_trix(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_trix_with_http_info(identifier, opts) return data end # Triple Exponential Average # The Triple Exponential Average (TEA) is a momentum indicator used to identify when a security is oversold and overbought. By exponentially smoothing out the underlying security`s moving average, the TEA filters out insignificant price movements. A positive TEA is often believed to indicate momentum is increasing and a negative TEA indicates that momentum is decreasing. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Exponential Moving Average for Triple Exponential Average # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityTripleExponentialAverage, Fixnum, Hash)>] ApiResponseSecurityTripleExponentialAverage data, response status code and response headers def get_security_price_technicals_trix_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_trix ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_trix" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 2 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_trix, must be greater than or equal to 2.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_trix, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/trix".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityTripleExponentialAverage') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_trix\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # True Strength Index # The True Strength Index (TSI) is a momentum oscillator used to identify building trends and trend reversals, typically by signalling overbought and oversold conditions. TSI fluctuates between positive and negative values, and traders typically combine its signal with other momentum oscillators to increase its strength. When TSI crosses the signal line into positive territory it is presumed to be an entrance opportunity and vice versa when the TSI crosses into negative territory. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :low_period The number of observations, per period, to calculate low period Exponential Moving Average for smoothing in True Strength Index (default to 13) # @option opts [Integer] :high_period The number of observations, per period, to calculate high period Exponential Moving Average for smoothing in True Strength Index (default to 25) # @option opts [String] :price_key The Stock Price field to use when calculating True Strength Index (default to close) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityTrueStrengthIndex] def get_security_price_technicals_tsi(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_tsi_with_http_info(identifier, opts) return data end # True Strength Index # The True Strength Index (TSI) is a momentum oscillator used to identify building trends and trend reversals, typically by signalling overbought and oversold conditions. TSI fluctuates between positive and negative values, and traders typically combine its signal with other momentum oscillators to increase its strength. When TSI crosses the signal line into positive territory it is presumed to be an entrance opportunity and vice versa when the TSI crosses into negative territory. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :low_period The number of observations, per period, to calculate low period Exponential Moving Average for smoothing in True Strength Index # @option opts [Integer] :high_period The number of observations, per period, to calculate high period Exponential Moving Average for smoothing in True Strength Index # @option opts [String] :price_key The Stock Price field to use when calculating True Strength Index # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityTrueStrengthIndex, Fixnum, Hash)>] ApiResponseSecurityTrueStrengthIndex data, response status code and response headers def get_security_price_technicals_tsi_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_tsi ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_tsi" end if @api_client.config.client_side_validation && !opts[:'low_period'].nil? && opts[:'low_period'] < 3 fail ArgumentError, 'invalid value for "opts[:"low_period"]" when calling TechnicalApi.get_security_price_technicals_tsi, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && !opts[:'high_period'].nil? && opts[:'high_period'] < 3 fail ArgumentError, 'invalid value for "opts[:"high_period"]" when calling TechnicalApi.get_security_price_technicals_tsi, must be greater than or equal to 3.' end if @api_client.config.client_side_validation && opts[:'price_key'] && !['open', 'high', 'low', 'close', 'volume'].include?(opts[:'price_key']) fail ArgumentError, 'invalid value for "price_key", must be one of open, high, low, close, volume' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_tsi, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/tsi".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'low_period'] = opts[:'low_period'] if !opts[:'low_period'].nil? query_params[:'high_period'] = opts[:'high_period'] if !opts[:'high_period'].nil? query_params[:'price_key'] = opts[:'price_key'] if !opts[:'price_key'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityTrueStrengthIndex') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_tsi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Ultimate Oscillator # The Ultimate Oscillator (UO) is a range bound technical indicator that moves between 0 and 100 and is calculated with 3 timeframes, typically 7, 14, and 28 day periods. When UO`s value is above 70 a security is categorized as overbought and when UO`s value is below 30 a security is categorized as oversold. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :short_period The number of observations, per period, to calculate the short period for Ultimate Oscillator (default to 7) # @option opts [Integer] :medium_period The number of observations, per period, to calculate the medium period for Ultimate Oscillator (default to 14) # @option opts [Integer] :long_period The number of observations, per period, to calculate the long period for Ultimate Oscillator (default to 28) # @option opts [Float] :short_weight The weight of short Buying Pressure average for Ultimate Oscillator (default to 4.0) # @option opts [Float] :medium_weight The weight of medium Buying Pressure average for Ultimate Oscillator (default to 2.0) # @option opts [Float] :long_weight The weight of long Buying Pressure average for Ultimate Oscillator (default to 1.0) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityUltimateOscillator] def get_security_price_technicals_uo(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_uo_with_http_info(identifier, opts) return data end # Ultimate Oscillator # The Ultimate Oscillator (UO) is a range bound technical indicator that moves between 0 and 100 and is calculated with 3 timeframes, typically 7, 14, and 28 day periods. When UO`s value is above 70 a security is categorized as overbought and when UO`s value is below 30 a security is categorized as oversold. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :short_period The number of observations, per period, to calculate the short period for Ultimate Oscillator # @option opts [Integer] :medium_period The number of observations, per period, to calculate the medium period for Ultimate Oscillator # @option opts [Integer] :long_period The number of observations, per period, to calculate the long period for Ultimate Oscillator # @option opts [Float] :short_weight The weight of short Buying Pressure average for Ultimate Oscillator # @option opts [Float] :medium_weight The weight of medium Buying Pressure average for Ultimate Oscillator # @option opts [Float] :long_weight The weight of long Buying Pressure average for Ultimate Oscillator # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityUltimateOscillator, Fixnum, Hash)>] ApiResponseSecurityUltimateOscillator data, response status code and response headers def get_security_price_technicals_uo_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_uo ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_uo" end if @api_client.config.client_side_validation && !opts[:'long_period'].nil? && opts[:'long_period'] < 4 fail ArgumentError, 'invalid value for "opts[:"long_period"]" when calling TechnicalApi.get_security_price_technicals_uo, must be greater than or equal to 4.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_uo, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/uo".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'short_period'] = opts[:'short_period'] if !opts[:'short_period'].nil? query_params[:'medium_period'] = opts[:'medium_period'] if !opts[:'medium_period'].nil? query_params[:'long_period'] = opts[:'long_period'] if !opts[:'long_period'].nil? query_params[:'short_weight'] = opts[:'short_weight'] if !opts[:'short_weight'].nil? query_params[:'medium_weight'] = opts[:'medium_weight'] if !opts[:'medium_weight'].nil? query_params[:'long_weight'] = opts[:'long_weight'] if !opts[:'long_weight'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityUltimateOscillator') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_uo\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Vortex Indicator # The Vortex Indicator (VI) is composed of an uptrend line (VI+) and a downtrend line (VI-). When VI+ crosses VI- from below it typically indicates an entry into a given security. When VI- crosses VI+ from below it typically triggers an exit and that the current trend is reversing course. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Vortex Indicator (default to 14) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityVortexIndicator] def get_security_price_technicals_vi(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_vi_with_http_info(identifier, opts) return data end # Vortex Indicator # The Vortex Indicator (VI) is composed of an uptrend line (VI+) and a downtrend line (VI-). When VI+ crosses VI- from below it typically indicates an entry into a given security. When VI- crosses VI+ from below it typically triggers an exit and that the current trend is reversing course. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to calculate Vortex Indicator # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityVortexIndicator, Fixnum, Hash)>] ApiResponseSecurityVortexIndicator data, response status code and response headers def get_security_price_technicals_vi_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_vi ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_vi" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 4 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_vi, must be greater than or equal to 4.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_vi, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/vi".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityVortexIndicator') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_vi\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Volume-price Trend # The volume price trend (VPT) is a technical indicator that uses price & volume to determine whether a trend is established. Typically, when a security is trending upwards, there is more volume on positive days than negative ones, and as a result VPT should be increasing on these days as well. However, if VPT fails to increase past its previous high during an outbreak, this is suggested to indicate the rally is losing strength. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityVolumePriceTrend] def get_security_price_technicals_vpt(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_vpt_with_http_info(identifier, opts) return data end # Volume-price Trend # The volume price trend (VPT) is a technical indicator that uses price & volume to determine whether a trend is established. Typically, when a security is trending upwards, there is more volume on positive days than negative ones, and as a result VPT should be increasing on these days as well. However, if VPT fails to increase past its previous high during an outbreak, this is suggested to indicate the rally is losing strength. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityVolumePriceTrend, Fixnum, Hash)>] ApiResponseSecurityVolumePriceTrend data, response status code and response headers def get_security_price_technicals_vpt_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_vpt ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_vpt" end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_vpt, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/vpt".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityVolumePriceTrend') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_vpt\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Volume Weighted Average Price # Volume Weighted Average Price (VWAP) is a lagging technical indicator that is used in combination with a security`s price. When the underlying price rises above its VWAP, it is often interpreted as a bullish signal, and vice versa in the opposite direction. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityVolumeWeightedAveragePrice] def get_security_price_technicals_vwap(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_vwap_with_http_info(identifier, opts) return data end # Volume Weighted Average Price # Volume Weighted Average Price (VWAP) is a lagging technical indicator that is used in combination with a security`s price. When the underlying price rises above its VWAP, it is often interpreted as a bullish signal, and vice versa in the opposite direction. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Integer] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityVolumeWeightedAveragePrice, Fixnum, Hash)>] ApiResponseSecurityVolumeWeightedAveragePrice data, response status code and response headers def get_security_price_technicals_vwap_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_vwap ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_vwap" end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_vwap, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/vwap".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityVolumeWeightedAveragePrice') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_vwap\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end # Williams %R # Williams %R is a momentum indicator used to determine overbought and oversold environments for a security and fluctuates between 0 and -100. When Williams %R is above -20 the security is considered to be overbought and when Williams %R is under -80 the security is considered to be oversold. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to look-back when calculating Williams %R (default to 14) # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Float] :page_size The number of results to return (default to 100) # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [ApiResponseSecurityWilliamsR] def get_security_price_technicals_wr(identifier, opts = {}) data, _status_code, _headers = get_security_price_technicals_wr_with_http_info(identifier, opts) return data end # Williams %R # Williams %R is a momentum indicator used to determine overbought and oversold environments for a security and fluctuates between 0 and -100. When Williams %R is above -20 the security is considered to be overbought and when Williams %R is under -80 the security is considered to be oversold. # @param identifier A Security identifier (Ticker, FIGI, ISIN, CUSIP, Intrinio ID) # @param [Hash] opts the optional parameters # @option opts [Integer] :period The number of observations, per period, to look-back when calculating Williams %R # @option opts [String] :start_date Return technical indicator values on or after the date # @option opts [String] :end_date Return technical indicator values on or before the date # @option opts [Float] :page_size The number of results to return # @option opts [String] :next_page Gets the next page of data from a previous API call # @return [Array<(ApiResponseSecurityWilliamsR, Fixnum, Hash)>] ApiResponseSecurityWilliamsR data, response status code and response headers def get_security_price_technicals_wr_with_http_info(identifier, opts = {}) if @api_client.config.debugging @api_client.config.logger.debug "Calling API: TechnicalApi.get_security_price_technicals_wr ..." end # verify the required parameter 'identifier' is set if @api_client.config.client_side_validation && identifier.nil? fail ArgumentError, "Missing the required parameter 'identifier' when calling TechnicalApi.get_security_price_technicals_wr" end if @api_client.config.client_side_validation && !opts[:'period'].nil? && opts[:'period'] < 5 fail ArgumentError, 'invalid value for "opts[:"period"]" when calling TechnicalApi.get_security_price_technicals_wr, must be greater than or equal to 5.' end if @api_client.config.client_side_validation && !opts[:'page_size'].nil? && opts[:'page_size'] > 10000 fail ArgumentError, 'invalid value for "opts[:"page_size"]" when calling TechnicalApi.get_security_price_technicals_wr, must be smaller than or equal to 10000.' end # resource path local_var_path = "/securities/{identifier}/prices/technicals/wr".sub('{' + 'identifier' + '}', identifier.to_s) # query parameters query_params = {} query_params[:'period'] = opts[:'period'] if !opts[:'period'].nil? query_params[:'start_date'] = opts[:'start_date'] if !opts[:'start_date'].nil? query_params[:'end_date'] = opts[:'end_date'] if !opts[:'end_date'].nil? query_params[:'page_size'] = opts[:'page_size'] if !opts[:'page_size'].nil? query_params[:'next_page'] = opts[:'next_page'] if !opts[:'next_page'].nil? # header parameters header_params = {} # HTTP header 'Accept' (if needed) header_params['Accept'] = @api_client.select_header_accept(['application/json']) # form parameters form_params = {} # http body (model) post_body = nil auth_names = ['ApiKeyAuth'] data, status_code, headers = @api_client.call_api(:GET, local_var_path, :header_params => header_params, :query_params => query_params, :form_params => form_params, :body => post_body, :auth_names => auth_names, :return_type => 'ApiResponseSecurityWilliamsR') if @api_client.config.debugging @api_client.config.logger.debug "API called: TechnicalApi#get_security_price_technicals_wr\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}" end return data, status_code, headers end end end