Merge pull request #470 from GamestonkTerminal/minor-fixes

Fix Screener View and Improve TA Finviz View
This commit is contained in:
DidierRLopes
2021-05-29 01:24:05 +01:00
committed by GitHub
16 changed files with 43 additions and 108 deletions

View File

@@ -1,23 +1,18 @@
#Author of preset: Traceabl3
# Contact: via smoke signals
# Author of preset: Traceabl3
# Description: Buffet like value screener (Value invsting for long term growth)
[General]
[Descriptive]
Market Cap. = +Mid (over $2bln)
Dividend Yield = Positive (>0%)
[Fundamental]
EPS growthnext 5 years = Positive (>0%)
Debt/Equity = Under 0.5
Price/Free Cash Flow = Under 50
Sales growthpast 5 years = Positive (>0%)
Return on Investment = Over +15%
P/B = Under 3
[Technical]

View File

@@ -1,18 +1,13 @@
# Author of preset: Traceabl3
# Contact: via smoke signals
# ABOUT: High Yield Dividend stonks that are at-or-near their lowest price. Inverse Head and shoulders pattern recognized.
# Description: High Yield Dividend stonks that are at-or-near their lowest price. Inverse Head and shoulders pattern recognized.
[General]
[Descriptive]
Dividend Yield = High (>5%)
[Fundamental]
[Technical]
20-Day Simple Moving Average = SMA20 below SMA200
Pattern = Head & Shoulders Inverse

View File

@@ -1,22 +1,14 @@
# Author of preset: Traceabl3
# Contact: illuminated bat symbol in the sky
# Description: cheap dividend stocks
# Description: Cheap dividend stocks
[General]
Signal = Oversold
[Descriptive]
Dividend Yield = Over 1%
[Fundamental]
P/E = Under 15
P/B = Under 1
[Technical]

View File

@@ -1,7 +1,5 @@
# Author of preset: Traceabl3
# Contact: illuminated bat symbol in the sky
# Description: Cheap stonks that are oversold: under 10% above the low, and oversold on the RSI.
# Description: Cheap stonks that are oversold: under 10% above the low, and oversold on the RSI.
[General]
@@ -10,8 +8,5 @@
[Fundamental]
[Technical]
52-Week High/Low = 0-10% above Low
RSI (14) = Oversold (20)

View File

@@ -1,8 +1,5 @@
# Author of preset: Traceabl3
# Contact: take the red pill
# Description: Death cross : when the 50sma crosses below the 200 sma.
# More information can be found in https://www.investopedia.com/terms/d/deathcross.asp
# Description: When the 50 sma crosses below the 200 sma. More information can be found in https://www.investopedia.com/terms/d/deathcross.asp
[General]
@@ -11,6 +8,4 @@
[Fundamental]
[Technical]
200-Day Simple Moving Average = SMA200 crossed SMA50 above

View File

@@ -1,15 +1,11 @@
# Author of preset: Traceabl3
# Contact: flip the pigeons
# Description: Golden Cross when the 50 day moves above the200 day from below.
# More information can be found in https://finviz.com/help/screener.ashx
# Description: Golden Cross when the 50 day moves above the200 day from below.
[General]
[Descriptive]
[Fundamental]
[Technical]
50-Day Simple Moving Average = SMA50 crossed SMA200 above

View File

@@ -1,12 +1,9 @@
# Author of preset: Traceabl3
# Contact: blow into the conch shell
# Description: Heavily owned by institutions and insiders (>30% each)
[General]
Signal=
Order=
[Descriptive]
[Descriptive]
Analyst Recom. = Hold or better
[Fundamental]
@@ -16,4 +13,3 @@ PEG = Under 1
InstitutionalOwnership = Over 30%
[Technical]

View File

@@ -1,21 +1,15 @@
# Author of preset: Traceabl3
# Contact: Drum Telegraphy
# Description: Modified Version of the Dreman Screener.
[General]
[Descriptive]
Dividend Yield = Over 1%
[Fundamental]
P/E = Under 20
EPS growthnext 5 years = Positive Low (<10%)
Sales growthpast 5 years = Positive Low (0-10%)
EPS growththis year = Positive Low (0-10%)
[Technical]

View File

@@ -1,21 +1,14 @@
# Author of preset: Traceabl3
# Contact: bang the drums
# Description: Neff Screener with modifications // operational margin <50%
# More information can be found in https://marketxls.com/template/neff-screen/
# Description: Neff Screener with modifications // operational margin <50%. More information can be found in https://marketxls.com/template/neff-screen/
[General]
[Descriptive]
[Fundamental]
Sales growthpast 5 years = Under 20%
PEG = Under 2
EPS growththis year = Under 20%
Operating Margin = Under 50%
[Technical]

View File

@@ -1,25 +1,16 @@
# Author of preset: Traceabl3
# Contact: three shots in the air.
# Description: the "classic rosenwald" screen based on some dude i work with best guess.
# Description: The "classic rosenwald" screen based on some dude i work with best guess.
[General]
[Descriptive]
Analyst Recom. = Hold or better
[Fundamental]
P/E = Under 20
Sales growthpast 5 years = Over 30%
InsiderTransactions = Positive (>0%)
PEG = Under 2
[Technical]
Pattern = Channel Up (Strong)

