sqa 0.0.37 → 0.0.38

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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +62 -0
  3. data/docs/api-reference/alphavantageapi.md +105 -105
  4. data/docs/api-reference/apierror.md +2 -2
  5. data/docs/api-reference/index.md +2 -2
  6. data/docs/api-reference/notimplemented.md +2 -2
  7. data/docs/api-reference/sqa.md +12 -12
  8. data/docs/api-reference/sqa_backtest.md +43 -9
  9. data/docs/api-reference/sqa_backtest_results.md +34 -34
  10. data/docs/api-reference/sqa_badparametererror.md +1 -1
  11. data/docs/api-reference/sqa_config.md +31 -31
  12. data/docs/api-reference/sqa_configurationerror.md +1 -1
  13. data/docs/api-reference/sqa_datafetcherror.md +3 -3
  14. data/docs/api-reference/sqa_dataframe.md +63 -36
  15. data/docs/api-reference/sqa_dataframe_alphavantage.md +2 -2
  16. data/docs/api-reference/sqa_dataframe_data.md +18 -18
  17. data/docs/api-reference/sqa_dataframe_yahoofinance.md +2 -2
  18. data/docs/api-reference/sqa_ensemble.md +21 -21
  19. data/docs/api-reference/sqa_fpop.md +8 -8
  20. data/docs/api-reference/sqa_geneticprogram.md +20 -20
  21. data/docs/api-reference/sqa_geneticprogram_individual.md +8 -8
  22. data/docs/api-reference/sqa_marketregime.md +10 -10
  23. data/docs/api-reference/sqa_multitimeframe.md +11 -11
  24. data/docs/api-reference/sqa_patternmatcher.md +9 -9
  25. data/docs/api-reference/sqa_pluginmanager.md +4 -4
  26. data/docs/api-reference/sqa_portfolio.md +84 -27
  27. data/docs/api-reference/sqa_portfolio_position.md +12 -12
  28. data/docs/api-reference/sqa_portfolio_trade.md +16 -16
  29. data/docs/api-reference/sqa_portfoliooptimizer.md +10 -10
  30. data/docs/api-reference/sqa_riskmanager.md +12 -12
  31. data/docs/api-reference/sqa_seasonalanalyzer.md +6 -6
  32. data/docs/api-reference/sqa_sectoranalyzer.md +9 -9
  33. data/docs/api-reference/sqa_stock.md +48 -36
  34. data/docs/api-reference/sqa_strategy.md +8 -8
  35. data/docs/api-reference/sqa_strategy_bollingerbands.md +2 -2
  36. data/docs/api-reference/sqa_strategy_common.md +3 -3
  37. data/docs/api-reference/sqa_strategy_consensus.md +12 -12
  38. data/docs/api-reference/sqa_strategy_ema.md +4 -4
  39. data/docs/api-reference/sqa_strategy_kbs.md +11 -11
  40. data/docs/api-reference/sqa_strategy_macd.md +2 -2
  41. data/docs/api-reference/sqa_strategy_mp.md +4 -4
  42. data/docs/api-reference/sqa_strategy_mr.md +4 -4
  43. data/docs/api-reference/sqa_strategy_random.md +4 -4
  44. data/docs/api-reference/sqa_strategy_rsi.md +4 -4
  45. data/docs/api-reference/sqa_strategy_sma.md +4 -4
  46. data/docs/api-reference/sqa_strategy_stochastic.md +2 -2
  47. data/docs/api-reference/sqa_strategy_volumebreakout.md +2 -2
  48. data/docs/api-reference/sqa_strategygenerator.md +19 -19
  49. data/docs/api-reference/sqa_strategygenerator_pattern.md +17 -17
  50. data/docs/api-reference/sqa_strategygenerator_patterncontext.md +21 -21
  51. data/docs/api-reference/sqa_strategygenerator_profitablepoint.md +27 -27
  52. data/docs/api-reference/sqa_stream.md +18 -18
  53. data/docs/api-reference/sqa_ticker.md +8 -8
  54. data/docs/api-reference/string.md +11 -11
  55. data/docs/file_formats.md +250 -0
  56. data/lib/sqa/backtest.rb +32 -0
  57. data/lib/sqa/data_frame.rb +25 -0
  58. data/lib/sqa/portfolio.rb +54 -0
  59. data/lib/sqa/stock.rb +11 -0
  60. data/lib/sqa/version.rb +1 -1
  61. data/mkdocs.yml +1 -0
  62. metadata +2 -2
  63. data/docs/IMPROVEMENT_PLAN.md +0 -531
@@ -5,7 +5,7 @@
5
5
  This is the primary domain object for interacting with stock data.
6
6
 
7
7
  !!! abstract "Source Information"
8
- **Defined in:** `lib/sqa/stock.rb:14`
8
+ **Defined in:** [`lib/sqa/stock.rb:14`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L14)
9
9
 
10
10
  **Inherits from:** `Object`
11
11
 
@@ -26,7 +26,7 @@ Allows injection of custom connections for testing or different configurations.
26
26
  The current connection instance
27
27
 
28
28
  ??? info "Source Location"
29
- `lib/sqa/stock.rb:30`
29
+ [`lib/sqa/stock.rb:30`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L30)
30
30
 
31
31
  ---
32
32
 
@@ -49,7 +49,7 @@ Useful for testing with mocks/stubs or configuring different API endpoints.
49
49
  The connection that was set
50
50
 
51
51
  ??? info "Source Location"
52
- `lib/sqa/stock.rb:39`
52
+ [`lib/sqa/stock.rb:39`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L39)
53
53
 
54
54
  ---
55
55
 
@@ -67,7 +67,7 @@ Creates the default Faraday connection to Alpha Vantage.
67
67
  A new connection to Alpha Vantage API
68
68
 
69
69
  ??? info "Source Location"
70
- `lib/sqa/stock.rb:46`
70
+ [`lib/sqa/stock.rb:46`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L46)
71
71
 
72
72
  ---
73
73
 
@@ -84,7 +84,7 @@ Useful for testing cleanup to ensure fresh state between tests.
84
84
 
85
85
 
86
86
  ??? info "Source Location"
87
- `lib/sqa/stock.rb:54`
87
+ [`lib/sqa/stock.rb:54`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L54)
88
88
 
89
89
  ---
90
90
 
@@ -109,7 +109,7 @@ Results are cached after the first call.
109
109
  top.top_losers.first.ticker # => "XYZ"
