Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is there an ETA when ta-lib will work under C++ 17.0 ? #142

Closed
aberja opened this issue May 1, 2017 · 18 comments
Closed

Is there an ETA when ta-lib will work under C++ 17.0 ? #142

aberja opened this issue May 1, 2017 · 18 comments

Comments

@aberja
Copy link

aberja commented May 1, 2017

When trying to create and install the ta-lib 64 bit version, I received an error message "Visual C++ 14.0 is required". Upon further investigation, I noticed that Visual Studio 2017 installs Visual C++ 17.0 and not 14.0. So I then installed C++ 14.0 under 2017, but it's now throwing an "error in script usage" when I run vcvarsall.bat amd64.

So before I spend too much time trying to figure out how to resolve this matter, I thought I would check to see if there is any ETA on when ta-lib will be able to work under C++ 17.0 and not require 14.0.

@a904guy
Copy link

a904guy commented May 1, 2017

mrjbq7/ta-lib is just a (cpython) wrapper around the ta-lib.org (C,C++) library you're compiling.

This repository doesn't handle the ta-lib.org lib itself.

Also it's been pretty abandoned for a while (the lib side) unless someone has move it to github and forked off and kept up its development.

@a904guy
Copy link

a904guy commented May 1, 2017

@a904guy
Copy link

a904guy commented May 1, 2017

Another alternative would be to simply use a VM or docker instance to install ta-lib as it's in most popular linux repositories now. But you'd have to work on your software inside either option.

@a904guy
Copy link

a904guy commented May 1, 2017

@mrjbq7 perhaps I should update the Readme with more apt instructions on installing with the windows environment?

@mrjbq7
Copy link
Collaborator

mrjbq7 commented May 1, 2017

Sure, that would be great. Also, there is a PR to include the ta-lib C library sources and allow installation of those as part of setup.py. I haven't had a chance to see how I like it, I hesitate because I don't want to maintain a fork of the ta-lib C source code but its annoying it's a little bit abandoned.

@herrold
Copy link

herrold commented May 1, 2017

Also it's been pretty abandoned for a while (the lib side) unless someone has move it to github and forked off and kept up its development.

I see 840 hits, in a variety of languages at GH ... the question becomes: which one of more is active and viable?

@a904guy
Copy link

a904guy commented May 1, 2017

@mrjbq7 I wouldn't combine and mix.

@a904guy
Copy link

a904guy commented May 1, 2017

@herrold There is a ton of wrappers... I don't know of anyone who has moved ta-lib's sources to github and are actively maintaining them.
The C code is a bit of a mess really, it's loaded with code that converts the C sources to C++ e.g.

@a904guy
Copy link

a904guy commented May 1, 2017

Closest maintained fork I can find is:
https://github.com/trufanov-nok/ta-lib-rt

And it's mostly just trying to clean up the mess I explained. They reimplemented the swig and perl apis. But their still more difficult to work with than this lib. I used to work on the swig interface back in the day trying to do exactly what their doing.

@herrold
Copy link

herrold commented May 1, 2017

@a904guy concur that this looks like the most vaible of the 840 or so matches which trawling through the GH search tool. The other useful link is a automated import of the prior SF variant, at:
https://github.com/svn2github/ta-lib

The two trees are quite close:

[herrold@centos-7 git]$ diff -u svn2github/ta-lib/ta-lib trufanov-nok/ta-lib-rt/ta-lib-rt
Common subdirectories: svn2github/ta-lib/ta-lib/.git and trufanov-nok/ta-lib-rt/ta-lib-rt/.git
Only in trufanov-nok/ta-lib-rt/ta-lib-rt: README.md
Common subdirectories: svn2github/ta-lib/ta-lib/tadoc and trufanov-nok/ta-lib-rt/ta-lib-rt/tadoc
Common subdirectories: svn2github/ta-lib/ta-lib/ta-lib and trufanov-nok/ta-lib-rt/ta-lib-rt/ta-lib
Common subdirectories: svn2github/ta-lib/ta-lib/tools and trufanov-nok/ta-lib-rt/ta-lib-rt/tools
[herrold@centos-7 git]$ diff -r svn2github/ta-lib/ta-lib/tadoc trufanov-nok/ta-lib-rt/ta-lib-rt/tadoc
[herrold@centos-7 git]$ diff -r svn2github/ta-lib/ta-lib/tools/ trufanov-nok/ta-lib-rt/ta-lib-rt/tools/
[herrold@centos-7 git]$

with the big change in, unsurprisingly, ./ta-lib/ which adds a couple of new functions, and as you mention addresses some build differences

[herrold@centos-7 git]$ diff -u svn2github/ta-lib/ta-lib/ta-lib/ trufanov-nok/ta-lib-rt/ta-lib-rt/ta-lib/ | wc -l
170

