CalcTechnicalIndicators
CalcTechnicalIndicators is calculate technical indicators for stock trading. This library read stock price movement. And it outputs indicators.
Installation
Add this line to your application's Gemfile:
gem 'calc_technical_indicators'
And then execute:
$ bundle
Or install it yourself as:
$ gem install calc_technical_indicators
Usage
TestData.fetch
#=>
# [
# {:opening_price=>6551, :closing_price=>6991, :low_price=>5103, :high_price=>7655},
# {:opening_price=>7259, :closing_price=>5208, :low_price=>5040, :high_price=>7560},
# {:opening_price=>5766, :closing_price=>5860, :low_price=>5598, :high_price=>8396},
# {:opening_price=>5817, :closing_price=>6434, :low_price=>5135, :high_price=>7703},
# {:opening_price=>5510, :closing_price=>6060, :low_price=>4312, :high_price=>6468},
# {:opening_price=>7424, :closing_price=>6404, :low_price=>5149, :high_price=>7723},
# {:opening_price=>6093, :closing_price=>7050, :low_price=>5890, :high_price=>8836},
# {:opening_price=>7715, :closing_price=>8785, :low_price=>6695, :high_price=>10043},
# {:opening_price=>7019, :closing_price=>6874, :low_price=>6453, :high_price=>9679},
# {:opening_price=>6773, :closing_price=>6596, :low_price=>5330, :high_price=>7994},
# {:opening_price=>6412, :closing_price=>6222, :low_price=>4603, :high_price=>6905},
# {:opening_price=>5053, :closing_price=>5006, :low_price=>4015, :high_price=>6023},
# {:opening_price=>6149, :closing_price=>5304, :low_price=>4432, :high_price=>6648},
# {:opening_price=>6430, :closing_price=>5830, :low_price=>4550, :high_price=>6826},
# {:opening_price=>5277, :closing_price=>5703, :low_price=>4514, :high_price=>6772},
# ....
# ]
require 'calc_technical_indicators'
CalcTechnicalIndicators::Calculator.new(TestData.fetch).execute
#=>
# [
# {:opening_price=>6551, :closing_price=>6991, :low_price=>5103, :high_price=>7655, :closing_price_sma5=>nil, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>7259, :closing_price=>5208, :low_price=>5040, :high_price=>7560, :closing_price_sma5=>nil, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>5766, :closing_price=>5860, :low_price=>5598, :high_price=>8396, :closing_price_sma5=>nil, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>5817, :closing_price=>6434, :low_price=>5135, :high_price=>7703, :closing_price_sma5=>nil, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>5510, :closing_price=>6060, :low_price=>4312, :high_price=>6468, :closing_price_sma5=>6110.6, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>7424, :closing_price=>6404, :low_price=>5149, :high_price=>7723, :closing_price_sma5=>5993.2, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>6093, :closing_price=>7050, :low_price=>5890, :high_price=>8836, :closing_price_sma5=>6361.6, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>7715, :closing_price=>8785, :low_price=>6695, :high_price=>10043, :closing_price_sma5=>6946.6, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>7019, :closing_price=>6874, :low_price=>6453, :high_price=>9679, :closing_price_sma5=>7034.6, :closing_price_sma10=>nil, :closing_price_sma25=>nil},
# {:opening_price=>6773, :closing_price=>6596, :low_price=>5330, :high_price=>7994, :closing_price_sma5=>7141.8, :closing_price_sma10=>6626.2, :closing_price_sma25=>nil},
# {:opening_price=>6412, :closing_price=>6222, :low_price=>4603, :high_price=>6905, :closing_price_sma5=>7105.4, :closing_price_sma10=>6549.3, :closing_price_sma25=>nil},
# {:opening_price=>5053, :closing_price=>5006, :low_price=>4015, :high_price=>6023, :closing_price_sma5=>6696.6, :closing_price_sma10=>6529.1, :closing_price_sma25=>nil},
# {:opening_price=>6149, :closing_price=>5304, :low_price=>4432, :high_price=>6648, :closing_price_sma5=>6000.4, :closing_price_sma10=>6473.5, :closing_price_sma25=>nil},
# {:opening_price=>6430, :closing_price=>5830, :low_price=>4550, :high_price=>6826, :closing_price_sma5=>5791.6, :closing_price_sma10=>6413.1, :closing_price_sma25=>nil},
# {:opening_price=>5277, :closing_price=>5703, :low_price=>4514, :high_price=>6772, :closing_price_sma5=>5613.0, :closing_price_sma10=>6377.4, :closing_price_sma25=>nil}
# ...
# ]
Contributing
- Fork it ( https://github.com/[my-github-username]/calc_technical_indicators/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request