├── .gitignore ├── LICENSE ├── README.md ├── pom.xml └── src ├── main └── java │ ├── io │ └── codera │ │ └── quant │ │ ├── Application.java │ │ ├── BackTestApplication.java │ │ ├── backtest │ │ └── BollingerBandsBackTest.java │ │ ├── config │ │ ├── Config.java │ │ ├── ContractBuilder.java │ │ └── IbConnectionHandler.java │ │ ├── context │ │ ├── IbTradingContext.java │ │ └── TradingContext.java │ │ ├── exception │ │ ├── CriterionViolationException.java │ │ ├── NoOrderAvailable.java │ │ ├── NotEnoughDataToCalculateDiffMean.java │ │ ├── NotEnoughDataToCalculateZScore.java │ │ └── PriceNotAvailableException.java │ │ ├── observers │ │ ├── AccountObserver.java │ │ ├── HistoryObserver.java │ │ ├── IbAccountObserver.java │ │ ├── IbHistoryObserver.java │ │ ├── IbMarketDataObserver.java │ │ ├── IbOrderObserver.java │ │ ├── MarketDataObserver.java │ │ └── OrderObserver.java │ │ ├── strategy │ │ ├── AbstractStrategy.java │ │ ├── BackTestResult.java │ │ ├── Criterion.java │ │ ├── IbPerMinuteStrategyRunner.java │ │ ├── Strategy.java │ │ ├── StrategyRunner.java │ │ ├── criterion │ │ │ ├── NoOpenOrdersExistEntryCriterion.java │ │ │ ├── OpenIbOrdersExistForAllSymbolsExitCriterion.java │ │ │ ├── OpenOrdersExistForAllSymbolsExitCriterion.java │ │ │ ├── common │ │ │ │ └── NoPendingOrdersCommonCriterion.java │ │ │ └── stoploss │ │ │ │ └── DefaultStopLossCriterion.java │ │ ├── kalman │ │ │ └── KalmanFilterStrategy.java │ │ └── meanrevertion │ │ │ ├── BollingerBandsStrategy.java │ │ │ ├── ZScore.java │ │ │ ├── ZScoreEntryCriterion.java │ │ │ └── ZScoreExitCriterion.java │ │ └── util │ │ ├── Helper.java │ │ └── MathUtil.java │ └── org │ └── lst │ └── trading │ ├── LICENSE │ ├── README.md │ ├── lib │ ├── backtest │ │ ├── BackTest.java │ │ ├── BackTestTradingContext.java │ │ ├── SimpleClosedOrder.java │ │ └── SimpleOrder.java │ ├── csv │ │ ├── CsvReader.java │ │ └── CsvWriter.java │ ├── model │ │ ├── Bar.java │ │ ├── ClosedOrder.java │ │ ├── Order.java │ │ ├── TradingContext.java │ │ └── TradingStrategy.java │ ├── series │ │ ├── DoubleSeries.java │ │ ├── MultipleDoubleSeries.java │ │ └── TimeSeries.java │ └── util │ │ ├── HistoricalPriceService.java │ │ ├── Http.java │ │ ├── Statistics.java │ │ ├── Util.java │ │ └── yahoo │ │ └── YahooFinance.java │ └── main │ ├── BacktestMain.java │ └── strategy │ ├── AbstractTradingStrategy.java │ ├── BuyAndHold.java │ ├── MultipleTradingStrategy.java │ └── kalman │ ├── Cointegration.java │ ├── CointegrationTradingStrategy.java │ └── KalmanFilter.java └── test ├── java └── io │ └── codera │ └── quant │ ├── config │ ├── GuiceJUnit4Runner.java │ └── TestConfig.java │ └── strategy │ └── meanrevertion │ └── ZScoreTest.java └── resources ├── GLD.csv └── USO.csv /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/README.md -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/pom.xml -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/Application.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/Application.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/BackTestApplication.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/BackTestApplication.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/backtest/BollingerBandsBackTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/backtest/BollingerBandsBackTest.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/config/Config.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/config/Config.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/config/ContractBuilder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/config/ContractBuilder.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/config/IbConnectionHandler.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/config/IbConnectionHandler.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/context/IbTradingContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/context/IbTradingContext.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/context/TradingContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/context/TradingContext.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/exception/CriterionViolationException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/exception/CriterionViolationException.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/exception/NoOrderAvailable.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/exception/NoOrderAvailable.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/exception/NotEnoughDataToCalculateDiffMean.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/exception/NotEnoughDataToCalculateDiffMean.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/exception/NotEnoughDataToCalculateZScore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/exception/NotEnoughDataToCalculateZScore.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/exception/PriceNotAvailableException.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/exception/PriceNotAvailableException.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/observers/AccountObserver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/observers/AccountObserver.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/observers/HistoryObserver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/observers/HistoryObserver.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/observers/IbAccountObserver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/observers/IbAccountObserver.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/observers/IbHistoryObserver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/observers/IbHistoryObserver.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/observers/IbMarketDataObserver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/observers/IbMarketDataObserver.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/observers/IbOrderObserver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/observers/IbOrderObserver.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/observers/MarketDataObserver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/observers/MarketDataObserver.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/observers/OrderObserver.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/observers/OrderObserver.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/AbstractStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/AbstractStrategy.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/BackTestResult.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/BackTestResult.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/Criterion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/Criterion.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/IbPerMinuteStrategyRunner.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/IbPerMinuteStrategyRunner.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/Strategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/Strategy.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/StrategyRunner.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/StrategyRunner.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/criterion/NoOpenOrdersExistEntryCriterion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/criterion/NoOpenOrdersExistEntryCriterion.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/criterion/OpenIbOrdersExistForAllSymbolsExitCriterion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/criterion/OpenIbOrdersExistForAllSymbolsExitCriterion.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/criterion/OpenOrdersExistForAllSymbolsExitCriterion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/criterion/OpenOrdersExistForAllSymbolsExitCriterion.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/criterion/common/NoPendingOrdersCommonCriterion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/criterion/common/NoPendingOrdersCommonCriterion.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/criterion/stoploss/DefaultStopLossCriterion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/criterion/stoploss/DefaultStopLossCriterion.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/kalman/KalmanFilterStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/kalman/KalmanFilterStrategy.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/meanrevertion/BollingerBandsStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/meanrevertion/BollingerBandsStrategy.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/meanrevertion/ZScore.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/meanrevertion/ZScore.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/meanrevertion/ZScoreEntryCriterion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/meanrevertion/ZScoreEntryCriterion.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/strategy/meanrevertion/ZScoreExitCriterion.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/strategy/meanrevertion/ZScoreExitCriterion.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/util/Helper.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/util/Helper.java -------------------------------------------------------------------------------- /src/main/java/io/codera/quant/util/MathUtil.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/io/codera/quant/util/MathUtil.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/LICENSE -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/README.md -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/backtest/BackTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/backtest/BackTest.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/backtest/BackTestTradingContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/backtest/BackTestTradingContext.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/backtest/SimpleClosedOrder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/backtest/SimpleClosedOrder.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/backtest/SimpleOrder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/backtest/SimpleOrder.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/csv/CsvReader.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/csv/CsvReader.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/csv/CsvWriter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/csv/CsvWriter.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/model/Bar.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/model/Bar.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/model/ClosedOrder.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/model/ClosedOrder.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/model/Order.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/model/Order.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/model/TradingContext.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/model/TradingContext.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/model/TradingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/model/TradingStrategy.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/series/DoubleSeries.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/series/DoubleSeries.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/series/MultipleDoubleSeries.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/series/MultipleDoubleSeries.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/series/TimeSeries.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/series/TimeSeries.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/util/HistoricalPriceService.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/util/HistoricalPriceService.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/util/Http.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/util/Http.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/util/Statistics.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/util/Statistics.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/util/Util.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/util/Util.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/lib/util/yahoo/YahooFinance.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/lib/util/yahoo/YahooFinance.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/main/BacktestMain.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/main/BacktestMain.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/main/strategy/AbstractTradingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/main/strategy/AbstractTradingStrategy.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/main/strategy/BuyAndHold.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/main/strategy/BuyAndHold.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/main/strategy/MultipleTradingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/main/strategy/MultipleTradingStrategy.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/main/strategy/kalman/Cointegration.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/main/strategy/kalman/Cointegration.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/main/strategy/kalman/CointegrationTradingStrategy.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/main/strategy/kalman/CointegrationTradingStrategy.java -------------------------------------------------------------------------------- /src/main/java/org/lst/trading/main/strategy/kalman/KalmanFilter.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/main/java/org/lst/trading/main/strategy/kalman/KalmanFilter.java -------------------------------------------------------------------------------- /src/test/java/io/codera/quant/config/GuiceJUnit4Runner.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/test/java/io/codera/quant/config/GuiceJUnit4Runner.java -------------------------------------------------------------------------------- /src/test/java/io/codera/quant/config/TestConfig.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/test/java/io/codera/quant/config/TestConfig.java -------------------------------------------------------------------------------- /src/test/java/io/codera/quant/strategy/meanrevertion/ZScoreTest.java: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/test/java/io/codera/quant/strategy/meanrevertion/ZScoreTest.java -------------------------------------------------------------------------------- /src/test/resources/GLD.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/test/resources/GLD.csv -------------------------------------------------------------------------------- /src/test/resources/USO.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dsinyakov/quant/HEAD/src/test/resources/USO.csv --------------------------------------------------------------------------------