mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-11-09 02:42:36 +00:00
Merge pull request #470 from GamestonkTerminal/minor-fixes
Fix Screener View and Improve TA Finviz View
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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]
|
||||
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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"""
|
||||
|
||||
Reference in New Issue
Block a user