diff --git a/tests/data/test_converter.py b/tests/data/test_converter.py index da1459ef7..8b4ecc6f7 100644 --- a/tests/data/test_converter.py +++ b/tests/data/test_converter.py @@ -135,6 +135,73 @@ def test_ohlcv_fill_up_missing_data2(caplog): f"{len(data)} - after: {len(data2)}.*", caplog) +def test_ohlcv_to_dataframe_1M(): + + # Monthly ticks from 2019-09-01 to 2023-07-01 + ticks = [ + [1567296000000, 8042.08, 10475.54, 7700.67, 8041.96, 608742.1109999999], + [1569888000000, 8285.31, 10408.48, 7172.76, 9150.0, 2439561.887], + [1572566400000, 9149.88, 9550.0, 6510.19, 7542.93, 4042674.725], + [1575158400000, 7541.08, 7800.0, 6427.0, 7189.0, 4063882.296], + [1577836800000, 7189.43, 9599.0, 6863.44, 9364.51, 5165281.358], + [1580515200000, 9364.5, 10540.0, 8450.0, 8531.98, 4581788.124], + [1583020800000, 8532.5, 9204.0, 3621.81, 6407.1, 10859497.479], + [1585699200000, 6407.1, 9479.77, 6140.0, 8624.76, 11276526.968], + [1588291200000, 8623.61, 10080.0, 7940.0, 9446.43, 12469561.02], + [1590969600000, 9446.49, 10497.25, 8816.4, 9138.87, 6684044.201], + [1593561600000, 9138.88, 11488.0, 8900.0, 11343.68, 5709327.926], + [1596240000000, 11343.67, 12499.42, 10490.0, 11658.11, 6746487.129], + [1598918400000, 11658.11, 12061.07, 9808.58, 10773.0, 6442697.051], + [1601510400000, 10773.0, 14140.0, 10371.03, 13783.73, 7404103.004], + [1604188800000, 13783.73, 19944.0, 13195.0, 19720.0, 12328272.549], + [1606780800000, 19722.09, 29376.7, 17555.0, 28951.68, 10067314.24], + [1609459200000, 28948.19, 42125.51, 27800.0, 33126.21, 12408873.079], + [1612137600000, 33125.11, 58472.14, 32322.47, 45163.36, 8784474.482], + [1614556800000, 45162.64, 61950.0, 44972.49, 58807.24, 9459821.267], + [1617235200000, 58810.99, 64986.11, 46930.43, 57684.16, 7895051.389], + [1619827200000, 57688.29, 59654.0, 28688.0, 37243.38, 16790964.443], + [1622505600000, 37244.36, 41413.0, 28780.01, 35031.39, 23474519.886], + [1625097600000, 35031.39, 48168.6, 29242.24, 41448.11, 16932491.175], + [1627776000000, 41448.1, 50600.0, 37291.0, 47150.32, 13645800.254], + [1630454400000, 47150.32, 52950.0, 39503.58, 43796.57, 10734742.869], + [1633046400000, 43799.49, 67150.0, 43260.01, 61348.61, 9111112.847], + [1635724800000, 61347.14, 69198.7, 53245.0, 56975.0, 7111424.463], + [1638316800000, 56978.06, 59100.0, 40888.89, 46210.56, 8404449.024], + [1640995200000, 46210.57, 48000.0, 32853.83, 38439.04, 11047479.277], + [1643673600000, 38439.04, 45847.5, 34303.7, 43155.0, 10910339.91], + [1646092800000, 43155.0, 48200.0, 37134.0, 45506.0, 10459721.586], + [1648771200000, 45505.9, 47448.0, 37550.0, 37614.5, 8463568.862], + [1651363200000, 37614.4, 40071.7, 26631.0, 31797.8, 14463715.774], + [1654041600000, 31797.9, 31986.1, 17593.2, 19923.5, 20710810.306], + [1656633600000, 19923.3, 24700.0, 18780.1, 23290.1, 20582518.513], + [1659312000000, 23290.1, 25200.0, 19508.0, 20041.5, 17221921.557], + [1661990400000, 20041.4, 22850.0, 18084.3, 19411.7, 21935261.414], + [1664582400000, 19411.6, 21088.0, 17917.8, 20482.0, 16625843.584], + [1667260800000, 20482.1, 21473.7, 15443.2, 17153.3, 18460614.013], + [1669852800000, 17153.4, 18400.0, 16210.0, 16537.6, 9702408.711], + [1672531200000, 16537.5, 23962.7, 16488.0, 23119.4, 14732180.645], + [1675209600000, 23119.5, 25347.6, 21338.0, 23129.6, 15025197.415], + [1677628800000, 23129.7, 29184.8, 19521.6, 28454.9, 23317458.541], + [1680307200000, 28454.8, 31059.0, 26919.3, 29223.0, 14654208.219], + [1682899200000, 29223.0, 29840.0, 25751.0, 27201.1, 13328157.284], + [1685577600000, 27201.1, 31500.0, 24777.0, 30460.2, 14099299.273], + [1688169600000, 30460.2, 31850.0, 28830.0, 29338.8, 8760361.377] + ] + + data = ohlcv_to_dataframe(ticks, '1M', pair="UNITTEST/USDT", + fill_missing=False, drop_incomplete=False) + assert len(data) == len(ticks) + assert data.iloc[0]['date'].strftime('%Y-%m-%d') == '2019-09-01' + assert data.iloc[-1]['date'].strftime('%Y-%m-%d') == '2023-07-01' + + # Test with filling missing data + data = ohlcv_to_dataframe(ticks, '1M', pair="UNITTEST/USDT", + fill_missing=True, drop_incomplete=False) + assert len(data) == len(ticks) + assert data.iloc[0]['date'].strftime('%Y-%m-%d') == '2019-09-01' + assert data.iloc[-1]['date'].strftime('%Y-%m-%d') == '2023-07-01' + + def test_ohlcv_drop_incomplete(caplog): timeframe = '1d' ticks = [