sqa 0.0.24 → 0.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.goose/memory/development.txt +3 -0
- data/.semver +6 -0
- data/ARCHITECTURE.md +648 -0
- data/CHANGELOG.md +95 -0
- data/CLAUDE.md +674 -0
- data/COMMITS.md +196 -0
- data/DATAFRAME_ARCHITECTURE_REVIEW.md +421 -0
- data/NEXT-STEPS.md +154 -0
- data/README.md +839 -265
- data/TASKS.md +358 -0
- data/TEST_RESULTS.md +140 -0
- data/TODO.md +42 -0
- data/_notes.txt +25 -0
- data/bin/sqa-console +11 -0
- data/data/talk_talk.json +103284 -0
- data/develop_summary.md +313 -0
- data/docs/advanced/backtesting.md +206 -0
- data/docs/advanced/ensemble.md +68 -0
- data/docs/advanced/fpop.md +153 -0
- data/docs/advanced/index.md +112 -0
- data/docs/advanced/multi-timeframe.md +67 -0
- data/docs/advanced/pattern-matcher.md +75 -0
- data/docs/advanced/portfolio-optimizer.md +79 -0
- data/docs/advanced/portfolio.md +166 -0
- data/docs/advanced/risk-management.md +210 -0
- data/docs/advanced/strategy-generator.md +158 -0
- data/docs/advanced/streaming.md +209 -0
- data/docs/ai_and_ml.md +80 -0
- data/docs/api/dataframe.md +1114 -0
- data/docs/api/index.md +126 -0
- data/docs/assets/css/custom.css +88 -0
- data/docs/assets/images/sqa.jpg +0 -0
- data/docs/assets/js/mathjax.js +18 -0
- data/docs/concepts/index.md +60 -0
- data/docs/contributing/index.md +60 -0
- data/docs/data-sources/index.md +66 -0
- data/docs/data_frame.md +316 -97
- data/docs/factors_that_impact_price.md +26 -0
- data/docs/finviz.md +11 -0
- data/docs/fx_pro_bit.md +25 -0
- data/docs/genetic_programming.md +104 -0
- data/docs/getting-started/index.md +107 -0
- data/docs/getting-started/installation.md +229 -0
- data/docs/getting-started/quick-start.md +244 -0
- data/docs/i_gotta_an_idea.md +22 -0
- data/docs/index.md +161 -0
- data/docs/indicators/index.md +97 -0
- data/docs/indicators.md +110 -24
- data/docs/options.md +8 -0
- data/docs/strategies/bollinger-bands.md +146 -0
- data/docs/strategies/consensus.md +64 -0
- data/docs/strategies/custom.md +310 -0
- data/docs/strategies/ema.md +53 -0
- data/docs/strategies/index.md +92 -0
- data/docs/strategies/kbs.md +164 -0
- data/docs/strategies/macd.md +96 -0
- data/docs/strategies/market-profile.md +54 -0
- data/docs/strategies/mean-reversion.md +58 -0
- data/docs/strategies/rsi.md +95 -0
- data/docs/strategies/sma.md +55 -0
- data/docs/strategies/stochastic.md +63 -0
- data/docs/strategies/volume-breakout.md +54 -0
- data/docs/tags.md +7 -0
- data/examples/README.md +354 -0
- data/examples/advanced_features_example.rb +350 -0
- data/examples/fpop_analysis_example.rb +191 -0
- data/examples/genetic_programming_example.rb +148 -0
- data/examples/kbs_strategy_example.rb +208 -0
- data/examples/pattern_context_example.rb +300 -0
- data/examples/rails_app/Gemfile +34 -0
- data/examples/rails_app/README.md +416 -0
- data/examples/rails_app/app/assets/javascripts/application.js +107 -0
- data/examples/rails_app/app/assets/stylesheets/application.css +659 -0
- data/examples/rails_app/app/controllers/analysis_controller.rb +11 -0
- data/examples/rails_app/app/controllers/api/v1/stocks_controller.rb +227 -0
- data/examples/rails_app/app/controllers/application_controller.rb +22 -0
- data/examples/rails_app/app/controllers/backtest_controller.rb +11 -0
- data/examples/rails_app/app/controllers/dashboard_controller.rb +21 -0
- data/examples/rails_app/app/controllers/portfolio_controller.rb +7 -0
- data/examples/rails_app/app/views/analysis/show.html.erb +209 -0
- data/examples/rails_app/app/views/backtest/show.html.erb +171 -0
- data/examples/rails_app/app/views/dashboard/index.html.erb +118 -0
- data/examples/rails_app/app/views/dashboard/show.html.erb +408 -0
- data/examples/rails_app/app/views/errors/show.html.erb +17 -0
- data/examples/rails_app/app/views/layouts/application.html.erb +60 -0
- data/examples/rails_app/app/views/portfolio/index.html.erb +33 -0
- data/examples/rails_app/bin/rails +6 -0
- data/examples/rails_app/config/application.rb +45 -0
- data/examples/rails_app/config/boot.rb +5 -0
- data/examples/rails_app/config/database.yml +18 -0
- data/examples/rails_app/config/environment.rb +11 -0
- data/examples/rails_app/config/routes.rb +26 -0
- data/examples/rails_app/config.ru +8 -0
- data/examples/realtime_stream_example.rb +274 -0
- data/examples/sinatra_app/Gemfile +42 -0
- data/examples/sinatra_app/Gemfile.lock +268 -0
- data/examples/sinatra_app/QUICKSTART.md +169 -0
- data/examples/sinatra_app/README.md +471 -0
- data/examples/sinatra_app/RUNNING_WITHOUT_TALIB.md +90 -0
- data/examples/sinatra_app/TROUBLESHOOTING.md +95 -0
- data/examples/sinatra_app/app.rb +404 -0
- data/examples/sinatra_app/config.ru +5 -0
- data/examples/sinatra_app/public/css/style.css +723 -0
- data/examples/sinatra_app/public/debug_macd.html +82 -0
- data/examples/sinatra_app/public/js/app.js +107 -0
- data/examples/sinatra_app/start.sh +53 -0
- data/examples/sinatra_app/views/analyze.erb +306 -0
- data/examples/sinatra_app/views/backtest.erb +325 -0
- data/examples/sinatra_app/views/dashboard.erb +831 -0
- data/examples/sinatra_app/views/error.erb +58 -0
- data/examples/sinatra_app/views/index.erb +118 -0
- data/examples/sinatra_app/views/layout.erb +61 -0
- data/examples/sinatra_app/views/portfolio.erb +43 -0
- data/examples/strategy_generator_example.rb +346 -0
- data/hsa_portfolio.csv +11 -0
- data/justfile +0 -0
- data/lib/api/alpha_vantage_api.rb +462 -0
- data/lib/sqa/backtest.rb +329 -0
- data/lib/sqa/data_frame/alpha_vantage.rb +51 -63
- data/lib/sqa/data_frame/data.rb +92 -0
- data/lib/sqa/data_frame/yahoo_finance.rb +35 -43
- data/lib/sqa/data_frame.rb +154 -243
- data/lib/sqa/ensemble.rb +359 -0
- data/lib/sqa/fpop.rb +199 -0
- data/lib/sqa/gp.rb +259 -0
- data/lib/sqa/indicator.rb +16 -6
- data/lib/sqa/init.rb +15 -8
- data/lib/sqa/market_regime.rb +240 -0
- data/lib/sqa/multi_timeframe.rb +379 -0
- data/lib/sqa/pattern_matcher.rb +497 -0
- data/lib/sqa/portfolio.rb +260 -6
- data/lib/sqa/portfolio_optimizer.rb +377 -0
- data/lib/sqa/risk_manager.rb +442 -0
- data/lib/sqa/seasonal_analyzer.rb +209 -0
- data/lib/sqa/sector_analyzer.rb +300 -0
- data/lib/sqa/stock.rb +131 -127
- data/lib/sqa/strategy/bollinger_bands.rb +42 -0
- data/lib/sqa/strategy/consensus.rb +5 -2
- data/lib/sqa/strategy/kbs_strategy.rb +470 -0
- data/lib/sqa/strategy/macd.rb +46 -0
- data/lib/sqa/strategy/mp.rb +1 -1
- data/lib/sqa/strategy/stochastic.rb +60 -0
- data/lib/sqa/strategy/volume_breakout.rb +57 -0
- data/lib/sqa/strategy.rb +5 -0
- data/lib/sqa/strategy_generator.rb +947 -0
- data/lib/sqa/stream.rb +361 -0
- data/lib/sqa/ticker.rb +9 -2
- data/lib/sqa/version.rb +1 -7
- data/lib/sqa.rb +35 -20
- data/main.just +81 -0
- data/mkdocs.yml +252 -0
- data/trace.log +0 -0
- metadata +265 -69
- data/bin/sqa +0 -6
- data/docs/alpha_vantage_technical_indicators.md +0 -62
- data/docs/average_true_range.md +0 -9
- data/docs/bollinger_bands.md +0 -15
- data/docs/candlestick_pattern_recognizer.md +0 -4
- data/docs/donchian_channel.md +0 -5
- data/docs/double_top_bottom_pattern.md +0 -3
- data/docs/exponential_moving_average.md +0 -19
- data/docs/fibonacci_retracement.md +0 -30
- data/docs/head_and_shoulders_pattern.md +0 -3
- data/docs/market_profile.md +0 -4
- data/docs/momentum.md +0 -19
- data/docs/moving_average_convergence_divergence.md +0 -23
- data/docs/peaks_and_valleys.md +0 -11
- data/docs/relative_strength_index.md +0 -6
- data/docs/simple_moving_average.md +0 -8
- data/docs/stochastic_oscillator.md +0 -4
- data/docs/ta_lib.md +0 -160
- data/docs/true_range.md +0 -12
- data/lib/patches/dry-cli.rb +0 -228
- data/lib/sqa/activity.rb +0 -10
- data/lib/sqa/cli.rb +0 -62
- data/lib/sqa/commands/analysis.rb +0 -309
- data/lib/sqa/commands/base.rb +0 -139
- data/lib/sqa/commands/web.rb +0 -199
- data/lib/sqa/commands.rb +0 -22
- data/lib/sqa/constants.rb +0 -23
- data/lib/sqa/indicator/average_true_range.rb +0 -33
- data/lib/sqa/indicator/bollinger_bands.rb +0 -28
- data/lib/sqa/indicator/candlestick_pattern_recognizer.rb +0 -60
- data/lib/sqa/indicator/donchian_channel.rb +0 -29
- data/lib/sqa/indicator/double_top_bottom_pattern.rb +0 -34
- data/lib/sqa/indicator/elliott_wave_theory.rb +0 -57
- data/lib/sqa/indicator/exponential_moving_average.rb +0 -25
- data/lib/sqa/indicator/exponential_moving_average_trend.rb +0 -36
- data/lib/sqa/indicator/fibonacci_retracement.rb +0 -23
- data/lib/sqa/indicator/head_and_shoulders_pattern.rb +0 -26
- data/lib/sqa/indicator/market_profile.rb +0 -32
- data/lib/sqa/indicator/mean_reversion.rb +0 -37
- data/lib/sqa/indicator/momentum.rb +0 -28
- data/lib/sqa/indicator/moving_average_convergence_divergence.rb +0 -29
- data/lib/sqa/indicator/peaks_and_valleys.rb +0 -29
- data/lib/sqa/indicator/predict_next_value.rb +0 -202
- data/lib/sqa/indicator/relative_strength_index.rb +0 -47
- data/lib/sqa/indicator/simple_moving_average.rb +0 -24
- data/lib/sqa/indicator/simple_moving_average_trend.rb +0 -32
- data/lib/sqa/indicator/stochastic_oscillator.rb +0 -68
- data/lib/sqa/indicator/true_range.rb +0 -39
- data/lib/sqa/trade.rb +0 -26
data/mkdocs.yml
ADDED
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
# MkDocs Configuration for SQA Documentation
|
|
2
|
+
site_name: SQA - Simple Qualitative Analysis
|
|
3
|
+
site_description: A powerful Ruby library for stock market technical analysis and trading strategy development
|
|
4
|
+
site_author: Dewayne VanHoozer
|
|
5
|
+
site_url: https://madbomber.github.io/sqa
|
|
6
|
+
copyright: Copyright © 2024 Dewayne VanHoozer
|
|
7
|
+
|
|
8
|
+
# Repository information
|
|
9
|
+
repo_name: madbomber/sqa
|
|
10
|
+
repo_url: https://github.com/madbomber/sqa
|
|
11
|
+
edit_uri: edit/main/docs/
|
|
12
|
+
|
|
13
|
+
# Configuration
|
|
14
|
+
theme:
|
|
15
|
+
name: material
|
|
16
|
+
|
|
17
|
+
# Color scheme - Default to light mode
|
|
18
|
+
palette:
|
|
19
|
+
# Palette toggle for light mode (default)
|
|
20
|
+
- scheme: default
|
|
21
|
+
primary: indigo
|
|
22
|
+
accent: deep purple
|
|
23
|
+
toggle:
|
|
24
|
+
icon: material/brightness-7
|
|
25
|
+
name: Switch to dark mode
|
|
26
|
+
|
|
27
|
+
# Palette toggle for dark mode
|
|
28
|
+
- scheme: slate
|
|
29
|
+
primary: indigo
|
|
30
|
+
accent: deep purple
|
|
31
|
+
toggle:
|
|
32
|
+
icon: material/brightness-4
|
|
33
|
+
name: Switch to light mode
|
|
34
|
+
|
|
35
|
+
# Typography
|
|
36
|
+
font:
|
|
37
|
+
text: Roboto
|
|
38
|
+
code: Roboto Mono
|
|
39
|
+
|
|
40
|
+
# Logo and icon
|
|
41
|
+
icon:
|
|
42
|
+
repo: fontawesome/brands/github
|
|
43
|
+
|
|
44
|
+
# Theme features
|
|
45
|
+
features:
|
|
46
|
+
# Navigation
|
|
47
|
+
- navigation.instant
|
|
48
|
+
- navigation.tracking
|
|
49
|
+
- navigation.tabs
|
|
50
|
+
- navigation.tabs.sticky
|
|
51
|
+
- navigation.sections
|
|
52
|
+
- navigation.path
|
|
53
|
+
- navigation.indexes
|
|
54
|
+
- navigation.top
|
|
55
|
+
- navigation.footer
|
|
56
|
+
|
|
57
|
+
# Table of contents
|
|
58
|
+
- toc.follow
|
|
59
|
+
- toc.integrate
|
|
60
|
+
|
|
61
|
+
# Search
|
|
62
|
+
- search.suggest
|
|
63
|
+
- search.highlight
|
|
64
|
+
- search.share
|
|
65
|
+
|
|
66
|
+
# Header
|
|
67
|
+
- header.autohide
|
|
68
|
+
|
|
69
|
+
# Content
|
|
70
|
+
- content.code.copy
|
|
71
|
+
- content.code.annotate
|
|
72
|
+
- content.tabs.link
|
|
73
|
+
- content.tooltips
|
|
74
|
+
- content.action.edit
|
|
75
|
+
- content.action.view
|
|
76
|
+
|
|
77
|
+
# Announce
|
|
78
|
+
- announce.dismiss
|
|
79
|
+
|
|
80
|
+
# Plugins
|
|
81
|
+
plugins:
|
|
82
|
+
- search:
|
|
83
|
+
separator: '[\s\-,:!=\[\]()"`/]+|\.(?!\d)|&[lg]t;|(?!\b)(?=[A-Z][a-z])'
|
|
84
|
+
- tags:
|
|
85
|
+
tags_file: tags.md
|
|
86
|
+
|
|
87
|
+
# Extensions
|
|
88
|
+
markdown_extensions:
|
|
89
|
+
# Python Markdown
|
|
90
|
+
- abbr
|
|
91
|
+
- admonition
|
|
92
|
+
- attr_list
|
|
93
|
+
- def_list
|
|
94
|
+
- footnotes
|
|
95
|
+
- md_in_html
|
|
96
|
+
- tables
|
|
97
|
+
- toc:
|
|
98
|
+
permalink: true
|
|
99
|
+
title: On this page
|
|
100
|
+
toc_depth: 3
|
|
101
|
+
|
|
102
|
+
# Python Markdown Extensions
|
|
103
|
+
- pymdownx.arithmatex:
|
|
104
|
+
generic: true
|
|
105
|
+
- pymdownx.betterem:
|
|
106
|
+
smart_enable: all
|
|
107
|
+
- pymdownx.caret
|
|
108
|
+
- pymdownx.critic
|
|
109
|
+
- pymdownx.details
|
|
110
|
+
- pymdownx.emoji:
|
|
111
|
+
emoji_generator: !!python/name:material.extensions.emoji.to_svg
|
|
112
|
+
emoji_index: !!python/name:material.extensions.emoji.twemoji
|
|
113
|
+
- pymdownx.highlight:
|
|
114
|
+
anchor_linenums: true
|
|
115
|
+
line_spans: __span
|
|
116
|
+
pygments_lang_class: true
|
|
117
|
+
- pymdownx.inlinehilite
|
|
118
|
+
- pymdownx.keys
|
|
119
|
+
- pymdownx.magiclink:
|
|
120
|
+
repo_url_shorthand: true
|
|
121
|
+
user: madbomber
|
|
122
|
+
repo: sqa
|
|
123
|
+
- pymdownx.mark
|
|
124
|
+
- pymdownx.smartsymbols
|
|
125
|
+
- pymdownx.snippets:
|
|
126
|
+
check_paths: true
|
|
127
|
+
- pymdownx.superfences:
|
|
128
|
+
custom_fences:
|
|
129
|
+
- name: mermaid
|
|
130
|
+
class: mermaid
|
|
131
|
+
format: !!python/name:pymdownx.superfences.fence_code_format
|
|
132
|
+
- pymdownx.tabbed:
|
|
133
|
+
alternate_style: true
|
|
134
|
+
- pymdownx.tasklist:
|
|
135
|
+
custom_checkbox: true
|
|
136
|
+
- pymdownx.tilde
|
|
137
|
+
|
|
138
|
+
# Extra CSS and JavaScript
|
|
139
|
+
extra_css:
|
|
140
|
+
- assets/css/custom.css
|
|
141
|
+
|
|
142
|
+
extra_javascript:
|
|
143
|
+
- assets/js/mathjax.js
|
|
144
|
+
- https://polyfill.io/v3/polyfill.min.js?features=es6
|
|
145
|
+
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
|
|
146
|
+
|
|
147
|
+
# Social media and extra configuration
|
|
148
|
+
extra:
|
|
149
|
+
social:
|
|
150
|
+
- icon: fontawesome/brands/github
|
|
151
|
+
link: https://github.com/madbomber/sqa
|
|
152
|
+
name: SQA on GitHub
|
|
153
|
+
- icon: fontawesome/solid/gem
|
|
154
|
+
link: https://rubygems.org/gems/sqa
|
|
155
|
+
name: SQA on RubyGems
|
|
156
|
+
|
|
157
|
+
version:
|
|
158
|
+
provider: mike
|
|
159
|
+
|
|
160
|
+
analytics:
|
|
161
|
+
feedback:
|
|
162
|
+
title: Was this page helpful?
|
|
163
|
+
ratings:
|
|
164
|
+
- icon: material/emoticon-happy-outline
|
|
165
|
+
name: This page was helpful
|
|
166
|
+
data: 1
|
|
167
|
+
note: >-
|
|
168
|
+
Thanks for your feedback!
|
|
169
|
+
- icon: material/emoticon-sad-outline
|
|
170
|
+
name: This page could be improved
|
|
171
|
+
data: 0
|
|
172
|
+
note: >-
|
|
173
|
+
Thanks for your feedback! Help us improve by creating an issue.
|
|
174
|
+
|
|
175
|
+
# Navigation
|
|
176
|
+
nav:
|
|
177
|
+
- Home: index.md
|
|
178
|
+
- Getting Started:
|
|
179
|
+
- getting-started/index.md
|
|
180
|
+
- Installation: getting-started/installation.md
|
|
181
|
+
- Quick Start: getting-started/quick-start.md
|
|
182
|
+
|
|
183
|
+
- Core Concepts:
|
|
184
|
+
- concepts/index.md
|
|
185
|
+
- DataFrames: data_frame.md
|
|
186
|
+
- Technical Indicators: indicators/index.md
|
|
187
|
+
- Trading Strategies: strategy.md
|
|
188
|
+
|
|
189
|
+
- Technical Indicators:
|
|
190
|
+
- indicators/index.md
|
|
191
|
+
- Overview: indicators.md
|
|
192
|
+
- sqa-tai Gem: https://github.com/MadBomber/sqa-tai
|
|
193
|
+
- TA-Lib Documentation: https://ta-lib.org/
|
|
194
|
+
|
|
195
|
+
- Trading Strategies:
|
|
196
|
+
- strategies/index.md
|
|
197
|
+
- Built-in Strategies:
|
|
198
|
+
- Bollinger Bands Strategy: strategies/bollinger-bands.md
|
|
199
|
+
- RSI Strategy: strategies/rsi.md
|
|
200
|
+
- MACD Strategy: strategies/macd.md
|
|
201
|
+
- SMA Strategy: strategies/sma.md
|
|
202
|
+
- EMA Strategy: strategies/ema.md
|
|
203
|
+
- Stochastic Strategy: strategies/stochastic.md
|
|
204
|
+
- Volume Breakout: strategies/volume-breakout.md
|
|
205
|
+
- Mean Reversion: strategies/mean-reversion.md
|
|
206
|
+
- Market Profile: strategies/market-profile.md
|
|
207
|
+
- Consensus Strategy: strategies/consensus.md
|
|
208
|
+
- Advanced Strategies:
|
|
209
|
+
- Knowledge-Based Strategy (KBS): strategies/kbs.md
|
|
210
|
+
- Custom Strategies: strategies/custom.md
|
|
211
|
+
|
|
212
|
+
- Advanced Features:
|
|
213
|
+
- advanced/index.md
|
|
214
|
+
- Portfolio Management: advanced/portfolio.md
|
|
215
|
+
- Backtesting: advanced/backtesting.md
|
|
216
|
+
- Strategy Generator: advanced/strategy-generator.md
|
|
217
|
+
- Genetic Programming: genetic_programming.md
|
|
218
|
+
- Real-Time Streaming: advanced/streaming.md
|
|
219
|
+
- FPOP Analysis: advanced/fpop.md
|
|
220
|
+
- Risk Management: advanced/risk-management.md
|
|
221
|
+
- Portfolio Optimizer: advanced/portfolio-optimizer.md
|
|
222
|
+
- Ensemble Strategies: advanced/ensemble.md
|
|
223
|
+
- Multi-Timeframe Analysis: advanced/multi-timeframe.md
|
|
224
|
+
- Pattern Matcher: advanced/pattern-matcher.md
|
|
225
|
+
|
|
226
|
+
- AI & Machine Learning:
|
|
227
|
+
- ai_and_ml.md
|
|
228
|
+
- Mean Reversion: mean_reversion.md
|
|
229
|
+
- Predict Next Value: predict_next_value.md
|
|
230
|
+
- Identify Wave Condition: identify_wave_condition.md
|
|
231
|
+
- LIBSVM Format: libsvm_file_format.md
|
|
232
|
+
|
|
233
|
+
- API Reference:
|
|
234
|
+
- api/index.md
|
|
235
|
+
- DataFrame Class: api/dataframe.md
|
|
236
|
+
|
|
237
|
+
- Data Sources:
|
|
238
|
+
- data-sources/index.md
|
|
239
|
+
|
|
240
|
+
- Resources:
|
|
241
|
+
- Tags: tags.md
|
|
242
|
+
- Requirements: requirements.md
|
|
243
|
+
- Terms of Use: terms_of_use.md
|
|
244
|
+
- Trading Ideas: i_gotta_an_idea.md
|
|
245
|
+
- Factor Analysis: factors_that_impact_price.md
|
|
246
|
+
- External Tools:
|
|
247
|
+
- FinViz: finviz.md
|
|
248
|
+
- FX Pro Bit: fx_pro_bit.md
|
|
249
|
+
- Options Trading: options.md
|
|
250
|
+
|
|
251
|
+
- Contributing:
|
|
252
|
+
- contributing/index.md
|
data/trace.log
ADDED
|
File without changes
|