diff --git a/lib/alpaca/trade/api/bar.rb b/lib/alpaca/trade/api/bar.rb index 780ea5b..906aef9 100644 --- a/lib/alpaca/trade/api/bar.rb +++ b/lib/alpaca/trade/api/bar.rb @@ -1,18 +1,31 @@ # frozen_string_literal: true +# object +# OHLC aggregate of all the trades in a given interval. + +# t date-time required Timestamp in RFC-3339 format with nanosecond precision +# o double required Opening price +# h double required High price +# l double required Low price +# c double required Closing price +# v int64 required Bar volume +# n int64 required Trade count in the bar +# vw double required Volume weighted average price module Alpaca module Trade module Api class Bar - attr_reader :time, :open, :high, :low, :close, :volume + attr_reader :time, :open, :high, :low, :close, :volume, :trades, :weighted_average_price def initialize(json) - @time = Time.at(json['t']) + @time = Time.parse(json['t']) @open = BigDecimal(json['o'].to_s) @high = BigDecimal(json['h'].to_s) @low = BigDecimal(json['l'].to_s) @close = BigDecimal(json['c'].to_s) + @weighted_average_price = BigDecimal(json['vw'].to_s) @volume = json['v'] + @trades = json['n'] end end end diff --git a/lib/alpaca/trade/api/client.rb b/lib/alpaca/trade/api/client.rb index 727e356..3e51594 100644 --- a/lib/alpaca/trade/api/client.rb +++ b/lib/alpaca/trade/api/client.rb @@ -48,13 +48,49 @@ def assets(status: nil, asset_class: nil) json.map { |item| Asset.new(item) } end - def bars(timeframe, symbols, limit: 100) + # { + # "bars": { + # "AAPL": [ + # { + # "t": "2022-01-03T09:00:00Z", + # "o": 178.26, + # "h": 178.26, + # "l": 178.21, + # "c": 178.21, + # "v": 1118, + # "n": 65, + # "vw": 178.235733 + # } + # ] + # }, + # "next_page_token": "QUFQTHxNfDIwMjItMDEtMDNUMDk6MDA6MDAuMDAwMDAwMDAwWg==" + # } + def bars(timeframe: '1D', symbols:, limit: 100, start_date: nil, end_date: nil, feed: 'sip', asof: nil) validate_timeframe(timeframe) - response = get_request(data_endpoint, "v1/bars/#{timeframe}", symbols: symbols.join(','), limit: limit) + validate_symbols(symbols) + + symbols = Array(symbols) + params = { + symbols: symbols.join(','), + limit: limit, + timeframe: timeframe, + feed: feed + } + params[:start] = start_date.rfc3339 if start_date + params[:end] = end_date.rfc3339 if end_date + + params[:asof] = asof.strftime("%Y-%m-%d") if asof.is_a?(Date) || asof.is_a?(Time) + params[:asof] ||= asof if asof.is_a?(String) + + response = get_request(data_endpoint, "v2/stocks/bars", params) + raise InvalidRequest, JSON.parse(response.body)['message'] if response.status == 404 + json = JSON.parse(response.body) - json.keys.each_with_object({}) do |symbol, hash| - hash[symbol] = json[symbol].map { |bar| Bar.new(bar) } + hash = { "next_page_token" => json["next_page_token"], "bars" => {} } + symbols.each do |symbol| + hash["bars"][symbol] = json["bars"][symbol]&.map { |bar| Bar.new(bar) } || [] end + hash.merge({ 'next_page_token' => json['next_page_token'] }) end def calendar(start_date: Date.today, end_date: (Date.today + 30)) @@ -249,9 +285,14 @@ def possibly_raise_exception(response) end def validate_timeframe(timeframe) - unless TIMEFRAMES.include?(timeframe) - raise ArgumentError, "Invalid timeframe: #{timeframe}. Valid arguments are: #{TIMEFRAMES}" - end + return if TIMEFRAMES.include?(timeframe) + raise ArgumentError, "Invalid timeframe: #{timeframe}. Valid arguments are: #{TIMEFRAMES}" + end + + def validate_symbols(symbols) + return if symbols.is_a?(String) + return if symbols.is_a?(Array) && symbols.all?{ |symbol| symbol.is_a?(String) } + raise ArgumentError, "Invalid symbols: #{symbols.inspect}. Symbols must be a String or an array of strings." end end end diff --git a/spec/alpaca/trade/client_spec.rb b/spec/alpaca/trade/client_spec.rb index a8dcfd7..8e85f4d 100644 --- a/spec/alpaca/trade/client_spec.rb +++ b/spec/alpaca/trade/client_spec.rb @@ -83,32 +83,41 @@ end describe '#bars' do - it 'returns Bar objects for one symbol', :vcr do - bars = subject.bars('1D', ['CRM']) - expect(bars['CRM']).to be_an(Array) + it 'returns Bar objects for one symbol as Array', :vcr do + bars = subject.bars(timeframe: '1D', symbols: ['CRM'], start_date: Date.today - 10) + expect(bars['bars']['CRM']).to be_an(Array) - bar = bars['CRM'].first + bar = bars['bars']['CRM'].first expect(bar).to be_an(Alpaca::Trade::Api::Bar) - expect(bar.close).to eq(160.57) + expect(bar.close).to eq(223.84) + end + + it 'returns Bar objects for one symbol as String', :vcr do + bars = subject.bars(timeframe: '1D', symbols: 'CRM', start_date: Date.today - 10) + expect(bars['bars']['CRM']).to be_an(Array) + + bar = bars['bars']['CRM'].first + expect(bar).to be_an(Alpaca::Trade::Api::Bar) + expect(bar.close).to eq(223.84) end it 'returns Bar objects for multiple symbols', :vcr do - bars = subject.bars('1D', %w[CRM FB AMZN]) - expect(bars['FB']).to be_an(Array) + bars = subject.bars(timeframe: '1D', symbols: %w[CRM FB AMZN], start_date: Date.today - 10) + expect(bars['bars']['FB']).to be_an(Array) - bar = bars['AMZN'].first + bar = bars['bars']['AMZN'].first expect(bar).to be_an(Alpaca::Trade::Api::Bar) end it 'accepts limit as parameter', :vcr do - bars = subject.bars('1D', ['CRM'], limit: 10) - expect(bars['CRM']).to be_an(Array) - expect(bars['CRM'].size).to eq(10) + bars = subject.bars(timeframe: '1D', symbols: ['CRM'], limit: 10, start_date: Date.today - 100) + expect(bars['bars']['CRM']).to be_an(Array) + expect(bars['bars']['CRM'].size).to eq(10) end it 'doesnt accept invalid time frames' do expect { - subject.bars('1FOO', ['CRM']) + subject.bars(timeframe: 'bogus', symbols: 'CRM', limit: 10, start_date: Date.today - 100) }.to raise_error(ArgumentError) end end diff --git a/spec/cassettes/Alpaca_Trade_Api_Client/_bars/accepts_limit_as_parameter.yml b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/accepts_limit_as_parameter.yml index 887e5e8..e743135 100644 --- a/spec/cassettes/Alpaca_Trade_Api_Client/_bars/accepts_limit_as_parameter.yml +++ b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/accepts_limit_as_parameter.yml @@ -2,13 +2,13 @@ http_interactions: - request: method: get - uri: https://data.alpaca.markets/v1/bars/1D?limit=10&symbols=CRM + uri: https://data.alpaca.markets/v2/stocks/bars?feed=sip&limit=10&start=2023-08-24T00:00:00%2B00:00&symbols=CRM&timeframe=1D body: encoding: US-ASCII string: '' headers: User-Agent: - - Faraday v0.15.4 + - Faraday v1.10.0 Apca-Api-Key-Id: - "" Apca-Api-Secret-Key: @@ -22,19 +22,38 @@ http_interactions: code: 200 message: OK headers: - Server: - - nginx/1.13.0 Date: - - Fri, 12 Jul 2019 03:08:10 GMT + - Sat, 02 Dec 2023 20:17:02 GMT Content-Type: - application/json; charset=UTF-8 - Content-Length: - - '740' + Transfer-Encoding: + - chunked Connection: - keep-alive + Vary: + - Accept-Encoding + X-Ratelimit-Limit: + - '200' + X-Ratelimit-Remaining: + - '199' + X-Ratelimit-Reset: + - '1701548222' + Strict-Transport-Security: + - max-age=15724800; includeSubDomains + X-Request-Id: + - 86c3ec6a6378963e11c69bfc29777076 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, OPTIONS + Access-Control-Allow-Headers: + - Apca-Api-Key-Id, Apca-Api-Secret-Key, Authorization + Access-Control-Max-Age: + - '1728000' body: encoding: UTF-8 - string: '{"CRM":[{"t":1561608000,"o":149.89,"h":150.76,"l":148.47,"c":150.67,"v":6338779},{"t":1561694400,"o":151.11,"h":151.77,"l":149.6,"c":151.53,"v":4664177},{"t":1561953600,"o":154.57,"h":154.74,"l":151.8503,"c":154.01,"v":5662224},{"t":1562040000,"o":154.29,"h":154.36,"l":152.58,"c":154.12,"v":4352992},{"t":1562126400,"o":154.54,"h":155.75,"l":154.16,"c":155.73,"v":3106378},{"t":1562299200,"o":153.95,"h":154.805,"l":152.57,"c":154.61,"v":3572534},{"t":1562558400,"o":153.52,"h":153.69,"l":152.044,"c":152.81,"v":3937622},{"t":1562644800,"o":152.08,"h":154.19,"l":151.68,"c":153.91,"v":4236667},{"t":1562731200,"o":154.57,"h":156.4,"l":154.57,"c":156.24,"v":4353955},{"t":1562817600,"o":156.82,"h":159.3,"l":156.62,"c":158.88,"v":6524677}]}' - http_version: - recorded_at: Fri, 12 Jul 2019 03:08:11 GMT -recorded_with: VCR 5.0.0 + string: '{"bars":{"CRM":[{"c":205.51,"h":211.99,"l":205.44,"n":73644,"o":211.01,"t":"2023-08-24T04:00:00Z","v":3960327,"vw":206.957144},{"c":209.47,"h":210.79,"l":205.48,"n":59119,"o":205.51,"t":"2023-08-25T04:00:00Z","v":3068821,"vw":208.840682},{"c":211.72,"h":213.4767,"l":209.64,"n":69497,"o":210.45,"t":"2023-08-28T04:00:00Z","v":4086853,"vw":211.230273},{"c":211.96,"h":212.46,"l":206.52,"n":102342,"o":206.75,"t":"2023-08-29T04:00:00Z","v":5850366,"vw":210.626318},{"c":215.04,"h":215.59,"l":209.43,"n":150629,"o":211.77,"t":"2023-08-30T04:00:00Z","v":9946012,"vw":216.67428},{"c":221.46,"h":228.79,"l":221.2,"n":219363,"o":228,"t":"2023-08-31T04:00:00Z","v":19268400,"vw":223.733395},{"c":221.53,"h":223.97,"l":220.52,"n":92641,"o":223.5,"t":"2023-09-01T04:00:00Z","v":5600940,"vw":221.828052},{"c":218.69,"h":220.3199,"l":217.61,"n":96792,"o":219.33,"t":"2023-09-05T04:00:00Z","v":5807336,"vw":219.030671},{"c":221.62,"h":222.2099,"l":219.02,"n":86904,"o":219.47,"t":"2023-09-06T04:00:00Z","v":5066666,"vw":221.04745},{"c":222.53,"h":222.73,"l":219.31,"n":70468,"o":219.77,"t":"2023-09-07T04:00:00Z","v":4201916,"vw":221.882464}]},"next_page_token":"Q1JNfER8MTY5NDA1OTIwMDAwMDAwMDAwMA=="}' + recorded_at: Sat, 02 Dec 2023 20:17:02 GMT +recorded_with: VCR 6.1.0 diff --git a/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_multiple_symbols.yml b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_multiple_symbols.yml index 757c455..6b22d6c 100644 --- a/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_multiple_symbols.yml +++ b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_multiple_symbols.yml @@ -2,13 +2,13 @@ http_interactions: - request: method: get - uri: https://data.alpaca.markets/v1/bars/1D?limit=100&symbols=CRM,FB,AMZN + uri: https://data.alpaca.markets/v2/stocks/bars?feed=sip&limit=100&start=2023-11-22T00:00:00%2B00:00&symbols=CRM,FB,AMZN&timeframe=1D body: encoding: US-ASCII string: '' headers: User-Agent: - - Faraday v0.15.4 + - Faraday v1.10.0 Apca-Api-Key-Id: - "" Apca-Api-Secret-Key: @@ -22,10 +22,8 @@ http_interactions: code: 200 message: OK headers: - Server: - - nginx/1.13.0 Date: - - Fri, 12 Jul 2019 03:07:06 GMT + - Sat, 02 Dec 2023 20:24:46 GMT Content-Type: - application/json; charset=UTF-8 Transfer-Encoding: @@ -34,9 +32,28 @@ http_interactions: - keep-alive Vary: - Accept-Encoding + X-Ratelimit-Limit: + - '200' + X-Ratelimit-Remaining: + - '197' + X-Ratelimit-Reset: + - '1701548687' + Strict-Transport-Security: + - max-age=15724800; includeSubDomains + X-Request-Id: + - 9e32654f4879cba9b15bdd51a5ca19aa + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, OPTIONS + Access-Control-Allow-Headers: + - Apca-Api-Key-Id, Apca-Api-Secret-Key, Authorization + Access-Control-Max-Age: + - '1728000' body: encoding: UTF-8 - string: '{"AMZN":[{"t":1550552400,"o":1601,"h":1634,"l":1600.56,"c":1627.4731,"v":3363526},{"t":1550638800,"o":1630,"h":1634.93,"l":1610.12,"c":1622.62,"v":3100443},{"t":1550725200,"o":1619.85,"h":1623.56,"l":1600.91,"c":1619.9,"v":3294305},{"t":1550811600,"o":1623.5,"h":1634.94,"l":1621.17,"c":1631.19,"v":2590256},{"t":1551070800,"o":1641.45,"h":1654.6,"l":1630.3873,"c":1633,"v":2858663},{"t":1551157200,"o":1625.98,"h":1639.99,"l":1616.1335,"c":1636.33,"v":2387059},{"t":1551243600,"o":1628.18,"h":1641.81,"l":1615.1,"c":1641.09,"v":2773023},{"t":1551330000,"o":1635.25,"h":1651.77,"l":1633.83,"c":1639.79,"v":2439847},{"t":1551416400,"o":1653.74,"h":1674.26,"l":1651,"c":1671.26,"v":4274122},{"t":1551675600,"o":1685,"h":1709.43,"l":1674.36,"c":1696.16,"v":5635905},{"t":1551762000,"o":1702.95,"h":1707.8,"l":1689.01,"c":1691.81,"v":3441803},{"t":1551848400,"o":1695.97,"h":1697.75,"l":1668.28,"c":1669.16,"v":3715728},{"t":1551934800,"o":1667.06,"h":1669.7534,"l":1620.51,"c":1626.28,"v":4213562},{"t":1552021200,"o":1604.01,"h":1622.72,"l":1586.57,"c":1622.11,"v":4139096},{"t":1552276800,"o":1626.95,"h":1672.285,"l":1626.01,"c":1670.32,"v":3476811},{"t":1552363200,"o":1669,"h":1684.265,"l":1660.98,"c":1672.42,"v":3094709},{"t":1552449600,"o":1683,"h":1700,"l":1679.35,"c":1690.8,"v":3263391},{"t":1552536000,"o":1691.2,"h":1702,"l":1684.34,"c":1685.29,"v":2583867},{"t":1552622400,"o":1701.56,"h":1718.8,"l":1693.13,"c":1712.91,"v":4006960},{"t":1552881600,"o":1712.39,"h":1750,"l":1712.39,"c":1742,"v":4804401},{"t":1552968000,"o":1754.13,"h":1784.16,"l":1753.51,"c":1762.7,"v":5692348},{"t":1553054400,"o":1769.94,"h":1799.01,"l":1767.0338,"c":1797.73,"v":5635029},{"t":1553140800,"o":1796.26,"h":1823.75,"l":1787.281,"c":1818.4,"v":5103096},{"t":1553227200,"o":1810.17,"h":1818.98,"l":1763.11,"c":1764.06,"v":5841108},{"t":1553486400,"o":1757.79,"h":1782.675,"l":1747.5,"c":1774.07,"v":4735693},{"t":1553572800,"o":1792.85,"h":1805.77,"l":1773.3597,"c":1784.47,"v":4486129},{"t":1553659200,"o":1784.13,"h":1787.5,"l":1745.68,"c":1766,"v":3998643},{"t":1553745600,"o":1770,"h":1777.93,"l":1753.47,"c":1773.67,"v":2819446},{"t":1553832000,"o":1786.58,"h":1792.86,"l":1776.63,"c":1781.09,"v":2744465},{"t":1554091200,"o":1800.11,"h":1815.67,"l":1798.73,"c":1814.36,"v":2495724},{"t":1554177600,"o":1811.93,"h":1820,"l":1805.121,"c":1814,"v":3098296},{"t":1554264000,"o":1826.72,"h":1830,"l":1809.62,"c":1820.41,"v":3637589},{"t":1554350400,"o":1820.65,"h":1828.75,"l":1804.2,"c":1819.51,"v":3318144},{"t":1554436800,"o":1829,"h":1838.58,"l":1825.19,"c":1837.65,"v":3186217},{"t":1554696000,"o":1833.23,"h":1850.2,"l":1825.11,"c":1849.679,"v":3432186},{"t":1554782400,"o":1845.49,"h":1853.09,"l":1831.78,"c":1836.52,"v":3300977},{"t":1554868800,"o":1841,"h":1848,"l":1828.81,"c":1847.33,"v":2766747},{"t":1554955200,"o":1848.7,"h":1849.95,"l":1840.31,"c":1844.5,"v":2412329},{"t":1555041600,"o":1848.4,"h":1851.5,"l":1841.3,"c":1842.96,"v":2598729},{"t":1555300800,"o":1842,"h":1846.85,"l":1818.9,"c":1844.85,"v":3271660},{"t":1555387200,"o":1851.31,"h":1869.77,"l":1848,"c":1862.92,"v":2788392},{"t":1555473600,"o":1872.5,"h":1876.473,"l":1860.44,"c":1864.82,"v":2588487},{"t":1555560000,"o":1866.2,"h":1870.82,"l":1859.48,"c":1861.4,"v":2613709},{"t":1555905600,"o":1855.4,"h":1888.42,"l":1845.64,"c":1888.04,"v":3196934},{"t":1555992000,"o":1891.2,"h":1929.26,"l":1889.58,"c":1924.17,"v":4123487},{"t":1556078400,"o":1925.1,"h":1929.69,"l":1898.16,"c":1900.88,"v":3044542},{"t":1556164800,"o":1917.0035,"h":1922.45,"l":1900.31,"c":1902.16,"v":4154636},{"t":1556251200,"o":1928.69,"h":1951,"l":1898,"c":1950.9,"v":7614548},{"t":1556510400,"o":1949,"h":1956.335,"l":1934.09,"c":1939,"v":3542692},{"t":1556596800,"o":1930.12,"h":1935.71,"l":1906.95,"c":1926.53,"v":3106108},{"t":1556683200,"o":1933.09,"h":1943.64,"l":1910.55,"c":1911.29,"v":2814558},{"t":1556769600,"o":1913.33,"h":1921.55,"l":1881.87,"c":1901.72,"v":3641665},{"t":1556856000,"o":1949,"h":1964.4,"l":1936,"c":1961.76,"v":5687567},{"t":1557115200,"o":1917.98,"h":1959,"l":1910.5,"c":1950.29,"v":4911645},{"t":1557201600,"o":1939.99,"h":1949.1005,"l":1903.3795,"c":1922.58,"v":5451477},{"t":1557288000,"o":1918.87,"h":1935.37,"l":1910,"c":1916.85,"v":3650183},{"t":1557374400,"o":1900.98,"h":1909.4,"l":1876,"c":1900.01,"v":4928658},{"t":1557460800,"o":1898,"h":1903.79,"l":1856,"c":1889.98,"v":5355441},{"t":1557720000,"o":1837.11,"h":1846.535,"l":1818,"c":1822.62,"v":5312153},{"t":1557806400,"o":1839.9,"h":1852.44,"l":1815.75,"c":1840.05,"v":4179780},{"t":1557892800,"o":1827.95,"h":1874.427,"l":1823,"c":1871.12,"v":4294255},{"t":1557979200,"o":1885.9,"h":1917.51,"l":1882.29,"c":1907.86,"v":4317968},{"t":1558065600,"o":1893.05,"h":1910.53,"l":1867.33,"c":1867.99,"v":4384715},{"t":1558324800,"o":1852.69,"h":1867.78,"l":1835.54,"c":1858.04,"v":3483969},{"t":1558411200,"o":1874.79,"h":1879,"l":1846,"c":1858.11,"v":3603729},{"t":1558497600,"o":1851.22,"h":1871.485,"l":1851,"c":1859.425,"v":2647140},{"t":1558584000,"o":1837,"h":1844,"l":1804.2,"c":1815.67,"v":4041503},{"t":1558670400,"o":1835.89,"h":1841.76,"l":1817.851,"c":1823.3,"v":3096132},{"t":1559016000,"o":1832.35,"h":1849.2668,"l":1827.35,"c":1836.56,"v":2861458},{"t":1559102400,"o":1823.18,"h":1830,"l":1807.5327,"c":1820.2,"v":3730772},{"t":1559188800,"o":1824.31,"h":1829.47,"l":1807.825,"c":1815.81,"v":2934611},{"t":1559275200,"o":1790.01,"h":1795.585,"l":1772.7034,"c":1775.07,"v":3916862},{"t":1559534400,"o":1760.01,"h":1766.29,"l":1672,"c":1692.76,"v":8372675},{"t":1559620800,"o":1699.24,"h":1730.82,"l":1680.89,"c":1730.18,"v":5141474},{"t":1559707200,"o":1749.6,"h":1752,"l":1715.2513,"c":1739.48,"v":3781000},{"t":1559793600,"o":1737.71,"h":1759.99,"l":1726.13,"c":1754.6292,"v":3355072},{"t":1559880000,"o":1762.4,"h":1806.2538,"l":1759.49,"c":1804.02,"v":4065603},{"t":1560139200,"o":1822,"h":1884.87,"l":1818,"c":1860.63,"v":4968998},{"t":1560225600,"o":1883.25,"h":1893.7,"l":1858,"c":1863.7,"v":3629018},{"t":1560312000,"o":1853.98,"h":1865,"l":1844.38,"c":1855.3,"v":2450925},{"t":1560398400,"o":1866.72,"h":1883.09,"l":1862.22,"c":1870.748,"v":4993238},{"t":1560484800,"o":1864.92,"h":1876,"l":1859,"c":1870.17,"v":4923087},{"t":1560744000,"o":1876.5,"h":1895.688,"l":1875.45,"c":1886,"v":2397289},{"t":1560830400,"o":1901.35,"h":1921.67,"l":1899.79,"c":1902.15,"v":3523736},{"t":1560916800,"o":1907.84,"h":1919.5807,"l":1892.6223,"c":1909.03,"v":2565954},{"t":1561003200,"o":1933.33,"h":1935.2,"l":1905.8,"c":1917.95,"v":2858789},{"t":1561089600,"o":1912.5,"h":1925.95,"l":1907.58,"c":1911.1,"v":3243263},{"t":1561348800,"o":1912.66,"h":1916.86,"l":1901.3,"c":1913.96,"v":1931200},{"t":1561435200,"o":1911.84,"h":1916.385,"l":1872.42,"c":1878.64,"v":2712393},{"t":1561521600,"o":1892.91,"h":1903.8,"l":1887.32,"c":1897.75,"v":2011515},{"t":1561608000,"o":1902,"h":1911.24,"l":1898.04,"c":1903.67,"v":1923521},{"t":1561694400,"o":1912.8,"h":1912.8,"l":1884,"c":1889.83,"v":2263386},{"t":1561953600,"o":1922.98,"h":1929.82,"l":1914.66,"c":1922.26,"v":2917672},{"t":1562040000,"o":1919.38,"h":1934.79,"l":1906.63,"c":1934.79,"v":2407604},{"t":1562126400,"o":1935.89,"h":1941.59,"l":1930.5,"c":1939,"v":1475704},{"t":1562299200,"o":1928.6,"h":1945.9,"l":1925.3,"c":1943.1,"v":2418081},{"t":1562558400,"o":1934.12,"h":1956,"l":1928.2532,"c":1952.33,"v":2593566},{"t":1562644800,"o":1947.88,"h":1990.01,"l":1943.475,"c":1987.35,"v":3966987},{"t":1562731200,"o":1996.51,"h":2024.94,"l":1995.4,"c":2017.77,"v":4251674},{"t":1562817600,"o":2025.62,"h":2035.8,"l":1995.3,"c":2001.07,"v":3957307}],"CRM":[{"t":1550552400,"o":159.66,"h":161.48,"l":159.14,"c":160.57,"v":3255800},{"t":1550638800,"o":160.33,"h":161.49,"l":157.21,"c":158.46,"v":3882724},{"t":1550725200,"o":157.7,"h":160.48,"l":157.3,"c":159.67,"v":3855032},{"t":1550811600,"o":160.47,"h":161.71,"l":160.2,"c":161.28,"v":3243626},{"t":1551070800,"o":162.51,"h":163.06,"l":160.93,"c":161.34,"v":4615384},{"t":1551157200,"o":160.81,"h":163.38,"l":159.87,"c":163,"v":3156129},{"t":1551243600,"o":162.29,"h":163.53,"l":160.5,"c":163.15,"v":3348926},{"t":1551330000,"o":163,"h":164.6,"l":162.17,"c":163.64,"v":4747198},{"t":1551416400,"o":165.15,"h":166.15,"l":161.75,"c":164.5,"v":6108847},{"t":1551675600,"o":165.56,"h":165.79,"l":155.42,"c":158.6,"v":14864352},{"t":1551762000,"o":159.92,"h":160.88,"l":154.8,"c":156.9752,"v":14136374},{"t":1551848400,"o":157.13,"h":160.25,"l":156.278,"c":156.76,"v":6661531},{"t":1551934800,"o":156.09,"h":157.59,"l":154.81,"c":155.54,"v":5721039},{"t":1552021200,"o":152.02,"h":155.41,"l":150.25,"c":155.09,"v":4282661},{"t":1552276800,"o":155.9,"h":157.77,"l":153.4301,"c":157.61,"v":5344640},{"t":1552363200,"o":158,"h":159.37,"l":157.16,"c":158.2,"v":3670753},{"t":1552449600,"o":158.85,"h":162,"l":158.61,"c":159.78,"v":4724278},{"t":1552536000,"o":160.95,"h":161.59,"l":159.74,"c":160.7,"v":2841927},{"t":1552622400,"o":159.915,"h":162.18,"l":159.59,"c":161.51,"v":3579147},{"t":1552881600,"o":161.4,"h":163.33,"l":160.8799,"c":161.97,"v":3010436},{"t":1552968000,"o":163.36,"h":164.62,"l":162.84,"c":163.96,"v":3275172},{"t":1553054400,"o":163.84,"h":164.95,"l":161.51,"c":163.47,"v":3509450},{"t":1553140800,"o":163.17,"h":166.99,"l":162.75,"c":166.91,"v":3846785},{"t":1553227200,"o":165.96,"h":166.49,"l":161.35,"c":161.52,"v":4370572},{"t":1553486400,"o":160.23,"h":161.5988,"l":159.2241,"c":160.89,"v":2935979},{"t":1553572800,"o":161.43,"h":162.07,"l":157.39,"c":159.37,"v":6523271},{"t":1553659200,"o":159,"h":159.3,"l":152.37,"c":155.08,"v":7679910},{"t":1553745600,"o":155.69,"h":156.48,"l":153.51,"c":155.19,"v":4147860},{"t":1553832000,"o":156.87,"h":158.5,"l":155.425,"c":158.42,"v":4071317},{"t":1554091200,"o":160.1,"h":161.48,"l":158.5111,"c":161.19,"v":2432121},{"t":1554177600,"o":160.86,"h":160.99,"l":158.91,"c":160.52,"v":2894275},{"t":1554264000,"o":161.78,"h":163.14,"l":160.65,"c":162.62,"v":3415184},{"t":1554350400,"o":162.71,"h":162.8,"l":155.83,"c":158.49,"v":6007449},{"t":1554436800,"o":159.63,"h":160.24,"l":158.02,"c":158.56,"v":3910123},{"t":1554696000,"o":158.4,"h":158.79,"l":156.45,"c":158.43,"v":2581755},{"t":1554782400,"o":157.04,"h":158.3525,"l":156.65,"c":156.98,"v":5000738},{"t":1554868800,"o":158.2,"h":160.38,"l":157.65,"c":160.28,"v":3137346},{"t":1554955200,"o":160.16,"h":160.83,"l":159.02,"c":160.77,"v":2279905},{"t":1555041600,"o":162,"h":162.5,"l":159.5,"c":160.73,"v":2316378},{"t":1555300800,"o":161,"h":162.031,"l":159.49,"c":160.09,"v":2236894},{"t":1555387200,"o":160.04,"h":160.26,"l":157.7501,"c":158.73,"v":2716684},{"t":1555473600,"o":159.05,"h":159.05,"l":155.07,"c":155.32,"v":4366630},{"t":1555560000,"o":154.9,"h":156.2078,"l":153.17,"c":156,"v":3888784},{"t":1555905600,"o":155.45,"h":159.14,"l":155.28,"c":158.79,"v":2381611},{"t":1555992000,"o":159.76,"h":161.4,"l":158.41,"c":161.21,"v":3104255},{"t":1556078400,"o":161.88,"h":162.49,"l":159.4,"c":159.56,"v":2969229},{"t":1556164800,"o":162,"h":163.89,"l":161,"c":163.11,"v":4836788},{"t":1556251200,"o":162.42,"h":166.06,"l":161.28,"c":166,"v":3012836},{"t":1556510400,"o":166.71,"h":167.56,"l":165.33,"c":165.36,"v":3874794},{"t":1556596800,"o":165.19,"h":166.44,"l":163.62,"c":165.28,"v":2880093},{"t":1556683200,"o":166.01,"h":166.22,"l":162.14,"c":162.14,"v":2318142},{"t":1556769600,"o":161.69,"h":162.7,"l":159.63,"c":161.82,"v":3004890},{"t":1556856000,"o":162.58,"h":163.5,"l":160.86,"c":163.35,"v":2836600},{"t":1557115200,"o":158.62,"h":162.84,"l":157.86,"c":162.54,"v":2271580},{"t":1557201600,"o":161.33,"h":161.67,"l":154.75,"c":156.86,"v":5562582},{"t":1557288000,"o":157.11,"h":157.93,"l":155.04,"c":156.87,"v":3757458},{"t":1557374400,"o":154.65,"h":157.1,"l":152.3888,"c":156.31,"v":5469835},{"t":1557460800,"o":156.28,"h":160.614,"l":154.38,"c":159.95,"v":4073722},{"t":1557720000,"o":154.92,"h":156.9,"l":152.78,"c":153.11,"v":5314622},{"t":1557806400,"o":155.05,"h":158.59,"l":152.92,"c":158.05,"v":4451058},{"t":1557892800,"o":153.82,"h":156.38,"l":151.7,"c":155.07,"v":7175841},{"t":1557979200,"o":156.76,"h":159.45,"l":155.9,"c":158.52,"v":4495866},{"t":1558065600,"o":156.18,"h":157.155,"l":153.17,"c":154.53,"v":4847807},{"t":1558324800,"o":152.47,"h":156.09,"l":151.7044,"c":155.89,"v":4609728},{"t":1558411200,"o":157.36,"h":157.84,"l":155.18,"c":155.79,"v":3280197},{"t":1558497600,"o":155.87,"h":158.19,"l":155.84,"c":157.67,"v":2775727},{"t":1558584000,"o":156.03,"h":156.34,"l":152.15,"c":153.73,"v":4016435},{"t":1558670400,"o":154.89,"h":156.93,"l":154.16,"c":154.59,"v":2856661},{"t":1559016000,"o":155.35,"h":157.81,"l":154.39,"c":155.15,"v":3779542},{"t":1559102400,"o":153.76,"h":154.06,"l":151.2,"c":152.84,"v":3938289},{"t":1559188800,"o":154.32,"h":155.87,"l":153.9,"c":155.65,"v":4096211},{"t":1559275200,"o":152.66,"h":154.48,"l":151.26,"c":151.44,"v":4660799},{"t":1559534400,"o":150.7,"h":150.7,"l":143.39,"c":145.03,"v":8034617},{"t":1559620800,"o":146.05,"h":150.81,"l":142.51,"c":150.72,"v":9716082},{"t":1559707200,"o":157.15,"h":158.5,"l":154.55,"c":158.41,"v":10932400},{"t":1559793600,"o":158.5,"h":160,"l":157.33,"c":159.37,"v":5072387},{"t":1559880000,"o":159.84,"h":162.99,"l":159.5,"c":161.22,"v":6613271},{"t":1560139200,"o":153.48,"h":157.45,"l":150.83,"c":152.8,"v":27741786},{"t":1560225600,"o":155.31,"h":155.71,"l":148.79,"c":150.05,"v":14353316},{"t":1560312000,"o":151.11,"h":152.32,"l":150.15,"c":151.26,"v":6366463},{"t":1560398400,"o":152.16,"h":152.24,"l":150.25,"c":151.34,"v":4746586},{"t":1560484800,"o":151.04,"h":151.98,"l":149.48,"c":149.9801,"v":5424977},{"t":1560744000,"o":150.2,"h":151.2843,"l":149.87,"c":150.28,"v":4067304},{"t":1560830400,"o":151.88,"h":152.95,"l":150.5,"c":150.6,"v":6275901},{"t":1560916800,"o":151.69,"h":154.47,"l":150.515,"c":154.1,"v":7398157},{"t":1561003200,"o":156.29,"h":158.29,"l":155.42,"c":157.21,"v":9186146},{"t":1561089600,"o":156.67,"h":157.79,"l":155.94,"c":156.78,"v":5854776},{"t":1561348800,"o":157.39,"h":157.73,"l":152.51,"c":152.54,"v":5592008},{"t":1561435200,"o":152.83,"h":152.9699,"l":148.59,"c":149.27,"v":6565943},{"t":1561521600,"o":151.28,"h":151.38,"l":148.92,"c":149.04,"v":4897780},{"t":1561608000,"o":149.89,"h":150.76,"l":148.47,"c":150.67,"v":6338779},{"t":1561694400,"o":151.11,"h":151.77,"l":149.6,"c":151.53,"v":4664177},{"t":1561953600,"o":154.57,"h":154.74,"l":151.8503,"c":154.01,"v":5662224},{"t":1562040000,"o":154.29,"h":154.36,"l":152.58,"c":154.12,"v":4352992},{"t":1562126400,"o":154.54,"h":155.75,"l":154.16,"c":155.73,"v":3106378},{"t":1562299200,"o":153.95,"h":154.805,"l":152.57,"c":154.61,"v":3572534},{"t":1562558400,"o":153.52,"h":153.69,"l":152.044,"c":152.81,"v":3937622},{"t":1562644800,"o":152.08,"h":154.19,"l":151.68,"c":153.91,"v":4236667},{"t":1562731200,"o":154.57,"h":156.4,"l":154.57,"c":156.24,"v":4353955},{"t":1562817600,"o":156.82,"h":159.3,"l":156.62,"c":158.88,"v":6524677}],"FB":[{"t":1550552400,"o":160.5,"h":164.15,"l":160.33,"c":162.1166,"v":12160154},{"t":1550638800,"o":162.25,"h":163.72,"l":161.25,"c":162.62,"v":10525664},{"t":1550725200,"o":162.01,"h":162.24,"l":159.59,"c":160.09,"v":13276948},{"t":1550811600,"o":160.58,"h":162.41,"l":160.31,"c":161.84,"v":11588766},{"t":1551070800,"o":163.07,"h":166.07,"l":162.9,"c":164.63,"v":15768987},{"t":1551157200,"o":164.335,"h":166.24,"l":163.8,"c":164.05,"v":12423077},{"t":1551243600,"o":162.9,"h":163.8025,"l":160.41,"c":162.81,"v":10796534},{"t":1551330000,"o":162.37,"h":163.5,"l":160.86,"c":161.5,"v":9056941},{"t":1551416400,"o":162.6,"h":163.132,"l":161.69,"c":162.28,"v":9311399},{"t":1551675600,"o":163.9,"h":167.5,"l":163.83,"c":167.47,"v":17156727},{"t":1551762000,"o":167.31,"h":171.88,"l":166.55,"c":171.25,"v":24266138},{"t":1551848400,"o":172.9,"h":173.57,"l":171.27,"c":172.51,"v":18843395},{"t":1551934800,"o":171.5,"h":171.74,"l":167.61,"c":169.14,"v":15649857},{"t":1552021200,"o":166.2,"h":169.62,"l":165.97,"c":169.6,"v":11357699},{"t":1552276800,"o":171.6,"h":174.3,"l":171.58,"c":171.98,"v":15351838},{"t":1552363200,"o":172.09,"h":173.8,"l":171.2178,"c":171.94,"v":10609535},{"t":1552449600,"o":172.63,"h":174.03,"l":172.12,"c":173.37,"v":9607015},{"t":1552536000,"o":169.76,"h":171.15,"l":168.16,"c":170.26,"v":14802757},{"t":1552622400,"o":164.48,"h":166.71,"l":164.27,"c":166.01,"v":17501846},{"t":1552881600,"o":163.57,"h":163.9,"l":159.28,"c":160.47,"v":32864620},{"t":1552968000,"o":161.48,"h":163.82,"l":160.82,"c":161.63,"v":21550291},{"t":1553054400,"o":161.27,"h":166.12,"l":161.24,"c":165.47,"v":17364616},{"t":1553140800,"o":164.89,"h":166.39,"l":163.75,"c":166.08,"v":13707604},{"t":1553227200,"o":165.65,"h":167.42,"l":164.09,"c":164.34,"v":14302290},{"t":1553486400,"o":163.14,"h":166.54,"l":162,"c":166.27,"v":11009299},{"t":1553572800,"o":167.35,"h":169.45,"l":166.3499,"c":167.68,"v":13876298},{"t":1553659200,"o":167.73,"h":168.94,"l":164.79,"c":165.84,"v":9279826},{"t":1553745600,"o":164.57,"h":166.72,"l":163.33,"c":165.51,"v":9376259},{"t":1553832000,"o":166.39,"h":167.19,"l":164.81,"c":166.66,"v":8777694},{"t":1554091200,"o":167.83,"h":168.9,"l":167.2789,"c":168.69,"v":5794324},{"t":1554177600,"o":170.14,"h":174.9,"l":169.55,"c":174.23,"v":21471600},{"t":1554264000,"o":174.5,"h":177.96,"l":172.95,"c":173.51,"v":25558252},{"t":1554350400,"o":176.02,"h":178,"l":175.5301,"c":176.01,"v":16318218},{"t":1554436800,"o":176.94,"h":177,"l":175.1,"c":175.7,"v":8490747},{"t":1554696000,"o":175.21,"h":175.5,"l":174.23,"c":174.91,"v":6560427},{"t":1554782400,"o":175.62,"h":179.19,"l":175.55,"c":177.66,"v":16740865},{"t":1554868800,"o":178.18,"h":178.79,"l":176.54,"c":177.83,"v":9819134},{"t":1554955200,"o":178.24,"h":178.4,"l":177,"c":177.5,"v":7085392},{"t":1555041600,"o":178,"h":179.63,"l":177.95,"c":179.08,"v":10343203},{"t":1555300800,"o":178.5,"h":180.5,"l":176.87,"c":179.66,"v":9367040},{"t":1555387200,"o":179.17,"h":180.17,"l":178.3,"c":178.85,"v":10138634},{"t":1555473600,"o":179.6,"h":180.74,"l":178.36,"c":178.78,"v":7589562},{"t":1555560000,"o":178.8,"h":178.88,"l":177.34,"c":178.32,"v":9740923},{"t":1555905600,"o":178.25,"h":181.665,"l":178.25,"c":181.49,"v":11672646},{"t":1555992000,"o":182.74,"h":184.22,"l":181.48,"c":183.77,"v":16649460},{"t":1556078400,"o":184.49,"h":185.14,"l":181.65,"c":182.63,"v":23160514},{"t":1556164800,"o":196.98,"h":198.48,"l":192.12,"c":193.1705,"v":47630063},{"t":1556251200,"o":192.5,"h":192.9,"l":189.09,"c":191.49,"v":19839970},{"t":1556510400,"o":190.88,"h":195.41,"l":190.65,"c":194.78,"v":18176943},{"t":1556596800,"o":194.19,"h":197.39,"l":192.28,"c":193.37,"v":20556973},{"t":1556683200,"o":194.78,"h":196.1769,"l":193.01,"c":193.04,"v":14421521},{"t":1556769600,"o":192.99,"h":194,"l":189.75,"c":192.51,"v":11924746},{"t":1556856000,"o":194.38,"h":196.16,"l":193.71,"c":195.47,"v":12960175},{"t":1557115200,"o":191.24,"h":194.28,"l":190.55,"c":193.88,"v":12373433},{"t":1557201600,"o":192.59,"h":192.9,"l":187.85,"c":189.88,"v":13420057},{"t":1557288000,"o":189.49,"h":190.72,"l":188.55,"c":189.54,"v":10830015},{"t":1557374400,"o":187.2,"h":189.77,"l":186.26,"c":188.64,"v":11318407},{"t":1557460800,"o":188.25,"h":190,"l":184.59,"c":188.46,"v":11658033},{"t":1557720000,"o":183.5,"h":185.43,"l":180.84,"c":181.45,"v":14165709},{"t":1557806400,"o":182.52,"h":183.49,"l":178.1,"c":180.73,"v":16491357},{"t":1557892800,"o":180.42,"h":187.28,"l":180.02,"c":186.27,"v":14925589},{"t":1557979200,"o":185.05,"h":188.575,"l":185.05,"c":186.98,"v":11157151},{"t":1558065600,"o":184.84,"h":187.58,"l":184.28,"c":185.24,"v":9400823},{"t":1558324800,"o":182.03,"h":184.23,"l":181.37,"c":182.69,"v":8985873},{"t":1558411200,"o":184.57,"h":185.7,"l":183.885,"c":184.79,"v":6479835},{"t":1558497600,"o":184.73,"h":186.74,"l":183.61,"c":185.29,"v":7343786},{"t":1558584000,"o":182.42,"h":183.9,"l":179.67,"c":180.87,"v":11158349},{"t":1558670400,"o":182.33,"h":183.63,"l":180.83,"c":181.07,"v":7042655},{"t":1559016000,"o":181.54,"h":184.7119,"l":181.4537,"c":184.31,"v":10084904},{"t":1559102400,"o":183.5,"h":184.56,"l":181.35,"c":182.19,"v":11666484},{"t":1559188800,"o":183.08,"h":183.48,"l":180.89,"c":183.01,"v":7960501},{"t":1559275200,"o":180.44,"h":180.54,"l":177.16,"c":177.4,"v":13135682},{"t":1559534400,"o":175,"h":175.05,"l":161.01,"c":164.01,"v":51883512},{"t":1559620800,"o":163.71,"h":168.28,"l":160.84,"c":167.52,"v":42643617},{"t":1559707200,"o":167.48,"h":168.72,"l":164.63,"c":168.15,"v":17442338},{"t":1559793600,"o":168.3,"h":169.7,"l":167.23,"c":168.32,"v":11004943},{"t":1559880000,"o":170.17,"h":173.87,"l":168.84,"c":173.34,"v":14548549},{"t":1560139200,"o":174.75,"h":177.86,"l":173.8,"c":174.83,"v":13236390},{"t":1560225600,"o":178.48,"h":179.98,"l":176.79,"c":178.12,"v":13789793},{"t":1560312000,"o":178.38,"h":179.27,"l":172.88,"c":175.05,"v":15583770},{"t":1560398400,"o":175.53,"h":178.03,"l":174.606,"c":177.49,"v":20905225},{"t":1560484800,"o":180.51,"h":181.8398,"l":180,"c":181.33,"v":29782487},{"t":1560744000,"o":185.01,"h":189.5,"l":184.4105,"c":189.04,"v":26879135},{"t":1560830400,"o":194,"h":194.53,"l":187.28,"c":188.52,"v":34182419},{"t":1560916800,"o":187,"h":188.1,"l":184.55,"c":187.44,"v":18783398},{"t":1561003200,"o":190.95,"h":191.16,"l":187.64,"c":189.31,"v":12742652},{"t":1561089600,"o":188.75,"h":192,"l":188.75,"c":191.15,"v":17047055},{"t":1561348800,"o":192.42,"h":193.98,"l":191.57,"c":192.57,"v":13295230},{"t":1561435200,"o":192.88,"h":193.14,"l":188.13,"c":188.84,"v":14685612},{"t":1561521600,"o":189.54,"h":190.76,"l":187.31,"c":187.6,"v":10716173},{"t":1561608000,"o":189.88,"h":198.88,"l":188.27,"c":189.5,"v":9578567},{"t":1561694400,"o":191.07,"h":193.2,"l":189.94,"c":192.98,"v":12058722},{"t":1561953600,"o":195.21,"h":195.28,"l":191.93,"c":193,"v":12916924},{"t":1562040000,"o":193,"h":195,"l":192.71,"c":195,"v":8237009},{"t":1562126400,"o":194.16,"h":197.4,"l":194.16,"c":197.17,"v":8944096},{"t":1562299200,"o":196.18,"h":197.07,"l":194.17,"c":196.49,"v":9933861},{"t":1562558400,"o":195.19,"h":196.68,"l":193.64,"c":195.77,"v":8506461},{"t":1562644800,"o":194.97,"h":199.46,"l":194.89,"c":199.19,"v":12634658},{"t":1562731200,"o":199.99,"h":202.96,"l":199.67,"c":202.71,"v":18075797},{"t":1562817600,"o":203.26,"h":203.8,"l":200.21,"c":201.23,"v":12479954}]}' - http_version: - recorded_at: Fri, 12 Jul 2019 03:07:06 GMT -recorded_with: VCR 5.0.0 + string: '{"bars":{"AMZN":[{"c":146.71,"h":147.74,"l":144.57,"n":428493,"o":144.57,"t":"2023-11-22T05:00:00Z","v":45702159,"vw":146.792927},{"c":146.74,"h":147.2,"l":145.32,"n":217523,"o":146.7,"t":"2023-11-24T05:00:00Z","v":22378381,"vw":146.371774},{"c":147.73,"h":149.26,"l":146.88,"n":465631,"o":147.53,"t":"2023-11-27T05:00:00Z","v":53766086,"vw":148.287238},{"c":147.03,"h":147.5999,"l":145.53,"n":383311,"o":146.98,"t":"2023-11-28T05:00:00Z","v":42718801,"vw":146.834553},{"c":146.32,"h":148.54,"l":145.97,"n":358384,"o":147.85,"t":"2023-11-29T05:00:00Z","v":40613980,"vw":146.863303},{"c":146.09,"h":146.93,"l":144.332,"n":460925,"o":144.76,"t":"2023-11-30T05:00:00Z","v":65818642,"vw":145.758463},{"c":147.03,"h":147.245,"l":145.55,"n":360864,"o":146,"t":"2023-12-01T05:00:00Z","v":39936501,"vw":146.690745}],"CRM":[{"c":223.84,"h":225.6894,"l":223.21,"n":72288,"o":224.3,"t":"2023-11-22T05:00:00Z","v":3894415,"vw":224.245398},{"c":224.38,"h":224.49,"l":222.12,"n":29902,"o":224.36,"t":"2023-11-24T05:00:00Z","v":1874513,"vw":224.0043},{"c":224.79,"h":226.22,"l":224.25,"n":86213,"o":225.5,"t":"2023-11-27T05:00:00Z","v":4885508,"vw":225.135271},{"c":224.92,"h":225.53,"l":222.23,"n":84210,"o":223.61,"t":"2023-11-28T05:00:00Z","v":5535337,"vw":224.479054},{"c":230.35,"h":231.5,"l":227.26,"n":190180,"o":228.61,"t":"2023-11-29T05:00:00Z","v":12327444,"vw":232.588942},{"c":251.9,"h":252.5,"l":243.65,"n":311254,"o":249.05,"t":"2023-11-30T05:00:00Z","v":24425717,"vw":248.987512},{"c":260,"h":263.43,"l":249.7,"n":200641,"o":250,"t":"2023-12-01T05:00:00Z","v":14532945,"vw":258.76434}]},"next_page_token":null}' + recorded_at: Sat, 02 Dec 2023 20:24:46 GMT +recorded_with: VCR 6.1.0 diff --git a/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol.yml b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol.yml deleted file mode 100644 index 7ec1b39..0000000 --- a/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol.yml +++ /dev/null @@ -1,42 +0,0 @@ ---- -http_interactions: -- request: - method: get - uri: https://data.alpaca.markets/v1/bars/1D?limit=100&symbols=CRM - body: - encoding: US-ASCII - string: '' - headers: - User-Agent: - - Faraday v0.15.4 - Apca-Api-Key-Id: - - "" - Apca-Api-Secret-Key: - - "" - Accept-Encoding: - - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 - Accept: - - "*/*" - response: - status: - code: 200 - message: OK - headers: - Server: - - nginx/1.13.0 - Date: - - Fri, 12 Jul 2019 03:07:05 GMT - Content-Type: - - application/json; charset=UTF-8 - Transfer-Encoding: - - chunked - Connection: - - keep-alive - Vary: - - Accept-Encoding - body: - encoding: UTF-8 - string: '{"CRM":[{"t":1550552400,"o":159.66,"h":161.48,"l":159.14,"c":160.57,"v":3255800},{"t":1550638800,"o":160.33,"h":161.49,"l":157.21,"c":158.46,"v":3882724},{"t":1550725200,"o":157.7,"h":160.48,"l":157.3,"c":159.67,"v":3855032},{"t":1550811600,"o":160.47,"h":161.71,"l":160.2,"c":161.28,"v":3243626},{"t":1551070800,"o":162.51,"h":163.06,"l":160.93,"c":161.34,"v":4615384},{"t":1551157200,"o":160.81,"h":163.38,"l":159.87,"c":163,"v":3156129},{"t":1551243600,"o":162.29,"h":163.53,"l":160.5,"c":163.15,"v":3348926},{"t":1551330000,"o":163,"h":164.6,"l":162.17,"c":163.64,"v":4747198},{"t":1551416400,"o":165.15,"h":166.15,"l":161.75,"c":164.5,"v":6108847},{"t":1551675600,"o":165.56,"h":165.79,"l":155.42,"c":158.6,"v":14864352},{"t":1551762000,"o":159.92,"h":160.88,"l":154.8,"c":156.9752,"v":14136374},{"t":1551848400,"o":157.13,"h":160.25,"l":156.278,"c":156.76,"v":6661531},{"t":1551934800,"o":156.09,"h":157.59,"l":154.81,"c":155.54,"v":5721039},{"t":1552021200,"o":152.02,"h":155.41,"l":150.25,"c":155.09,"v":4282661},{"t":1552276800,"o":155.9,"h":157.77,"l":153.4301,"c":157.61,"v":5344640},{"t":1552363200,"o":158,"h":159.37,"l":157.16,"c":158.2,"v":3670753},{"t":1552449600,"o":158.85,"h":162,"l":158.61,"c":159.78,"v":4724278},{"t":1552536000,"o":160.95,"h":161.59,"l":159.74,"c":160.7,"v":2841927},{"t":1552622400,"o":159.915,"h":162.18,"l":159.59,"c":161.51,"v":3579147},{"t":1552881600,"o":161.4,"h":163.33,"l":160.8799,"c":161.97,"v":3010436},{"t":1552968000,"o":163.36,"h":164.62,"l":162.84,"c":163.96,"v":3275172},{"t":1553054400,"o":163.84,"h":164.95,"l":161.51,"c":163.47,"v":3509450},{"t":1553140800,"o":163.17,"h":166.99,"l":162.75,"c":166.91,"v":3846785},{"t":1553227200,"o":165.96,"h":166.49,"l":161.35,"c":161.52,"v":4370572},{"t":1553486400,"o":160.23,"h":161.5988,"l":159.2241,"c":160.89,"v":2935979},{"t":1553572800,"o":161.43,"h":162.07,"l":157.39,"c":159.37,"v":6523271},{"t":1553659200,"o":159,"h":159.3,"l":152.37,"c":155.08,"v":7679910},{"t":1553745600,"o":155.69,"h":156.48,"l":153.51,"c":155.19,"v":4147860},{"t":1553832000,"o":156.87,"h":158.5,"l":155.425,"c":158.42,"v":4071317},{"t":1554091200,"o":160.1,"h":161.48,"l":158.5111,"c":161.19,"v":2432121},{"t":1554177600,"o":160.86,"h":160.99,"l":158.91,"c":160.52,"v":2894275},{"t":1554264000,"o":161.78,"h":163.14,"l":160.65,"c":162.62,"v":3415184},{"t":1554350400,"o":162.71,"h":162.8,"l":155.83,"c":158.49,"v":6007449},{"t":1554436800,"o":159.63,"h":160.24,"l":158.02,"c":158.56,"v":3910123},{"t":1554696000,"o":158.4,"h":158.79,"l":156.45,"c":158.43,"v":2581755},{"t":1554782400,"o":157.04,"h":158.3525,"l":156.65,"c":156.98,"v":5000738},{"t":1554868800,"o":158.2,"h":160.38,"l":157.65,"c":160.28,"v":3137346},{"t":1554955200,"o":160.16,"h":160.83,"l":159.02,"c":160.77,"v":2279905},{"t":1555041600,"o":162,"h":162.5,"l":159.5,"c":160.73,"v":2316378},{"t":1555300800,"o":161,"h":162.031,"l":159.49,"c":160.09,"v":2236894},{"t":1555387200,"o":160.04,"h":160.26,"l":157.7501,"c":158.73,"v":2716684},{"t":1555473600,"o":159.05,"h":159.05,"l":155.07,"c":155.32,"v":4366630},{"t":1555560000,"o":154.9,"h":156.2078,"l":153.17,"c":156,"v":3888784},{"t":1555905600,"o":155.45,"h":159.14,"l":155.28,"c":158.79,"v":2381611},{"t":1555992000,"o":159.76,"h":161.4,"l":158.41,"c":161.21,"v":3104255},{"t":1556078400,"o":161.88,"h":162.49,"l":159.4,"c":159.56,"v":2969229},{"t":1556164800,"o":162,"h":163.89,"l":161,"c":163.11,"v":4836788},{"t":1556251200,"o":162.42,"h":166.06,"l":161.28,"c":166,"v":3012836},{"t":1556510400,"o":166.71,"h":167.56,"l":165.33,"c":165.36,"v":3874794},{"t":1556596800,"o":165.19,"h":166.44,"l":163.62,"c":165.28,"v":2880093},{"t":1556683200,"o":166.01,"h":166.22,"l":162.14,"c":162.14,"v":2318142},{"t":1556769600,"o":161.69,"h":162.7,"l":159.63,"c":161.82,"v":3004890},{"t":1556856000,"o":162.58,"h":163.5,"l":160.86,"c":163.35,"v":2836600},{"t":1557115200,"o":158.62,"h":162.84,"l":157.86,"c":162.54,"v":2271580},{"t":1557201600,"o":161.33,"h":161.67,"l":154.75,"c":156.86,"v":5562582},{"t":1557288000,"o":157.11,"h":157.93,"l":155.04,"c":156.87,"v":3757458},{"t":1557374400,"o":154.65,"h":157.1,"l":152.3888,"c":156.31,"v":5469835},{"t":1557460800,"o":156.28,"h":160.614,"l":154.38,"c":159.95,"v":4073722},{"t":1557720000,"o":154.92,"h":156.9,"l":152.78,"c":153.11,"v":5314622},{"t":1557806400,"o":155.05,"h":158.59,"l":152.92,"c":158.05,"v":4451058},{"t":1557892800,"o":153.82,"h":156.38,"l":151.7,"c":155.07,"v":7175841},{"t":1557979200,"o":156.76,"h":159.45,"l":155.9,"c":158.52,"v":4495866},{"t":1558065600,"o":156.18,"h":157.155,"l":153.17,"c":154.53,"v":4847807},{"t":1558324800,"o":152.47,"h":156.09,"l":151.7044,"c":155.89,"v":4609728},{"t":1558411200,"o":157.36,"h":157.84,"l":155.18,"c":155.79,"v":3280197},{"t":1558497600,"o":155.87,"h":158.19,"l":155.84,"c":157.67,"v":2775727},{"t":1558584000,"o":156.03,"h":156.34,"l":152.15,"c":153.73,"v":4016435},{"t":1558670400,"o":154.89,"h":156.93,"l":154.16,"c":154.59,"v":2856661},{"t":1559016000,"o":155.35,"h":157.81,"l":154.39,"c":155.15,"v":3779542},{"t":1559102400,"o":153.76,"h":154.06,"l":151.2,"c":152.84,"v":3938289},{"t":1559188800,"o":154.32,"h":155.87,"l":153.9,"c":155.65,"v":4096211},{"t":1559275200,"o":152.66,"h":154.48,"l":151.26,"c":151.44,"v":4660799},{"t":1559534400,"o":150.7,"h":150.7,"l":143.39,"c":145.03,"v":8034617},{"t":1559620800,"o":146.05,"h":150.81,"l":142.51,"c":150.72,"v":9716082},{"t":1559707200,"o":157.15,"h":158.5,"l":154.55,"c":158.41,"v":10932400},{"t":1559793600,"o":158.5,"h":160,"l":157.33,"c":159.37,"v":5072387},{"t":1559880000,"o":159.84,"h":162.99,"l":159.5,"c":161.22,"v":6613271},{"t":1560139200,"o":153.48,"h":157.45,"l":150.83,"c":152.8,"v":27741786},{"t":1560225600,"o":155.31,"h":155.71,"l":148.79,"c":150.05,"v":14353316},{"t":1560312000,"o":151.11,"h":152.32,"l":150.15,"c":151.26,"v":6366463},{"t":1560398400,"o":152.16,"h":152.24,"l":150.25,"c":151.34,"v":4746586},{"t":1560484800,"o":151.04,"h":151.98,"l":149.48,"c":149.9801,"v":5424977},{"t":1560744000,"o":150.2,"h":151.2843,"l":149.87,"c":150.28,"v":4067304},{"t":1560830400,"o":151.88,"h":152.95,"l":150.5,"c":150.6,"v":6275901},{"t":1560916800,"o":151.69,"h":154.47,"l":150.515,"c":154.1,"v":7398157},{"t":1561003200,"o":156.29,"h":158.29,"l":155.42,"c":157.21,"v":9186146},{"t":1561089600,"o":156.67,"h":157.79,"l":155.94,"c":156.78,"v":5854776},{"t":1561348800,"o":157.39,"h":157.73,"l":152.51,"c":152.54,"v":5592008},{"t":1561435200,"o":152.83,"h":152.9699,"l":148.59,"c":149.27,"v":6565943},{"t":1561521600,"o":151.28,"h":151.38,"l":148.92,"c":149.04,"v":4897780},{"t":1561608000,"o":149.89,"h":150.76,"l":148.47,"c":150.67,"v":6338779},{"t":1561694400,"o":151.11,"h":151.77,"l":149.6,"c":151.53,"v":4664177},{"t":1561953600,"o":154.57,"h":154.74,"l":151.8503,"c":154.01,"v":5662224},{"t":1562040000,"o":154.29,"h":154.36,"l":152.58,"c":154.12,"v":4352992},{"t":1562126400,"o":154.54,"h":155.75,"l":154.16,"c":155.73,"v":3106378},{"t":1562299200,"o":153.95,"h":154.805,"l":152.57,"c":154.61,"v":3572534},{"t":1562558400,"o":153.52,"h":153.69,"l":152.044,"c":152.81,"v":3937622},{"t":1562644800,"o":152.08,"h":154.19,"l":151.68,"c":153.91,"v":4236667},{"t":1562731200,"o":154.57,"h":156.4,"l":154.57,"c":156.24,"v":4353955},{"t":1562817600,"o":156.82,"h":159.3,"l":156.62,"c":158.88,"v":6524677}]}' - http_version: - recorded_at: Fri, 12 Jul 2019 03:07:05 GMT -recorded_with: VCR 5.0.0 diff --git a/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol_as_Array.yml b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol_as_Array.yml new file mode 100644 index 0000000..91b3647 --- /dev/null +++ b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol_as_Array.yml @@ -0,0 +1,59 @@ +--- +http_interactions: +- request: + method: get + uri: https://data.alpaca.markets/v2/stocks/bars?feed=sip&limit=100&start=2023-11-22T00:00:00%2B00:00&symbols=CRM&timeframe=1D + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.0 + Apca-Api-Key-Id: + - "" + Apca-Api-Secret-Key: + - "" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Sat, 02 Dec 2023 20:24:45 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Vary: + - Accept-Encoding + X-Ratelimit-Limit: + - '200' + X-Ratelimit-Remaining: + - '199' + X-Ratelimit-Reset: + - '1701548686' + Strict-Transport-Security: + - max-age=15724800; includeSubDomains + X-Request-Id: + - 87241a9d569fc34ee73632170830dd27 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, OPTIONS + Access-Control-Allow-Headers: + - Apca-Api-Key-Id, Apca-Api-Secret-Key, Authorization + Access-Control-Max-Age: + - '1728000' + body: + encoding: UTF-8 + string: '{"bars":{"CRM":[{"c":223.84,"h":225.6894,"l":223.21,"n":72288,"o":224.3,"t":"2023-11-22T05:00:00Z","v":3894415,"vw":224.245398},{"c":224.38,"h":224.49,"l":222.12,"n":29902,"o":224.36,"t":"2023-11-24T05:00:00Z","v":1874513,"vw":224.0043},{"c":224.79,"h":226.22,"l":224.25,"n":86213,"o":225.5,"t":"2023-11-27T05:00:00Z","v":4885508,"vw":225.135271},{"c":224.92,"h":225.53,"l":222.23,"n":84210,"o":223.61,"t":"2023-11-28T05:00:00Z","v":5535337,"vw":224.479054},{"c":230.35,"h":231.5,"l":227.26,"n":190180,"o":228.61,"t":"2023-11-29T05:00:00Z","v":12327444,"vw":232.588942},{"c":251.9,"h":252.5,"l":243.65,"n":311254,"o":249.05,"t":"2023-11-30T05:00:00Z","v":24425717,"vw":248.987512},{"c":260,"h":263.43,"l":249.7,"n":200641,"o":250,"t":"2023-12-01T05:00:00Z","v":14532945,"vw":258.76434}]},"next_page_token":null}' + recorded_at: Sat, 02 Dec 2023 20:24:45 GMT +recorded_with: VCR 6.1.0 diff --git a/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol_as_String.yml b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol_as_String.yml new file mode 100644 index 0000000..98da756 --- /dev/null +++ b/spec/cassettes/Alpaca_Trade_Api_Client/_bars/returns_Bar_objects_for_one_symbol_as_String.yml @@ -0,0 +1,59 @@ +--- +http_interactions: +- request: + method: get + uri: https://data.alpaca.markets/v2/stocks/bars?feed=sip&limit=100&start=2023-11-22T00:00:00%2B00:00&symbols=CRM&timeframe=1D + body: + encoding: US-ASCII + string: '' + headers: + User-Agent: + - Faraday v1.10.0 + Apca-Api-Key-Id: + - "" + Apca-Api-Secret-Key: + - "" + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Sat, 02 Dec 2023 20:24:45 GMT + Content-Type: + - application/json; charset=UTF-8 + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Vary: + - Accept-Encoding + X-Ratelimit-Limit: + - '200' + X-Ratelimit-Remaining: + - '198' + X-Ratelimit-Reset: + - '1701548686' + Strict-Transport-Security: + - max-age=15724800; includeSubDomains + X-Request-Id: + - 07db06dcd7e027c3edc865663ac0b942 + Access-Control-Allow-Origin: + - "*" + Access-Control-Allow-Credentials: + - 'true' + Access-Control-Allow-Methods: + - GET, OPTIONS + Access-Control-Allow-Headers: + - Apca-Api-Key-Id, Apca-Api-Secret-Key, Authorization + Access-Control-Max-Age: + - '1728000' + body: + encoding: UTF-8 + string: '{"bars":{"CRM":[{"c":223.84,"h":225.6894,"l":223.21,"n":72288,"o":224.3,"t":"2023-11-22T05:00:00Z","v":3894415,"vw":224.245398},{"c":224.38,"h":224.49,"l":222.12,"n":29902,"o":224.36,"t":"2023-11-24T05:00:00Z","v":1874513,"vw":224.0043},{"c":224.79,"h":226.22,"l":224.25,"n":86213,"o":225.5,"t":"2023-11-27T05:00:00Z","v":4885508,"vw":225.135271},{"c":224.92,"h":225.53,"l":222.23,"n":84210,"o":223.61,"t":"2023-11-28T05:00:00Z","v":5535337,"vw":224.479054},{"c":230.35,"h":231.5,"l":227.26,"n":190180,"o":228.61,"t":"2023-11-29T05:00:00Z","v":12327444,"vw":232.588942},{"c":251.9,"h":252.5,"l":243.65,"n":311254,"o":249.05,"t":"2023-11-30T05:00:00Z","v":24425717,"vw":248.987512},{"c":260,"h":263.43,"l":249.7,"n":200641,"o":250,"t":"2023-12-01T05:00:00Z","v":14532945,"vw":258.76434}]},"next_page_token":null}' + recorded_at: Sat, 02 Dec 2023 20:24:45 GMT +recorded_with: VCR 6.1.0 diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 5c23b7b..4ea738f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -35,6 +35,7 @@ RSpec.configure do |config| # Enable flags like --only-failures and --next-failure config.example_status_persistence_file_path = '.rspec_status' + config.filter_run_when_matching :focus # Disable RSpec exposing methods globally on `Module` and `main` config.disable_monkey_patching!