hackingthemarkets / ttm-squeeze

TTM Squeeze Scanner For Stocks in Python using Pandas and YFinance
127 stars 65 forks source link

Issue running squeeze.py #1

Open thematrixiam opened 3 years ago

thematrixiam commented 3 years ago

I haven't coded in ages. My coding knowledge is from way back in Qbasic, VBasic, C and C++ Days.

I am getting these error messages when I run squeeze.py. Any clue why?

& python c:/Users/Rich/Desktop/Investments/ttm-squeeze-master/ttm-squeeze-master/squeeze.py Traceback (most recent call last): File "c:\Users\Rich\Desktop\Investments\ttm-squeeze-master\ttm-squeeze-master\squeeze.py", line 30, in if df.iloc[-3]['squeeze_on'] and not df.iloc[-1]['squeeze_on']: File "C:\Users\Rich\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pandas\core\indexing.py", line 895, in getitem return self._getitem_axis(maybe_callable, axis=axis) File "C:\Users\Rich\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pandas\core\indexing.py", line 1501, in _getitem_axis self._validate_integer(key, axis) File "C:\Users\Rich\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\pandas\core\indexing.py", line 1444, in _validate_integer raise IndexError("single positional indexer is out-of-bounds") IndexError: single positional indexer is out-of-bounds

thematrixiam commented 3 years ago

I went back an went through the datasets. There were some stocks that had a low volume.

I deleted them. This drastically reduced the number of errors I have.

Now I just have this:

Traceback (most recent call last): File "c:\Users\Rich\Desktop\Investments\ttm-squeeze-master\ttm-squeeze-master\squeeze.py", line 51, in df = dataframes['ACZ.TO'] KeyError: 'ACZ.TO'

thematrixiam commented 3 years ago

Ok... Update.

I want back, started from scratch. Had some issues with my first run. I could have had the folder selected wrong. I corrected the folder by moving my files to the proper path. For some reason Winrar was added an additional path to the one I gave it.

I then used "code ."

I cut the original dataset down so I could test it properly. I got it to run no problem and it showed googl chart.

I then changed the date to make sure it wasn't a date issue. reran it. I got new squeezes. And also tried a different stock to print. It worked perfectly, to my knowledge. lol

Now, I am going to see if I can get it to work with my other list. I think the problem may be arising when it is using extra characters in the stock. Canadian stocks list some stocks with the ".to" or ".v" added to them

thematrixiam commented 3 years ago

Yes... I narrowed it down to being an issue loading stocks with the "." in the name.

Any help?

thematrixiam commented 3 years ago

If I change it like this it works

df = dataframes['ACZ']

... New issue.

If I have datasets with less than 2 rows of data I get errors. (this is not including the row of names)

thematrixiam commented 3 years ago

I figured out how to deal with stocks that have too low of volume of information. If there isn't 3 rows of data the program will error out. To get around this you need it like this:

size=len(df)
# print(size)
if size <= 2:
    continue

if df.iloc[-3]['squeeze_on'] and not df.iloc[-1]['squeeze_on']:
    print("{} is coming out the squeeze".format(symbol))