All Projects → evdubs → oic-options-chains

evdubs / oic-options-chains

Licence: MPL-2.0 license
ETL for OIC Options Chains

Programming Languages

racket
414 projects
shell
77523 projects

Projects that are alternatives of or similar to oic-options-chains

DQCS
数据质量控制系统
Stars: ✭ 34 (+54.55%)
Mutual labels:  etl
mik
The Move to Islandora Kit is an extensible PHP command-line tool for converting source content and metadata into packages suitable for importing into Islandora (or other digital repository and preservations systems).
Stars: ✭ 32 (+45.45%)
Mutual labels:  etl
DataBridge.NET
Configurable data bridge for permanent ETL jobs
Stars: ✭ 16 (-27.27%)
Mutual labels:  etl
sql-to-redis
🔄 Simple tool for ETL. From SQL to Redis.
Stars: ✭ 18 (-18.18%)
Mutual labels:  etl
bigquery-kafka-connect
☁️ nodejs kafka connect connector for Google BigQuery
Stars: ✭ 17 (-22.73%)
Mutual labels:  etl
DaFlow
Apache-Spark based Data Flow(ETL) Framework which supports multiple read, write destinations of different types and also support multiple categories of transformation rules.
Stars: ✭ 24 (+9.09%)
Mutual labels:  etl
covid-19
Data ETL & Analysis on the global and Mexican datasets of the COVID-19 pandemic.
Stars: ✭ 14 (-36.36%)
Mutual labels:  etl
versatile-data-kit
Versatile Data Kit (VDK) is an open source framework that enables anybody with basic SQL or Python knowledge to create their own data pipelines.
Stars: ✭ 144 (+554.55%)
Mutual labels:  etl
etlflow
EtlFlow is an ecosystem of functional libraries in Scala based on ZIO for writing various different tasks, jobs on GCP and AWS.
Stars: ✭ 38 (+72.73%)
Mutual labels:  etl
go-bqloader
bqloader is a simple ETL framework to load data from Cloud Storage into BigQuery.
Stars: ✭ 16 (-27.27%)
Mutual labels:  etl
dogETL
A lib to transform data from jdbc,csv,json to ecah other.
Stars: ✭ 15 (-31.82%)
Mutual labels:  etl
architect big data solutions with spark
code, labs and lectures for the course
Stars: ✭ 40 (+81.82%)
Mutual labels:  etl
cubetl
CubETL - Framework and tool for data ETL (Extract, Transform and Load) in Python (PERSONAL PROJECT / SELDOM MAINTAINED)
Stars: ✭ 21 (-4.55%)
Mutual labels:  etl
hamilton
A scalable general purpose micro-framework for defining dataflows. You can use it to create dataframes, numpy matrices, python objects, ML models, etc.
Stars: ✭ 612 (+2681.82%)
Mutual labels:  etl
PDAP-Scrapers
Code relating to scraping public police data.
Stars: ✭ 72 (+227.27%)
Mutual labels:  etl
nasdaq-symbols
ETL for the NASDAQ symbol file
Stars: ✭ 13 (-40.91%)
Mutual labels:  etl
wrangle
A data transformation package for deep learning with Autonomio, Keras and TensorFlow.
Stars: ✭ 15 (-31.82%)
Mutual labels:  etl
dflib
In-memory Java DataFrame library
Stars: ✭ 50 (+127.27%)
Mutual labels:  etl
mydataharbor
🇨🇳 MyDataHarbor是一个致力于解决任意数据源到任意数据源的分布式、高扩展性、高性能、事务级的数据同步中间件。帮助用户可靠、快速、稳定的对海量数据进行准实时增量同步或者定时全量同步,主要定位是为实时交易系统服务,亦可用于大数据的数据同步(ETL领域)。
Stars: ✭ 28 (+27.27%)
Mutual labels:  etl
cobrix
A COBOL parser and Mainframe/EBCDIC data source for Apache Spark
Stars: ✭ 109 (+395.45%)
Mutual labels:  etl

oic-options-chains

These Racket programs will download the OIC Options Chains HTML files and insert the data into a PostgreSQL database. The intended usage is:

$ racket extract.rkt
$ racket transform-load.rkt

You will need to provide a database password for both programs. The available parameters are:

$ racket extract.rkt -h
racket extract.rkt [ <option> ... ]
 where <option> is one of
  -f <first>, --first-symbol <first> : First symbol to query. Defaults to nothing
  -l <last>, --last-symbol <last> : Last symbol to query. Defaults to nothing
  -n <name>, --db-name <name> : Database name. Defaults to 'local'
  -p <password>, --db-pass <password> : Database password
  -u <user>, --db-user <user> : Database user name. Defaults to 'user'
  --help, -h : Show this help
  -- : Do not treat any remaining argument as a switch (at this level)
 Multiple single-letter switches can be combined after one `-`. For
  example: `-h-` is the same as `-h --`

$ racket transform-load.rkt -h
racket transform-load.rkt [ <option> ... ]
 where <option> is one of
  -a, --all-options : Save all options instead of the default select strikes and expirations
  -b <folder>, --base-folder <folder> : OIC options chains base folder. Defaults to /var/tmp/oic/options-chains
  -d <date>, --folder-date <date> : OIC options chains folder date. Defaults to today
  -n <name>, --db-name <name> : Database name. Defaults to 'local'
  -p <password>, --db-pass <password> : Database password
  -u <user>, --db-user <user> : Database user name. Defaults to 'user'
  --help, -h : Show this help
  -- : Do not treat any remaining argument as a switch (at this level)
 Multiple single-letter switches can be combined after one `-`. For
  example: `-h-` is the same as `-h --`

The provided schema.sql file shows the expected schema within the target PostgreSQL instance. This process assumes you can write to a /var/tmp/oic/options-chains folder. This process also assumes you have loaded your database with the NASDAQ symbol file information, SPDR ETF holding information, and Invesco ADR ETF holding information. This data is provided by the nasdaq-symbols project, spdr-etf-holdings project, and invesco-etf-holdings project. These programs currently (2019-11-11) will just extract option chains for S&P 500/400/600 component companies, Invesco ADR component companies, and some SPDR ETFs. The transform/load script will just insert options expiring 2 weeks, 4 weeks, and 8 weeks from the current date and they will also just grab the +/- 0%, 2%, 4%, 6%, 8%, 10%, 12.5%, 15%, 17.5%, 20%, 22.5%, 25%, 27.5%, and 30% strikes. This suits my purposes, but this filter can be removed if you want to insert everything.

Dependencies

It is recommended that you start with the standard Racket distribution. With that, you will need to install the following packages:

$ raco pkg install --skip-installed gregor html-parsing sxml tasks threading
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].