View File

@@ -1,8 +1,5 @@
# Author of preset: Traceabl3
# Contact: wave the white flag
# Description: Too many indicators indicating an impending crash.
# Description: Too many indicators indicating an impending crash.
[General]
@@ -11,12 +8,7 @@
[Fundamental]
[Technical]
20-Day Simple Moving Average = Price below SMA20
52-Week High/Low = 0-5% below High
RSI (14) = Oversold (40)
Pattern = Wedge Down

View File

@@ -1,5 +1,4 @@
# Author of preset: Sexy Year
# Contact: Add contact of author, if (s)he whishes to be contacted. This can be an hyperlink, an e-mail, wtv
# Description: This is just a sample. The user that adds the preset can add a description for what type of stocks these filters are aimed for
[General]

View File

@@ -1,5 +1,4 @@
# Author of preset: GamestonkTerminal
# Contact: https://github.com/DidierRLopes/GamestonkTerminal#contacts
# Author of preset: GamestonkTerminal (https://github.com/DidierRLopes/GamestonkTerminal#contacts)
# Description: Template with all available filters and their options menu.
# More information can be found in https://finviz.com/help/screener.ashx
# and https://finviz.com/help/technical-analysis/charts-patterns.ashx
@@ -210,4 +209,4 @@ Gap = Any
Change from Open = Any
# Any, Long Lower Shadow, Long Upper Shadow, Hammer, Inverted Hammer, Spinning Top White, Spinning Top Black, Doji, Dragonfly Doji, Gravestone Doji, Marubozu White, Marubozu Black
Candlestick = Any
Candlestick = Any

View File

@@ -1,22 +1,14 @@
# Author of preset: Traceabl3
# Contact: message on tor browser.
# Description: Potential Undervalued stocks
# More information can be found in https://finviz.com/help/screener.ashx
# and https://finviz.com/help/technical-analysis/charts-patterns.ashx
[General]
Signal = Upgrades
[Descriptive]
[Fundamental]
PEG = Low (<1)
P/B = Under 3
EPS growthpast 5 years = Over 15%
[Technical]

View File

@@ -2,11 +2,20 @@
__docformat__ = "numpy"
import argparse
import io
from typing import List
import requests
import matplotlib.pyplot as plt
from finvizfinance.quote import finvizfinance
from finvizfinance.util import headers
from PIL import Image
from gamestonk_terminal.helper_funcs import parse_known_args_and_warn
from gamestonk_terminal.helper_funcs import (
parse_known_args_and_warn,
plot_autoscale,
)
from gamestonk_terminal.config_plot import PLOT_DPI
from gamestonk_terminal import feature_flags as gtff
def view(other_args: List[str], ticker: str):
@@ -33,11 +42,24 @@ def view(other_args: List[str], ticker: str):
return
stock = finvizfinance(ticker)
stock.TickerCharts()
image_url = stock.TickerCharts(urlonly=True)
img = Image.open(ticker + ".jpg")
img.show()
r = requests.get(image_url, stream=True, headers=headers, timeout=5)
r.raise_for_status()
r.raw.decode_content = True
dataBytesIO = io.BytesIO(r.content)
im = Image.open(dataBytesIO)
fig, ax = plt.subplots(figsize=plot_autoscale(), dpi=PLOT_DPI)
ax.set_axis_off()
fig.subplots_adjust(left=0, right=1, top=1, bottom=0)
if gtff.USE_ION:
plt.ion()
plt.imshow(im)
plt.show()
print("")
except SystemExit:

View File

@@ -2,7 +2,6 @@
__docformat__ = "numpy"
import argparse
import os
from typing import List
from datetime import datetime
import pandas as pd
@@ -61,7 +60,6 @@ class TechnicalAnalysisController:
self.ticker = ticker
self.start = start
self.interval = interval
self.delete_img = False
self.ta_parser = argparse.ArgumentParser(add_help=False, prog="ta")
self.ta_parser.add_argument(
"cmd",
@@ -124,14 +122,6 @@ class TechnicalAnalysisController:
(known_args, other_args) = self.ta_parser.parse_known_args(an_input.split())
# Due to Finviz implementation of Spectrum, we delete the generated spectrum figure
# after saving it and displaying it to the user
if self.delete_img:
# Confirm that file exists
if os.path.isfile(self.ticker + ".jpg"):
os.remove(self.ticker + ".jpg")
self.delete_img = False
return getattr(
self, "call_" + known_args.cmd, lambda: "Command not recognized!"
)(other_args)
@@ -151,7 +141,6 @@ class TechnicalAnalysisController:
def call_view(self, other_args: List[str]):
"""Process view command"""
finviz_view.view(other_args, self.ticker)
self.delete_img = True
def call_summary(self, other_args: List[str]):
"""Process summary command"""