110
110
  ```
111
111
  ??? info "Source Location"
112
- `lib/sqa/stock.rb:341`
112
+ [`lib/sqa/stock.rb:341`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L341)
113
113
 
114
114
  ---
115
115
 
@@ -126,7 +126,7 @@ Useful for testing or forcing a refresh.
126
126
 
127
127
 
128
128
  ??? info "Source Location"
129
- `lib/sqa/stock.rb:372`
129
+ [`lib/sqa/stock.rb:372`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L372)
130
130
 
131
131
  ---
132
132
 
@@ -144,7 +144,7 @@ Useful for testing or forcing a refresh.
144
144
  Stock metadata (ticker, name, exchange, etc.)
145
145
 
146
146
  ??? info "Source Location"
147
- `lib/sqa/stock.rb:69`
147
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
148
148
 
149
149
  ---
150
150
 
@@ -160,7 +160,7 @@ Useful for testing or forcing a refresh.
160
160
  Stock metadata (ticker, name, exchange, etc.)
161
161
 
162
162
  ??? info "Source Location"
163
- `lib/sqa/stock.rb:69`
163
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
164
164
 
165
165
  ---
166
166
 
@@ -176,7 +176,7 @@ Useful for testing or forcing a refresh.
176
176
  Price and volume data as a DataFrame
177
177
 
178
178
  ??? info "Source Location"
179
- `lib/sqa/stock.rb:69`
179
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
180
180
 
181
181
  ---
182
182
 
@@ -192,7 +192,7 @@ Useful for testing or forcing a refresh.
192
192
  Price and volume data as a DataFrame
193
193
 
194
194
  ??? info "Source Location"
195
- `lib/sqa/stock.rb:69`
195
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
196
196
 
197
197
  ---
198
198
 
@@ -208,7 +208,7 @@ Useful for testing or forcing a refresh.
208
208
  The data source class (e.g., SQA::DataFrame::AlphaVantage)
209
209
 
210
210
  ??? info "Source Location"
211
- `lib/sqa/stock.rb:69`
211
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
212
212
 
213
213
  ---
214
214
 
@@ -224,7 +224,7 @@ Useful for testing or forcing a refresh.
224
224
  The data source class (e.g., SQA::DataFrame::AlphaVantage)
225
225
 
226
226
  ??? info "Source Location"
227
- `lib/sqa/stock.rb:69`
227
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
228
228
 
229
229
  ---
230
230
 
@@ -240,7 +240,7 @@ Useful for testing or forcing a refresh.
240
240
  Column transformers for data normalization
241
241
 
242
242
  ??? info "Source Location"
243
- `lib/sqa/stock.rb:69`
243
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
244
244
 
245
245
  ---
246
246
 
@@ -256,7 +256,7 @@ Useful for testing or forcing a refresh.
256
256
  Column transformers for data normalization
257
257
 
258
258
  ??? info "Source Location"
259
- `lib/sqa/stock.rb:69`
259
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
260
260
 
261
261
  ---
262
262
 
@@ -272,7 +272,7 @@ Useful for testing or forcing a refresh.
272
272
  Optional trading strategy attached to this stock
273
273
 
274
274
  ??? info "Source Location"
275
- `lib/sqa/stock.rb:69`
275
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
276
276
 
277
277
  ---
278
278
 
@@ -288,7 +288,7 @@ Sets the attribute strategy
288
288
 
289
289
 
290
290
  ??? info "Source Location"
291
- `lib/sqa/stock.rb:69`
291
+ [`lib/sqa/stock.rb:69`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L69)
292
292
 
293
293
  ---
294
294
 
@@ -316,7 +316,7 @@ Creates a new Stock instance and loads or fetches its data.
316
316
  stock = SQA::Stock.new(ticker: 'GOOG', source: :yahoo_finance)
317
317
  ```
318
318
  ??? info "Source Location"
319
- `lib/sqa/stock.rb:81`
319
+ [`lib/sqa/stock.rb:81`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L81)
320
320
 
321
321
  ---
322
322
 
@@ -334,7 +334,7 @@ minimal structure and attempts to fetch overview from API.
334
334
 
335
335
 
336
336
  ??? info "Source Location"
337
- `lib/sqa/stock.rb:107`
337
+ [`lib/sqa/stock.rb:107`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L107)
338
338
 
339
339
  ---
340
340
 
@@ -352,7 +352,7 @@ Creates a new minimal data structure for the stock.
352
352
  The newly created data object
353
353
 
354
354
  ??? info "Source Location"
355
- `lib/sqa/stock.rb:126`
355
+ [`lib/sqa/stock.rb:126`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L126)
356
356
 
357
357
  ---
358
358
 
@@ -367,9 +367,21 @@ Silently handles errors since overview data is optional.
367
367
  **Type:** `void`
368
368
 
369
369
 
370
+ !!! example "Usage Examples"
370
371
 
372
+ ```ruby
373
+ stock = SQA::Stock.new(ticker: 'AAPL')
374
+ stock.update # Fetches latest company overview data
375
+ stock.data.overview['market_capitalization'] # => 2500000000000
376
+ stock.data.overview['pe_ratio'] # => 28.5
377
+ ```
378
+
379
+ ```ruby
380
+ stock.update # No error raised if API is unavailable
381
+ # Warning logged but stock remains usable with cached data
382
+ ```
371
383
  ??? info "Source Location"