[herrold@centos-7 git]$ diff -u svn2github/ta-lib/ta-lib/ta-lib/ trufanov-nok/ta-lib-rt/ta-lib-rt/ta-lib/ | grep "^+"
+++ trufanov-nok/ta-lib-rt/ta-lib-rt/ta-lib/CHANGELOG.TXT 2017-05-01 17:36:52.011948641 -0400
+Version 0.7.0 (Spring 2017)
+- Project is forked to "TA-Lib RT" (real time).
+- Additional API for incremental calculation of indicators without reprocessing whole data
+- QtCreator project files tree is added to \c\ide\qt So now sources could be built from QtCreator IDE.
+#93 Link error: Missing test files: imi and avgdev (https://sourceforge.net/p/ta-lib/bugs/93/)
+++ trufanov-nok/ta-lib-rt/ta-lib-rt/ta-lib/CMakeLists.txt 2017-05-01 17:36:52.011948641 -0400
+SET(TA_LIB_VERSION_MINOR 7)
+SET(TA_LIB_VERSION_EXTRA "alpha")
+++ trufanov-nok/ta-lib-rt/ta-lib-rt/ta-lib/HISTORY.TXT 2017-05-01 17:36:52.011948641 -0400
+V0.5 (Summer 2008)

    • New TA_ACCBANDS
    • VS2005 makefile for SWIG Python interface.
    • MacOS makefile for SWIG Perl interface.
    • Visual Studio 2008 support
    • General fix to floating point processing for support
  • of calculation with very small values (<0.00000001).
    • 1870200 : Fix to Excel for #N/A rules.
    • Fix Linux RPM to make sure 64-bits lib installed in right dir.
    • Removed -lcurl and -lpthread from Python SWIG Makefile

+++ trufanov-nok/ta-lib-rt/ta-lib-rt/ta-lib/ta_func_api.xml 2017-05-01 17:37:10.902498641 -0400

  •   <!-- NVI -->
    
  •   <FinancialFunction>
    
  •           <Abbreviation>NVI</Abbreviation>
    
  •           <CamelCaseName>Nvi</CamelCaseName>
    
  •           <ShortDescription>Negative Volume Index</ShortDescription>
    
  •           <GroupId>Volume Indicators</GroupId>
    
  •           <RequiredInputArguments>
    
  •                   <RequiredInputArgument>
    
  •                           <Type>Close</Type>
    
  •                           <Name>Close</Name>
    
  •                   </RequiredInputArgument>
    
  •                   <RequiredInputArgument>
    
  •                           <Type>Volume</Type>
    
  •                           <Name>Volume</Name>
    
  •                   </RequiredInputArgument>
    
  •           </RequiredInputArguments>
    
  •           <OutputArguments>
    
  •                   <OutputArgument>
    
  •                           <Type>Double Array</Type>
    
  •                           <Name>outReal</Name>
    
  •                           <Flags>
    
  •                                   <Flag>Line</Flag>
    
  •                           </Flags>
    
  •                   </OutputArgument>
    
  •           </OutputArguments>
    
  •   </FinancialFunction>
    
  •                           <Type>Close</Type>
    
  •                           <Name>Close</Name>
    
  •                           <Name>outReal</Name>
    
  •                           <Flags>
    
  •                                   <Flag>Line</Flag>
    
  •                           </Flags>
    
  •                   </OutputArgument>
    
  •           </OutputArguments>
    
  •   </FinancialFunction>
    
  •   <!-- PVI -->
    
  •   <FinancialFunction>
    
  •           <Abbreviation>PVI</Abbreviation>
    
  •           <CamelCaseName>Pvi</CamelCaseName>
    
  •           <ShortDescription>Positive Volume Index</ShortDescription>
    
  •           <GroupId>Volume Indicators</GroupId>
    
  •           <RequiredInputArguments>
    
  •                   <RequiredInputArgument>
    
  •                           <Type>Close</Type>
    
  •                           <Name>Close</Name>
    
  •                   </RequiredInputArgument>
    
  •                   <RequiredInputArgument>
    
  •                           <Type>Volume</Type>
    
  •                           <Name>Volume</Name>
    
  •                   </RequiredInputArgument>
    
  •           </RequiredInputArguments>
    
  •           <OutputArguments>
    
  •                   <OutputArgument>
    
  •                           <Type>Double Array</Type>
    

+++ trufanov-nok/ta-lib-rt/ta-lib-rt/ta-lib/ta_func_list.txt 2017-05-01 17:37:10.912493641 -0400
+NVI Negative Volume Index
+PVI Positive Volume Index
[herrold@centos-7 git]$

@a904guy
Copy link

a904guy commented May 1, 2017

I would concur. RT appears the be the only forward motion development on the ta-lib at the moment.
Even the SVN is dead really. Check the trunk out.
https://sourceforge.net/p/ta-lib/code/HEAD/tree/trunk/ta-lib/

@a904guy
Copy link

a904guy commented May 1, 2017

If you read through their goals of the repo, it was to bring it back up to date (or try too), and add in stored state values, so that it was no longer a stateless library. Which I would consider a mistake, but shrugs

@mckelvin
Copy link
Contributor

mckelvin commented May 4, 2017

Would you please try this in your CMD(#135):

pip install wheel
git clone -b build-from-source https://github.com/mckelvin/python-ta-lib.git python-ta-lib
cd python-ta-lib
# Do not run `pip install .` here directly
pip wheel .
pip install TA_Lib-0.4.10-cp27-cp27m-win_amd64.whl

@mckelvin
Copy link
Contributor

mckelvin commented May 4, 2017

Another possible way is to use Conda: conda install -c quantopian ta-lib=0.4.9, where the C library is already built and included in the conda package: https://anaconda.org/Quantopian/ta-lib

@a904guy
Copy link

a904guy commented May 4, 2017

I ran your code, Windows 10 Pro. Failed in two areas, dependency checking:
image
And compiling:
image

@braindevices
Copy link
Contributor

@a904guy I agree, the ta-lib code is so messy that I cannot even read them. I tried to start to read it for about 5 times LoL, but each time I have to stop at about 10% ... Maybe it is the time to consider to build our own TA library from scratch.

@a904guy
Copy link

a904guy commented May 17, 2017 via email

@mrjbq7
Copy link
Collaborator

mrjbq7 commented Jan 20, 2024

Closing old issue.

@mrjbq7 mrjbq7 closed this as completed Jan 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants