forked from mementum/backtrader
-
Notifications
You must be signed in to change notification settings - Fork 0
/
changelog.txt
1260 lines (1122 loc) · 52.3 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1.9.58.122
- Provide default fundmode methods for all brokers
- Correct order notification if positions exist when starting the broker
and will be simulated
- Correct csv values output if object has no length
1.9.57.122
- PR #326 Fix set_fundmode in bbroker
- Synchronize fund history mode with master clock
- Allow relocation of legend in plotting charts
- Adapt broker observer to fund mode
1.9.56.122
- Handle volume as string null in YahooFinanceData
- Corrections/Improvements to order history support
- Add fund history support
- Increase plotting margin of trade observers
1.9.55.122
- Add addorder_history support to replay history of orders
- Add swapcloses to YahooFinanceXXX family to allow end users to control what
the adjusted price actually is
- Some docs and samples updates
- Change default for _nextforce to False as it should be for most indicators
1.9.54.122
- Add haDelta indicator
- Allow indicators to disable runonce
- Add Renko bricks
- Rework ix -> iloc pull request and autodetection algorithm in PandasData
1.9.53.121
- Fix #323 by providing default properties/methods for fundvalue/fundshares
for all brokers
1.9.52.121
- Redownload the YahooFinance sample data yhoo-1996-2015
- Add unstable exception for TALIB SAR
- Add notes about usage of Hurst exponent and lag_start/lag_end parameters
to override default lag values
- Fix #321 by correcting typo in Writer.writelines
- Add _start/start methods to Observers
- Add fund tracking mode to the observers
- Add new observers FundValue/FundShares
- Adapt observers to fundmode: Value, TimeReturn, LogReturns, DrawDown,
Benchmark
- Adapt analyzers to fundmode: DrawDown, Leverage, LogReturnsRolling,
PeriodStats, LogReturns, Sharpe, TimeReturn, VWR
- PR #319 for Pandas .ix deprecation (rewritten)
1.9.51.121
- Fix PSAR calculations for resampled/replayed streams
- Sample for psar with intraday resampling 5 -> 15 minutes
- Set the environment of a backfill_from data in master ibdata
- Add dnames to the strategy documentation
- Allow plotmaster to point to itself
- Add plotylimited option to control vertical scaling locking on data plots
- Add (semi)logarithmic plotlog control to plotinfo
- Simplify live status detection for IB to allow optimization
- Keep the observer cycles always synchronized with the strategy cycles
regardless of running mode
- Correct arguments for top level cerebro callback for data notifications
- Add HeikinAshi candles indicator (plotted as lines)
- Add HeikinAshi as filter to directly modify the data
- Plot only last close value if lineonclose is plotted and correct high
printout
- Add PR #320 with indicators AwesomeOscillator,
AccelerationDecelerationOscillator, RelativeMomentumIndex
- Doc corrections and additions, including PR #319
- PR #315 with rewrite to generalize setting the backend
1.9.50.117
- Add TrueStrengthIndicator
- Port YahooDownload tool to v7 API
- rewrite tool py3 bytes/str compatibility during write
- Support internal re-fetching of linetokens in csv based datas
- Support Yahoo skipping of lines with null values
- New adaptations to Yahoo new format for adjusted prices
- Update of data samples in Yahoo format
- Update of documents and samples to make use of YahooFinanceCSVData
consistent with chosen data sample
1.9.49.116
- Add support for new Yahoo v7 api
- Quandl: Allow dataset specification, apikey correction and cosmetics
1.9.48.116
- Quandl Data Feed Online/Offline (at least for WIKI EOD)
- Online: bt.feeds.Quandl
- Offline: bt.feeds.QuandlCSV
- Add studies category for indicators that draw in the past
(study events in past price movements)
- PR #307 Fractal study added to studies/contributions
- PR #304 Timer corrections for weekdays filter
- Docs corrections and typos
1.9.47.116
- Add PR #303 with hook support for btrun
- Fix regression introduced with trading calendars for replaying
- Avoid a DivisionByZeroError in SharpeRatio if not enough returns for the
calculation
1.9.46.116
- Finish timers implementation and documentation
- Add timers samples and cheat-on-open sample
- Add a List class to check for containment with __contains__ rather than
standard list is or __eq__
1.9.45.116
- Fix #302 to plot resampled data with non aligned end of sessions
- PR #297 to save figures to files (refactored to save multiple strategies
and multiple figures)
- Ensure a data feed has always a non-empty _name if possible
- Alias getcash/getvalue to get_cash/get_value in broker subclasses if the
latter are missing
- PR #300 Set tools as executables
- PR #301 Metatrader4 csv format
- Documentation updates
1.9.44.116
- Timer calls implementation
- Broker support for cheat-on-open
- Add cheat_on_open to cerebro to allow next_open
- Finish trading calendar resampling for weeks
- Support Yahoo download over proxies
- Doc corrections/additions
- Support quick broker notifications
1.9.43.116
- Oanda support for bracket orders
- Oanda support for stop trailing order
- Filling in plotting support numeric values and control of alpha blending
- Documentation updates (filling, addobservermulti)
- Fix wrong calling of sizer with fixed isbuy=True after refactoring for
mixing of buy/sell and order_target_xxx
1.9.42.116
- Add tradingcalendar
- Add tz support for strategies
- Docs updates
- Add multi/tradingcalendar samples
- Add div/floordiv operations to lines
- Return data references in all cerebro methods adding data stream
1.9.41.116
- Keep processing orders after create in OandaStore after change to process
new messages
- Manage CFDs also as cash data in rqtMktData
1.9.40.116
- Fix #295 by only managing tf and cp if resample/replay have been specified
- Correct expire and cancel in OandaStore
- Correct BollingerBands to use the chosen movav for the StdDev calcs
- Ensure parameters wit plotinfo and no plotname get a name granted
1.9.39.116
- Fix #294 which break plotting by plotting with no indicators/observers
1.9.38.116
- Plotting control options for last value in legend and right hand side
tag
- Documentation improvements
- Support numeric timestamps in CSVGenericData
1.9.37.116
- Add new samples (OCO, StopTrail/Limit, LRSI, partial-plot, psar,
future-spot)
- Add Bracket order support
- Bracket order for IB and adapted sample
- Correct cancel order message reception in OandaStore
- Cosmectic changes to quickstart examples
- Document bracket, stoptrail/limit, oco, partial-plotting, same axis
plotting, future-vs-spot
1.9.36.116
- StopTrail/StopTrailLimit/Oco for Interactive Brokers
- PR #290 for child OCO orders
- Oco and other generic parameters passed transparently from any order
generating method (ex: order_target_size) down to buy and sell
- Correct pricelimit parameter in ib
- Use strategy datetime instead of data0 and ensure a complete header in
Positions analyzer
1.9.35.116
- Catch limit/stop order creation earlier in Oanda Store
- StopTrail/StopTrailLimit orders for backtesting
1.9.34.116
- Docs updates
- OCO implementation for backtesting
1.9.33.116
- Make sure sizer is only used if size is not None (default)
- Doc corrections
- Improve legend presentation in sameaxis mode
1.9.32.116
- Added Calmar, TimeDrawDown and PeriodStats analyzers
- Reach data by names as dict or dot notation
- Allow one asset to compensate the positions of another
- Add more python versions to Travis PR #276
- Support plotting datas on same y-axis
- Update sample in contrib pair trading PR #273
- PR #274 number of tranches to FixedSize Sizer and add FixedSizeTarget
- Close #280 exception when get pyfolio analyzer agaist multiple data
- Close #277 (inc PR #277) by entering re-calculation of xstart and xend
plotting indices
1.9.31.116
- Add Indicator HurstExponent (requires numpy)
- Allow plotting specific date ranges with start and end named arguments
to plot
- Address #269 missing last bar backfill_from
- Fix typo (#271) in frompackages import for InfluxDB feed
- Add OLS_Slope_InterceptN, OLS_BetaN, OLS_TransformationN and Coint
- Ensure broker has prices even if tick_xxx is not defined
1.9.30.111
- Add LaguerreRSI PR #265
- Add LaguerreFilter PR #267
- Doc maintenance (also PR #266)
- Add ParabolicSAR
- Add InfluxDB Data feed (PR #257) and Import Tool (#PR268)
- Add auto-pytz code from IBData to generic feeds to allow passing strings
Address #262
- Add support for packages and frompackages
- Finish import of new sizers
- Fix #263 - Refresh resample-tickdata to specify timeframe
- Store module name and not module in talib autogenerated wrapper class
- pyfolio api change note
1.9.29.108
- Correct csvgeneric import
1.9.28.108
- Set eos time from param.sessionend in csv timeframes
- Improve support for timeframe/compression in btrun
- Add ApplyN indicator (and base for it and variants BaseApplyN)
- Add PercentSizer and AllInSizer
- Add DV2 Indicator
- Add PercentRank Indicator
1.9.27.105
- Patch CST timezone name to CST6CDT
- Support automatic argument wrapping as line objects in CrossOver
- Initialize attributes before rejection can happen in OandaData
- Stop considering clones to decide if live feeds have to wait or not to
avoid cpu hogging
- Use _mindatas to decide how many from the parent datas to pass if none
is specified by the user
- Some doc corrections
1.9.26.105
- Adapt order_target_value to short cash semantics in broker
- Several refinements to resampling to deliver synchronized bars on end of
session
- Add exceptions and strategy skip exception
- IBData - Deactivate code for faster downloads during absence of live data
to avoid breaking reconnection code
- Allow selective order based skipping of coc
1.9.25.105
- Close #244 by giving feeds the chance to finish initialization by
themselves, ensuring proper initialization and allowing early data
download (merged and refactored PR #245)
- Add support for live data detection and dynamic queue check
timeouts to avoid pausing on historical traversal when other feeds
are live
- Add PR #242 DrawDown length observer
- Assimilate PR #240 into cash asset
- Fixes #239 by providing empty values if the data or indicator has
not produced a value yet
- New DrawDown Analyzer and refactoring of DrawDown observer
- Closes #235 by updating PivotPoint Family to make plotting work under new
sync scheme and automate self-coupling
- Some usual documentation updates / typo corrections
- Minor corrections/improvements
- Address #243 by sorting (timeframe, compression) data feeds internally to
avoid forcing users to pass smaller timeframes first
- Add end-of-session calculation, including adding end-of-session to daily
data from IB
1.9.24.105
- Complete TimeFrameAnalyzerBase with a call to _nextstart and children
- Improve 1st comparison point of benchmark
- Documentation updates / samples clean-up
- IBData feed timezone and backfill gap corrections
- Initial support for CFD products (untested) to request BID and not TRADES
- Ensure initialization of backfill_from data feeds
1.9.23.105
- Benchmark observer will observer after the strategy has reached its
minimum period
- Refactoring of TimeFrameAnalyzerBase
- Ensure NoTimeFrame name is always returned rightly
- Documentation updates
- btrun will only load data feeds if they can be imported
1.9.22.105
- Improve unleveraged value by not unleveraging profit and loss
- Doc edits from PR #223, #224
- Correct refactoring leftover for backfill_from for IBData and OandaData
- Extend btfd sample with logs
- Add ZeroDivisionError to SharpeRatio
- Add automargin to commission info schemes
1.9.21.105
- Closes #230 by closing the pool on completion rather than waiting for
garbage collection
- Default to show unleveraged value and allow retrieval of leveraged
value
- Update btfd sample to updated leveraged value
- Improve order value reporting with leverage
- Correct dataseries TimeFrame name presentation in writers
- Doc updates
1.9.20.105
- Added pair-trading sample from @remroc: PR #223, #224, #225
- Some documentation updates
- Leverage support
- Closes #227 numfigs type=int in arg parsing
- Correct no-plotting of datas
- Correct pandasdata integer addressing issue
- Correct time comparison when running with runonce=True
- Update SessionFiller to more stringent standards in modern versions
1.9.19.105
- Add time comparison for single line operations
- Correct plotting error calculations with volume and improve data on data
- Remove cosmetic comma
1.9.18.105
- PR #221 Correct onda candleFormat parameter
- Allow data on data plotting and no data plotting
- Remove double labeling on indicators
- Analyzer LogReturnsRolling
- Observer LogReturns
- Improved order management of input for validity
- Set default end date for online downloads in Yahoo if not set
- Gold vs SP500 Sample
1.9.17.105
- PR #195 make runstrats iterable to allow callbacks
- Fixes #189 by adding callback during optimization
- Fixes #205 to avoid errors during unnamed argument usage in strategy
- Regression correction for no short-cashing
1.9.16.105:
- PR #212 added Vortex indicator
- Closed #215 writer opens file in binary mode
- Closed #210 missing comma in status definitions lists in feed
- PR #203 python3 compatiblity for ib (long)
- Added shortcash parameter to broker to control cash increase/decrease
1.9.15.104:
- PR #202 to fix import in ibdata
- PR #196, #198 - doc updates
- PR #199 delegate notifications in Chainer Data Feed
- PercentChange indicator request from #192
- %B BollingerBands from #190
- Check bar time before market type execution #190
1.9.14.102:
- Pull Request #187 to improve SQN and test
- Update some samples
- Refactor new KST - Closes #183
- Closes #163 adding interest as commission to correct calculate PNL
- Improve SignalStrategy overriden methods to avoid impacting user subclasses
- Closes #168 - Fetching open orders
- #173 short-circuit calculation sqn in case of no trades
- strategy selection sample
1.9.13.102:
- Closes #179 Ichimoku indicator
- Plotting allows now filling areas and showing the indicator name even with
plotlinelabels active
- Use _minperiod in linebuffer.qbuffer for maxlen rather than default 1
- Closes #169 - Correct DaySteps filter
- Add ROC100 indicator
- Add KnowSureThing indicator
1.9.12.99:
- Improve cheat-on-close to provide exact match price even during replay
- Allow offsetting resampling bar set by timeframe/compression units
1.9.11.99:
- Separate resampling from replaying for synchronization purposes
- Modernize sample to better check #169
1.9.10.99
- Further use cases coverage for new synchronizatio method and
resample/replay
- PR #173 - SharpeRatio returns None if it cannot be calculated
- PR #173 - SQN returns 0 (instead of raising exception) if no trades have
been made
- Cover replay case for cheat-on-close
- Extra analyzers in VWR Sample and modernized PivotPoint sample
- Reworked of plotting for datas of different length by matching date indexes
- Removed old mlen accounting for plotting different timeframes
- #172 cover extra unwinding of linebuffer and add extra size to qbuffer
1.9.9.99
- Correct RSI_EMA, RSI_SMA subclassing
- Add cheat-on-close to the broker
- Correct own operation bug directly on lines (was fine on line
actions/operations)
- Add support for __neg__ operator (-) to lines
- Adresses #170 by forcing a bool as return
- Extend signal trigger detection to inverse and any values
- Support for embedding in a line non-line types
- Closes #171. Make safepow the default
- Use DataTrades only if several datas are in place
1.9.8.99
- Workaround IbPy not converting bytes by passing strings in Python3
- safepow parameter for StandardDeviation
1.9.7.99
- Closes #156 by adding LinePlotterIndicator
- Closes #154 by providing hollow candlesticks
- Ensure unique name for analyzers to get all printed out by writers
- Fix installation instructions for plotting
1.9.6.99:
- Allow defining the datetime format string for the x axis and data points.
Closes #148
- Rework plotting to account for datas with different lengths and work with
auto locators/formatters
- Improve signals to handle multiple datas and wrap LineIterators (Indicators)
- Use excess returns for the standard deviation in Sharpe Ratio
1.9.5.99
- Improve data synchronization behavior
- Make new DataTrades synchronize to strategy
- Correct TimeFrameAnalyzerBase to synchronize with strategy
1.9.4.99
- Add DataTrades Observer to plot the trades of multiple datas independently
- Make this observer the default in cerebro (old behavior via oldtrades=True)
1.9.3.99:
- copyas method in data feeds to let a clone data be seen differently in the
broker
- Count trades on strategy basis and not main data basis
- Add RQAlpha link
- Fixes #153 by closing file descriptors after preloading
1.9.2.99:
- Correct plotting for multi strategy approach
- Make Crossover plot like any other indicator
1.9.1.99:
- Automatic inline plotting if running inside a notebook
- Correct new plotting code for Python 3
1.8.14.99:
- README Updates
- Improvements to generic Store management and VChartfile
- Addresses time underflow/overflow in #143
1.8.13.99:
- Set annualization factor for days to 252 in SharpeRatio to match the value
most used in the literature
- Add Returns analyzer
- Closes #137 Added VWR (VariabilityWeightedReturn) analyzer
- Fixes #141. optreturn must only be applied when optimizing
- Correct getting default value for ptfimeframe in pyfolio2 sample. Fixes #142
1.8.12.99:
- Rework SharpeRatio, add annualization and add SharpeRatio_A with default
annualization
- Improve data / results message passing during optimization
- Some documentation improvements/corrections
1.8.11.99:
- Add rounding control to YahooFinanceCSVData and update docs. Closes #138
- Sharpe Ratio external testing sample. Addresses #137
- order_target_api, sample and cos. Closes #134
1.8.10.99:
- Added Any, All, Reduce, function replacements
- Added AnyN, AllN, ReduceN indicators
- Aliased Highest -> MaxN, Lowest -> MinN
- Added VChartfile Store and Feed improving over existing feed
implementing the store pattern and fetching the basepath location
from the registry if possible
- Some docs improvements/corrections
- Add a generic Store to let stores subclass
- Add a Chainer, RollOver data feed and sample
- Add shortcuts for some subpackages: indicators -> ind, observers -> obs
strategies -> strats, commissions -> comms
- Add framework for analyzer testing and tests for 2 analyzers: SQN,
TimeReturn
1.8.9.96:
- Finalize Oanda integration
- Allow simulated orders (meant to fetch initial positions from live brokers)
1.8.8.96:
- Add support for credit interest rate (#125), with update of docs, sample,
support in broker and btrun
- urlencode tickers for yahoo downloads (feed and tool)
1.8.7.96:
- Added indicators (3): Hull MA, ZeroLag Indicator, Dickson MA
- Added control of object cache to cerebro (default deactivated)
- Refactored the support for "next" only indicators
- Typos and Docs updates (also from pull-requests)
1.8.6.93:
- Refactor bt.signals to bt.signal (keeping compatibility for prev uses)
- Improve writer to write non-string lists and fetch headers after anylzers
- Add base bt.Signal strategy class for easier subclassing
- Update btrun to support signals/slippage/flushing, update feeds and minors
- Correct writer collections of analyzers parameters
- Correct reverse overloaded operations in stage2
- Some docs/docstrings corrections
1.8.5.93:
- Slippage implementation in broker, documented and with sample
- Refactoring/File Reordering of broker and volume fillers
- Documentation updates/corrections/cleanup
- Merge #120
1.8.4.93:
- Filters documentation and reference
- Add pinkfish ohl + o filter
- Some filter refactoring
- README Updates
1.8.3.93:
- Refactoring of pyfolio and children analyzers following #116 to try to
support future intraday support in *pyfolio*
- Allow adding a specific signal strategy subclass to cerebro
- Refactor SignalStrategy to ease up subclassing
1.8.2.93:
- #106 Oanda Data Feed
- Adding _dataname to always be able to identify a data by symbol, including
*resampled/replayed*
- Address #115 resampling of same ibdata which was losing timezone information
in cloning
- Display raw datetime information in ibtest. For same data resample topic
in #115
1.8.1.93:
- Addresses #115 - improvement in ib multiple data handling
- Improvements in vcdata multiple data handling
1.8.0.93:
- Added signals api
- Correct value calculation for shorted stocks
- Add a symbolic margin to commissioninfo if not specified
- Remove line amonst marker in Trades observers
1.7.2.93:
- Added getsize to CommissionInfo API to allow, for example, a sizer to
calculate the size of a trade using percentages
- Add __btversion__ which is a tuple of ints for easy version comparison
- Add macd-settings sample
1.7.1.93:
- Pinkfish challange sample
- Add stash to feeds to allow filtered output to be resent to filters
- Restore deprecated setsizing method in FixedSize sizer for old quickstart
guide
- Rework quickstart tutorial and samples to use addsizer and deprecate
setsizing
- Allow BuySell observer to plot above / below high / low for clarity,
especially when plotting ohlc/candles bars
- Add support for observer orders during replay
- Improve Close order execution logic
- Fix microsecond precision errors in end of session calculations in order
and feed
- Docstrings cosmetic changes
1.7.0.93:
- Changes to support separate auto-documentation for a branch of an object
hierarchy
- ta-lib integration: Closes #53
- ta-lib documentation
- Improve sizers internal interface by having a strategy attribute, which
can be used before resorting to the broker
- observer and benchmarking documentation update
1.6.4.93:
- Reworked and published sizers interface (addresses #104) with changes
in cerebro and Strategy
- Observers documentation
- Refactor timereturn analyzer logic for better readability
1.6.3.93:
- Correct lastvalue update in TimeReturn
- Closes #111 by annualizing the returns if the rate is not downgraded
1.6.2.93:
- Closes #89 by adding benchmarking to TimeReturn and new observers
TimeReturn/Benchmark (sample included)
- Analyzers can be embedded in observers to share functionality
- Added TimeFrame.NoTimeFrame
- ibpy imported in readthedocs for IBStore/IBBroker/IBData doc generation
1.6.1.93:
- Closes #108 - Plotting documentation
- Some updates to analyzer docs
- Further refactoring/improvements/corrections to the analyzers
1.6.0.93:
- Pyfolio integration
- Refactoring/reorganization of analyzers
1.5.3.93:
- Correct filler implementation in the broker to consider order side for the
value returned from a filler
- Extend volumefilling sample to cover sell and repetition scenarios
1.5.2.93
- Added support for volume filling strategies in the broker
- Added 3 volume fillers: FixedSize, FixedBarPerc, BarPointPerc
- Added broker and fillers to the docs
- Added TimeReturn to the Analyzers reference
- Added DaySteps filter and sample to downsample a day bar in open + rest
1.5.1.93
- UltimateOscillator added. Requested with ticket #103
- VisualChart Live Data Feed/Trading integration
- Add YahooFinanceData (online) to formats supported by btrun
1.5.0.92
- InteractiveBroker Live Data Feed/Broker
- Rework of many internals to support live feeds
- DateTime Management (timezones) support added
- Extra Rework of Resampler/Replayer to support live feeds and earliest
possible bar delivery
1.3.3.92
- Fixes #99 by conditionally importing ib modules
1.3.2.92
- safediv added to Stochastic from Pull Request #97
- Initial integration fo ib feed/broker. Can operate but it is not yet fully
ocmplete
- Comprehensive ib testing sample
- Added "store" and "data" notifications to cerebro and strategy for the
integration of live feeds
- Internal datetime clarifications
- Fixes #94 removing leftover decode('utf-8') after removing 'b' from 'rb'
when opening csv files
- Fix bug in strategy.close and add plimit support to it
- Some documentation updates
1.3.1.92
- Memory saving schemes (exactbars parameter to cerebro) full implemented
- Add mixing-timeframes to the docs
- Add memory-savings to the docs
- Cosmetic corrections to data-resampling sample
1.3.0.92
- Address #84 #86 by implemting a LinesCoupler lines object which fills longer
timeframe lines with shorter timeframes
- Add sample for LinesCoupler
- New links for readthedocs io domain
- Detection Improvement for objects supported by writers
1.2.9.92
- Add 3 new indicators (from #81): PivotPoint, FibonacciPivotPoint,
DemarkPivotPoint
- Add new function CmpEx
- Change plotinit to the intial stages of plotting
- Add plotinfo information to any LineSeries objects
- Implement LineActions Cache
- Implement Indicator Cache
- Cover resampling across midnight border #81
- Correct error in docs (concepts) #82
- Addresses #82 by only advancing indicators in runonce mode if the clock
has overtaken it
- Addresses #82 by having LinesOperations define and internal clock which
may not be the owner
1.2.8.88
- WeekDaysFiller sample for #76
- Implement new memory saving schemes. Addresses #74
- Additions/Refactoring to the intenal api offered to filters and internal
utils objects and removal of leftover prints
- Refactoring of replay/resample filters
- Some testing refactoring
- Support for cross-plotting across datas of different timeframes
- PivotPoint sample for #81
1.2.7.88
- Correct resampling/replaying behavior for calculating the delivery with
configured compression fator for timeframes ticks and days or larger.
Addresses #47, #77, #78
- Adapt resample/replay tests to improved resampling/replaying code which
delivers the bar 1 tick earlier
- Sample for bidask data to OHLC. Closes #78
1.2.6.88
- Fix broken data-multitimeframe sample
- Address #72 by improving _getsizing method which not also takes data as
parameter
- Fixes #77 by correctly calculating when the current session ends for the
last bar (when next session data is already in)
1.2.5.88
- Fixes #67 by having the Buy Sell Observer be displayed for all datas in the
system
- Improve support of live data feed resampling/replaying. Addresses comments
in #69 and #44
- Support safe division by zero RSI calculations. Closes #68
- Fixes #71. Single Lines (LineOperations in this case) don't get added to
the indicator mix for writers
1.2.4.88
- Improved detection in cerebro.resampledata of existing datas before cloning
- Added detection in cerebro.replaydata of existing datas before cloning
1.2.3.88:
- Add samples following 'Close' order corrections/improvements for
testing. Addresses #62
- Improve 'Close' execution support and correct conflicting behavior
with method checksubmit. Addresses #62
- Correct method close of strategy by using kwargs which was not
taking into account the existence of a plimit parameter in methods
buy/sell and would pass the execution type as plimit
- PandasData extension sample and data supporting discussion in
ticket #65
- If datas have been passed to cerebro, ensure cerebro has a
strategy to run against (which can get indicators, analyzers,
observers and other through the appropriate interface)
- Addresses #64 by auto-cloning datas in resampledata if the data
was already in the system
- Return a list in case cerebro.run is not run due to missing datas
1.2.2.88:
- Update of bidask sample
- SessionFiller correction to avoid moving the evaluated bar too early into
the stack and avoid the previous session to fill into new session
1.2.1.88:
- Remove old DataReplayer/DataResampler and cerebro resampledata_old and
replaydata_old which were using them
- Adapt docs and test to remove DataReplayer/DataResampler and document the
newer interfaces
- Add ``linesoverride`` parameter to enable redefining the lines of an object
at any stage. Allows removing OHLC default support
- Generalized GenericCSV to use the defined line aliases
- Generalized tick assignment to use the defined line aliases
1.1.27.88
- Closes #61 by checking datamaster against None to prevent operator
overloading to evaluate the object as False because line 0, contains a value
of 0 at index 0
1.1.26.88
- Closes #49 by setting the matplotlib backend to "tkagg" to avoid using other
non-tested backends
- io.StringIO instead of internally imported one from py3
- CSVDataBase unicode/bytes unification and also for YahooFinanceData feed
- yahoodownlaod tool bytes/unicode clarification and urlopen bug correction
1.1.25.88
- Fixes #55 and improves management of CSV subclasses opening a file from
other sources
- Sample which tests yahoo online downloading
1.1.24.88
- Fixes #51 - a trade may reopen a position but close a trade if overlapping
(different tradeid) trades are active
- Address Pull Request #52 by adding Py 2/3 MAXINT compatible "constant" which
is imported into TradeAnalyzer and used instead of sys.maxint
- Fixes #50 by correcting open/popen typo in StopLimit order
1.1.23.88
- Fixes #46 by adding a default of total.total = 0 to indicate that no trades
were executed and therefore no statistics
- Fixes #46 by adding a default of total.total = 0 to indicate that no trades
were executed and therefore no statistics
- CalendarDays filter implementation and added sample
- Removed gitter from README
1.1.22.88
- Filters moved to submodule filters
- Full docstring update for CommInfoBase
- Small improvements to internal AutoDict/AutoOrdereDict
- Implementation of Trade history log (#40)
- Added __bool__, __nonzero__ to Position for position testing
- Orders support miscellaneous information from end-users (#42)
- Trades get unique identifier and datetime for opening/closing time (#42, #43)
- Corrected typo in iteritems (#38)
1.1.21.88
- Addition of keys, values, items to py2/3 compatibility layer
- Add getdatanames to strategy
- Strategy.buy/sell/close take data or name as key for operation
- Close #37 pannotated typo in "atclose" order type in broker
- Close #35 adding getpositionbyname, getpositionsbyname, getpositions and the
associated properties without "get"
1.1.20.88
- #33 correction of typo added during correction of #33
- Added getdatabyname and string_types check in buy/sell/close to retrieve
datas in Strategy
1.1.19.88
- Fixes #33 by properly adjusting the cash for existing open futures (added
long comment to explain the logic)
- TimeReturn analyzer added. Can calculate returns for all timeframes
- SharpeRatio updated to use TimeReturn including automatic adjustment of
the (annual) riskfreerate for timeframes days, weeks, months. It can still
use the legacy AnnualReturn analyzer
- CommInfoBase added as root of all commission schemes to make commission
schemes more flexible by not tying margin to commission type deduction
- Added 4 CommInfoBase derived classes with standard commission schemes
- Extended broker.setcommission call with parameters to work with the new
CommInfoBase
- Implemented the legacy CommissionInfo as a subclass of CommInfoBase, fully
retaining the existing behavior
- Some in-code documentation updates
1.1.18.88
- Fixes #31 - Packaging issue under Python 3.x introduced in 1.1.17.88
1.1.17.88
- #29 extend commissions to support additional schemes
- #27 convert iterable in pandas datasource to list before checking len
- Packaging reordering to suppor introduction of dependencies
1.1.16.88
- Correct missing super in start some Data Feeds. Closes #27
1.1.15.88
- DivByZero function included to perform division without triggering
exceptions
- SessionFiller completed as data filter
- Corrections to WriterStringIO
- Final renaming of data filter API
- Reset of operators to stage1 to be able to run over same data again withoug
re-init
- Update data-replay/resample samples to use new filter API
- Rework of testcaes to use new filter API and run all combinations of
runonce/preload
1.1.14.88
- Comminfo passed down to trades for multitrade profit and loss calculation
for issue #226
- Addition of filters/processors (naming not final) to data sources
- (Re)Implementation of Resampling/Replaying as Processors - Old
Implementation still available
- Changed X axis formatting for Weeks/Months/Years
- DataFilter/DataFiller implemented as DataSources and also as
Filters/Processors
- DataFilter/DataFiller sample
- Time management improvement to address precision issues when isolating time
from coded datetime with new functions in LineBuffer
1.1.13.88
- Further refactoring of resampling (keeping previous parameter names
compatible) killing corner case for last bar still having the sub-bar
timestamp - Close #25
- Added sessionstart parameter to DataBase to complement sessionend
- Some module import refactoring to refer to main module
- Added DataFilter class
- Close #24 by enabling writer to handle Analyzer dictionaries which carry
non-string as keys
- Correct/enhance some of the samples
1.1.12.88:
- Refactoring of minute/seconds/microseconds bar compression scheme to allow
time adjusted bars
- Added tick_last to datas - alias of tick_close
- resampledata and replaydata methods added to cerebro
- Added tick_last to datas - alias of tick_close
- Added multitrade support and sample
- Added helper time2num and num2time to complement date2num and num2date
- RelativeVolumeByBar Sample
- Corrected fromdate being set at the end of session
- Refactor some data feeds to use iterators and discard itertools.count
- Add dm/tm methods to LineBuffer to get numeric parts (int/fraction) of
numeric datetime representation
- Added sample datas with volume
- Corrected _orlogic for "Or" function and bool'ized And and Or
- Refactored starting points in running strategies
- Added queue/Queue to py3 compatibility
- Further rework of minute (and sub-minute) Data Resampling/Replaying
- Added tia/visualize-wealth/QSTK/TradingWithPython to README
- Added tick_last to set of tick variables (open/high/low/close)
- Added resampledata and replaydata to cerebro to avoid having to instantiate
DataReplayer/DataResampler
1.1.11.88:
- Added TimeFrame for Ticks, MicroSeconds and Seconds
- Plot support for new Ticks, MicroSeconds and Seconds TimeFrames
- Removed flushing of sys.stdout on Win32 platforms to avoid interactions with
ipython (fixes #20)
- Reworked Resampling for TimeFrame Minutes (closes #19) and added Resampling
for Seconds, MicroSeconds and TickData
- Sample of plot-on-same-axis added
- Added pypy/pypy3 tests to Travis and added to to documentation
- Added sample which resamples tickdata
1.1.10.88:
- Small documentation updates
- Indicators can be plotted on/over other indicators
- Sample of plot-on-same-axis added
1.1.9.88:
- Doc/Readme additions for 3.5
- Removed dangling py3 in writer from six transition
- Added writer testcase
1.1.8.88:
- Added Python 3.5 to Travis CI
- Removed 2.6 and added 3.5 from setup.py
- Refactored bt-run.py to internal function and added btrun executable to
installation
- Added cerebro parameters and writers support to btrun
- Fixed duplicate writers next call in "next" mode
- Improved LineSeries objects name printing in WriterFile and changed "csv"
to False
- Correct sign of "closed" if a long/short position if a position is reduced:
closes #18
- Removed six dependency through small internal Py2/Py3 module and updated
docs and setup.py
- Removed nose-exclude from test requirements
- Implement current order status in broker
- 0 can be passed as number of maxcpus for optimization (same as None)
- SQN and TradeAnalyzer documented
1.1.7.88:
- Drop Python 2.6 support (also removing internal OrderedDict) after adding
nexbars which needs collections.deque with maxlen (>= 2.7)
- First Writer Implemenatation for CSV Output
- TradeAnalyzer implementation
- SystemQualityNumber (SQN) implementation
1.1.6.88:
- Broker reworked to check margin/cost limits on order submission/execution
- Broker fix to avoid having the wrong sign on short "Trades"
- Rework Trades commission deduction
- Additions to Position, Order to support broker new checks
- Add missing analyzers loop call to "_next"
- Observers loop handled in Strategy now (only object holding them)
- Observers reachable in strategy via new alias "observers" (in addition to
"stats")
- Cosmetic changes to analyer pprint
- Correction to Position.__len__ to work with negative sizes (short positions)
- Crossover defaults to true for plotting just like any other indicator
- "Exactbars" mode added which limits the amounts of bars to those needed by
each indicator. Disables runonce, preloading and plotting. It uses a
ringbuffer method
- Documentation/Samples directory (and hence doc fixes) rework
- Documentationn rework for direct execution of scripts against sample datas
#16
- Multiple Data Strategy added as Sample
- Automatic import of flushfile
- Added LineForward as complement to LineDelay
- Correct double call to Analyzer._next
- Cover case in which a line from a data is directly assigned, avoiding the
binding to kick-in too early
- Correction in Accum indicator (typo line -> lines) and super addition to
WilliamsAD
1.1.5.88:
- Added reversion to stage1 operator behavior when the strategy backtesting is
over
- Refactoring of minimum period calculation in LineIterator
- Refactoring of strategy minimum period calculation to allow indicator
injection
- Cerebro support for addition of indictors to inject into strategies
- bt-run rework to support multiple strategies (o none), observers, indicators
and analyzers with individual kwargs per entry
- bt-run rework of plotting to single argument with kwargs
- Corrected ill behavior when separatin multiple line objects passed as single
argument to an indicator which lead to multi-owner management for the 2nd
line and posterior
- Analyzer defines stubs for print pprint and get_analysis
- Addion of LineDelay opposite: LineForward to support positive (look/write
backwards) arguments in the line(period) notation
- Added datas and data alias in Analyzers
1.1.4.88:
- Thorough documentation rework
- Corner case for multiple timeframe datas when the larger timeframe doesn't
contribute to minimum period with indicators
- Correction of data resampling which affected same timeframe (which is valid
because compression can be different)
- Built-In Strategies auto-documentation added
- Blaze data support and Pandas Datafeed with only numeric indices support
- bt-run accepts kwargs per loaded object (strategy, observer, analyzer) and
can load the default Strategy object if none is specified
1.1.3.88:
- Automation bt-run.py script added
- Pandas Dataframe support
- Improvements to OrderedDict imports for Python 2.6 compatibility
- Default reference price for orders is bar closing price if not set like in
Market orders