372
- `lib/sqa/stock.rb:134`
384
+ [`lib/sqa/stock.rb:134`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L134)
373
385
 
374
386
  ---
375
387
 
@@ -387,7 +399,7 @@ Persists the stock's metadata to a JSON file.
387
399
  Number of bytes written
388
400
 
389
401
  ??? info "Source Location"
390
- `lib/sqa/stock.rb:147`
402
+ [`lib/sqa/stock.rb:147`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L147)
391
403
 
392
404
  ---
393
405
 
@@ -403,7 +415,7 @@ Persists the stock's metadata to a JSON file.
403
415
  The stock's ticker symbol
404
416
 
405
417
  ??? info "Source Location"
406
- `lib/sqa/stock.rb:165`
418
+ [`lib/sqa/stock.rb:165`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L165)
407
419
 
408
420
  ---
409
421
 
@@ -419,7 +431,7 @@ Persists the stock's metadata to a JSON file.
419
431
  The company name
420
432
 
421
433
  ??? info "Source Location"
422
- `lib/sqa/stock.rb:165`
434
+ [`lib/sqa/stock.rb:165`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L165)
423
435
 
424
436
  ---
425
437
 
@@ -435,7 +447,7 @@ Persists the stock's metadata to a JSON file.
435
447
  The exchange where the stock trades
436
448
 
437
449
  ??? info "Source Location"
438
- `lib/sqa/stock.rb:165`
450
+ [`lib/sqa/stock.rb:165`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L165)
439
451
 
440
452
  ---
441
453
 
@@ -451,7 +463,7 @@ Persists the stock's metadata to a JSON file.
451
463
  The data source (:alpha_vantage or :yahoo_finance)
452
464
 
453
465
  ??? info "Source Location"
454
- `lib/sqa/stock.rb:165`
466
+ [`lib/sqa/stock.rb:165`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L165)
455
467
 
456
468
  ---
457
469
 
@@ -467,7 +479,7 @@ Persists the stock's metadata to a JSON file.
467
479
  Cached indicator values
468
480
 
469
481
  ??? info "Source Location"
470
- `lib/sqa/stock.rb:165`
482
+ [`lib/sqa/stock.rb:165`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L165)
471
483
 
472
484
  ---
473
485
 
@@ -481,7 +493,7 @@ Persists the stock's metadata to a JSON file.
481
493
 
482
494
 
483
495
  ??? info "Source Location"
484
- `lib/sqa/stock.rb:165`
496
+ [`lib/sqa/stock.rb:165`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L165)
485
497
 
486
498
  ---
487
499
 
@@ -497,7 +509,7 @@ Persists the stock's metadata to a JSON file.
497
509
  Company overview data from API
498
510
 
499
511
  ??? info "Source Location"
500
- `lib/sqa/stock.rb:165`
512
+ [`lib/sqa/stock.rb:165`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L165)
501
513
 
502
514
  ---
503
515
 
@@ -515,7 +527,7 @@ Applies migrations for old data formats and updates with recent data.
515
527
 
516
528
 
517
529
  ??? info "Source Location"
518
- `lib/sqa/stock.rb:173`
530
+ [`lib/sqa/stock.rb:173`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L173)
519
531
 
520
532
  ---
521
533
 
@@ -532,7 +544,7 @@ Only called if should_update? returns true.
532
544
 
533
545
 
534
546
  ??? info "Source Location"
535
- `lib/sqa/stock.rb:228`
547
+ [`lib/sqa/stock.rb:228`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L228)
536
548
 
537
549
  ---
538
550
 
@@ -546,7 +558,7 @@ Only called if should_update? returns true.
546
558
 
547
559
 
548
560
  ??? info "Source Location"
549
- `lib/sqa/stock.rb:250`
561
+ [`lib/sqa/stock.rb:250`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L250)
550
562
 
551
563
  ---
552
564
 
@@ -566,7 +578,7 @@ or data is already current.
566
578
  true if update should proceed, false otherwise
567
579
 
568
580
  ??? info "Source Location"
569
- `lib/sqa/stock.rb:260`
581
+ [`lib/sqa/stock.rb:260`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L260)
570
582
 
571
583
  ---
572
584
 
@@ -588,7 +600,7 @@ Returns a human-readable string representation of the stock.
588
600
  stock.to_s # => "aapl with 252 data points from 2023-01-03 to 2023-12-29"
589
601
  ```
590
602
  ??? info "Source Location"
591
- `lib/sqa/stock.rb:294`
603
+ [`lib/sqa/stock.rb:294`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L294)
592
604
 
593
605
  ---
594
606
 
@@ -612,7 +624,7 @@ This ensures compatibility with TA-Lib indicators which expect arrays in this or
612
624
  stock.to_s # => "aapl with 252 data points from 2023-01-03 to 2023-12-29"
613
625
  ```
614
626
  ??? info "Source Location"
615
- `lib/sqa/stock.rb:299`
627
+ [`lib/sqa/stock.rb:299`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L299)
616
628
 
617
629
  ---
618
630
 
@@ -631,7 +643,7 @@ Converts API response keys to snake_case and appropriate data types.
631
643
  The merged overview data
632
644
 
633
645
  ??? info "Source Location"
634
- `lib/sqa/stock.rb:306`
646
+ [`lib/sqa/stock.rb:306`](https://github.com/madbomber/sqa/blob/main/lib/sqa/stock.rb#L306)
635
647
 
636
648
  ---
637
649
 
@@ -6,7 +6,7 @@
6
6
  methods are available in every trading strategy.
7
7
 
8
8
  !!! abstract "Source Information"
9
- **Defined in:** `lib/sqa/strategy.rb:16`
9
+ **Defined in:** [`lib/sqa/strategy.rb:16`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy.rb#L16)
10
10
 
11
11
  **Inherits from:** `Object`
12
12
 
@@ -24,7 +24,7 @@
24
24
  Collection of strategy trade methods
25
25
 
26
26
  ??? info "Source Location"
27
- `lib/sqa/strategy.rb:19`
27
+ [`lib/sqa/strategy.rb:19`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy.rb#L19)
28
28
 
29
29
  ---
30
30
 
@@ -40,7 +40,7 @@ Sets the attribute strategies
40
40
 
41
41
 
42
42
  ??? info "Source Location"
43
- `lib/sqa/strategy.rb:19`
43
+ [`lib/sqa/strategy.rb:19`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy.rb#L19)
44
44
 
45
45
  ---
46
46
 
@@ -58,7 +58,7 @@ Creates a new Strategy instance with an empty strategies collection.
58
58
  a new instance of Strategy
59
59
 
60
60
  ??? info "Source Location"
61
- `lib/sqa/strategy.rb:22`
61
+ [`lib/sqa/strategy.rb:22`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy.rb#L22)
62
62
 
63
63
  ---
64
64
 
@@ -89,7 +89,7 @@ Strategies must be either a Class with a .trade method or a Method object.
89
89
  strategy.add(MyModule.method(:custom_trade))
90
90
  ```
91
91
  ??? info "Source Location"
92
- `lib/sqa/strategy.rb:39`
92
+ [`lib/sqa/strategy.rb:39`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy.rb#L39)
93
93
 
94
94
  ---
95
95
 
@@ -116,7 +116,7 @@ Executes all registered strategies with the given data vector.
116
116
  signals = strategy.execute(vector) # => [:buy, :hold, :sell]
117
117
  ```
118
118
  ??? info "Source Location"
119
- `lib/sqa/strategy.rb:60`
119
+ [`lib/sqa/strategy.rb:60`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy.rb#L60)
120
120
 
121
121
  ---
122
122
 
@@ -145,7 +145,7 @@ Auto-loads strategy files from the strategy directory.
145
145
  strategy.auto_load(only: [:rsi, :macd])
146
146
  ```
147
147
  ??? info "Source Location"
148
- `lib/sqa/strategy.rb:79`
148
+ [`lib/sqa/strategy.rb:79`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy.rb#L79)
149
149
 
150
150
  ---
151
151
 
@@ -168,7 +168,7 @@ Returns all available strategy classes in the SQA::Strategy namespace.
168
168
  # => [SQA::Strategy::RSI, SQA::Strategy::MACD, ...]
169
169
  ```
170
170
  ??? info "Source Location"
171
- `lib/sqa/strategy.rb:108`
171
+ [`lib/sqa/strategy.rb:108`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy.rb#L108)
172
172
 
173
173
  ---
174
174
 
@@ -6,7 +6,7 @@
6
6
  Sell when price touches upper band (overbought)
7
7
 
8
8
  !!! abstract "Source Information"
9
- **Defined in:** `lib/sqa/strategy/bollinger_bands.rb:8`
9
+ **Defined in:** [`lib/sqa/strategy/bollinger_bands.rb:8`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/bollinger_bands.rb#L8)
10
10
 
11
11
  **Inherits from:** `Object`
12
12
 
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
  ??? info "Source Location"
21
- `lib/sqa/strategy/bollinger_bands.rb:9`
21
+ [`lib/sqa/strategy/bollinger_bands.rb:9`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/bollinger_bands.rb#L9)
22
22
 
23
23
  ---
24
24
 
@@ -1,7 +1,7 @@
1
1
  # 🔧 SQA::Strategy::Common
2
2
 
3
3
  !!! abstract "Source Information"
4
- **Defined in:** `lib/sqa/strategy/common.rb:8`
4
+ **Defined in:** [`lib/sqa/strategy/common.rb:8`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/common.rb#L8)
5
5
 
6
6
  ## 🔨 Instance Methods
7
7
 
@@ -11,7 +11,7 @@
11
11
 
12
12
 
13
13
  ??? info "Source Location"
14
- `lib/sqa/strategy/common.rb:9`
14
+ [`lib/sqa/strategy/common.rb:9`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/common.rb#L9)
15
15
 
16
16
  ---
17
17
 
@@ -21,7 +21,7 @@
21
21
 
22
22
 
23
23
  ??? info "Source Location"
24
- `lib/sqa/strategy/common.rb:23`
24
+ [`lib/sqa/strategy/common.rb:23`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/common.rb#L23)
25
25
 
26
26
  ---
27
27
 
@@ -1,7 +1,7 @@
1
1
  # 📦 SQA::Strategy::Consensus
2
2
 
3
3
  !!! abstract "Source Information"
4
- **Defined in:** `lib/sqa/strategy/consensus.rb:5`
4
+ **Defined in:** [`lib/sqa/strategy/consensus.rb:5`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L5)
5
5
 
6
6
  **Inherits from:** `Object`
7
7
 
@@ -13,7 +13,7 @@
13
13
 
14
14
 
15
15
  ??? info "Source Location"
16
- `lib/sqa/strategy/consensus.rb:8`
16
+ [`lib/sqa/strategy/consensus.rb:8`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L8)
17
17
 
18
18
  ---
19
19
 
@@ -23,7 +23,7 @@
23
23
 
24
24
 
25
25
  ??? info "Source Location"
26
- `lib/sqa/strategy/common.rb:9`
26
+ [`lib/sqa/strategy/common.rb:9`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/common.rb#L9)
27
27
 
28
28
  ---
29
29
 
@@ -33,7 +33,7 @@
33
33
 
34
34
 
35
35
  ??? info "Source Location"
36
- `lib/sqa/strategy/common.rb:23`
36
+ [`lib/sqa/strategy/common.rb:23`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/common.rb#L23)
37
37
 
38
38
  ---
39
39
 
@@ -51,7 +51,7 @@
51
51
  a new instance of Consensus
52
52
 
53
53
  ??? info "Source Location"
54
- `lib/sqa/strategy/consensus.rb:12`
54
+ [`lib/sqa/strategy/consensus.rb:12`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L12)
55
55
 
56
56
  ---
57
57
 
@@ -61,7 +61,7 @@
61
61
 
62
62
 
63
63
  ??? info "Source Location"
64
- `lib/sqa/strategy/consensus.rb:17`
64
+ [`lib/sqa/strategy/consensus.rb:17`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L17)
65
65
 
66
66
  ---
67
67
 
@@ -71,7 +71,7 @@
71
71
 
72
72
 
73
73
  ??? info "Source Location"
74
- `lib/sqa/strategy/consensus.rb:26`
74
+ [`lib/sqa/strategy/consensus.rb:26`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L26)
75
75
 
76
76
  ---
77
77
 
@@ -81,7 +81,7 @@
81
81
 
82
82
 
83
83
  ??? info "Source Location"
84
- `lib/sqa/strategy/consensus.rb:41`
84
+ [`lib/sqa/strategy/consensus.rb:41`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L41)
85
85
 
86
86
  ---
87
87
 
@@ -91,7 +91,7 @@
91
91
 
92
92
 
93
93
  ??? info "Source Location"
94
- `lib/sqa/strategy/consensus.rb:42`
94
+ [`lib/sqa/strategy/consensus.rb:42`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L42)
95
95
 
96
96
  ---
97
97
 
@@ -101,7 +101,7 @@
101
101
 
102
102
 
103
103
  ??? info "Source Location"
104
- `lib/sqa/strategy/consensus.rb:43`
104
+ [`lib/sqa/strategy/consensus.rb:43`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L43)
105
105
 
106
106
  ---
107
107
 
@@ -111,7 +111,7 @@
111
111
 
112
112
 
113
113
  ??? info "Source Location"
114
- `lib/sqa/strategy/consensus.rb:44`
114
+ [`lib/sqa/strategy/consensus.rb:44`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L44)
115
115
 
116
116
  ---
117
117
 
@@ -121,7 +121,7 @@
121
121
 
122
122
 
123
123
  ??? info "Source Location"
124
- `lib/sqa/strategy/consensus.rb:45`
124
+ [`lib/sqa/strategy/consensus.rb:45`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/consensus.rb#L45)
125
125
 
126
126
  ---
127
127
 
@@ -1,7 +1,7 @@
1
1
  # 📦 SQA::Strategy::EMA
2
2
 
3
3
  !!! abstract "Source Information"
4
- **Defined in:** `lib/sqa/strategy/ema.rb:5`
4
+ **Defined in:** [`lib/sqa/strategy/ema.rb:5`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/ema.rb#L5)
5
5
 
6
6
  **Inherits from:** `Object`
7
7
 
@@ -13,7 +13,7 @@
13
13
 
14
14
 
15
15
  ??? info "Source Location"
16
- `lib/sqa/strategy/ema.rb:8`
16
+ [`lib/sqa/strategy/ema.rb:8`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/ema.rb#L8)
17
17
 
18
18
  ---
19
19
 
@@ -23,7 +23,7 @@
23
23
 
24
24
 
25
25
  ??? info "Source Location"
26
- `lib/sqa/strategy/common.rb:9`
26
+ [`lib/sqa/strategy/common.rb:9`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/common.rb#L9)
27
27
 
28
28
  ---
29
29
 
@@ -33,7 +33,7 @@
33
33
 
34
34
 
35
35
  ??? info "Source Location"
36
- `lib/sqa/strategy/common.rb:23`
36
+ [`lib/sqa/strategy/common.rb:23`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/common.rb#L23)
37
37
 
38
38
  ---
39
39
 
@@ -1,7 +1,7 @@
1
1
  # 📦 SQA::Strategy::KBS
2
2
 
3
3
  !!! abstract "Source Information"
4
- **Defined in:** `lib/sqa/strategy/kbs_strategy.rb:50`
4
+ **Defined in:** [`lib/sqa/strategy/kbs_strategy.rb:50`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L50)
5
5
 
6
6
  **Inherits from:** `Object`
7
7
 
@@ -15,7 +15,7 @@ Main strategy interface - compatible with SQA::Strategy framework
15
15
 
16
16
 
17
17
  ??? info "Source Location"
18
- `lib/sqa/strategy/kbs_strategy.rb:62`
18
+ [`lib/sqa/strategy/kbs_strategy.rb:62`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L62)
19
19
 
20
20
  ---
21
21
 
@@ -29,7 +29,7 @@ Returns the value of attribute kb.
29
29
 
30
30
 
31
31
  ??? info "Source Location"
32
- `lib/sqa/strategy/kbs_strategy.rb:51`
32
+ [`lib/sqa/strategy/kbs_strategy.rb:51`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L51)
33
33
 
34
34
  ---
35
35
 
@@ -41,7 +41,7 @@ Returns the value of attribute default_rules_loaded.
41
41
 
42
42
 
43
43
  ??? info "Source Location"
44
- `lib/sqa/strategy/kbs_strategy.rb:51`
44
+ [`lib/sqa/strategy/kbs_strategy.rb:51`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L51)
45
45
 
46
46
  ---
47
47
 
@@ -57,7 +57,7 @@ Returns the value of attribute default_rules_loaded.
57
57
  a new instance of KBS
58
58
 
59
59
  ??? info "Source Location"
60
- `lib/sqa/strategy/kbs_strategy.rb:53`
60
+ [`lib/sqa/strategy/kbs_strategy.rb:53`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L53)
61
61
 
62
62
  ---
63
63
 
@@ -69,7 +69,7 @@ Execute strategy with given market data
69
69
 
70
70
 
71
71
  ??? info "Source Location"
72
- `lib/sqa/strategy/kbs_strategy.rb:68`
72
+ [`lib/sqa/strategy/kbs_strategy.rb:68`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L68)
73
73
 
74
74
  ---
75
75
 
@@ -90,7 +90,7 @@ Note: Use `kb.assert` in perform blocks, not just `assert`
90
90
 
91
91
 
92
92
  ??? info "Source Location"
93
- `lib/sqa/strategy/kbs_strategy.rb:92`
93
+ [`lib/sqa/strategy/kbs_strategy.rb:92`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L92)
94
94
 
95
95
  ---
96
96
 
@@ -102,7 +102,7 @@ Assert a fact into working memory
102
102
 
103
103
 
104
104
  ??? info "Source Location"
105
- `lib/sqa/strategy/kbs_strategy.rb:105`
105
+ [`lib/sqa/strategy/kbs_strategy.rb:105`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L105)
106
106
 
107
107
  ---
108
108
 
@@ -114,7 +114,7 @@ Query facts from working memory
114
114
 
115
115
 
116
116
  ??? info "Source Location"
117
- `lib/sqa/strategy/kbs_strategy.rb:110`
117
+ [`lib/sqa/strategy/kbs_strategy.rb:110`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L110)
118
118
 
119
119
  ---
120
120
 
@@ -126,7 +126,7 @@ Print current working memory (for debugging)
126
126
 
127
127
 
128
128
  ??? info "Source Location"
129
- `lib/sqa/strategy/kbs_strategy.rb:115`
129
+ [`lib/sqa/strategy/kbs_strategy.rb:115`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L115)
130
130
 
131
131
  ---
132
132
 
@@ -138,7 +138,7 @@ Print all rules (for debugging)
138
138
 
139
139
 
140
140
  ??? info "Source Location"
141
- `lib/sqa/strategy/kbs_strategy.rb:120`
141
+ [`lib/sqa/strategy/kbs_strategy.rb:120`](https://github.com/madbomber/sqa/blob/main/lib/sqa/strategy/kbs_strategy.rb#L120)
142
142
 
143
143
  ---
144
144