danjoh
Member
Also i do not see the weighted score you mention above. Do I need to turn something on?This indicator displays fundamental data of a stock, including financial info such as Free Cash Flow, Profit Margin, etc., on your chart.
An overall weighted Score is calculated to gauge the overall financial health
Hello @MerryDay, bit of a silly question, but are there a certain set or number of labels turned green that you look for before digging further to determine if a trade is applicable?Use on a Daily Chart. Useful for anyone interested in fundamental stock research.
![]()
Ruby:#Fundamental Data Labels _Mobius 4/26/20 (found on OneNote) # # @MerryDay revised 4/21: # my interpretation of positive/negative values; should be modified to meet your strategy # then calculated an overall weighted score based on: # https://tradestation.tradingappstore.com/products/FundamentalScore/document/Fundamental_Score.pdf # and other information found on the web declare lower; declare hide_on_intraday; input show_labels = yes ; input show_summaries = no ; DefineGlobalColor("Pre_Cyan", CreateColor(50, 200, 255)) ; DefineGlobalColor("LabelGreen", CreateColor(0, 165, 0)) ; DefineGlobalColor("LabelRed", CreateColor(225, 0, 0)) ; DefineGlobalColor("Violet", CreateColor (200, 125, 255)) ; DefineGlobalColor("GrayGreen", CreateColor(155, 167, 76)) ; DefineGlobalColor("LitePink", CreateColor (220, 180, 180)) ; DefineGlobalColor("neutral", color.light_gray) ; def fp = FiscalPeriod.YEAR; def EPS = EarningsPerShareTTM(fiscalPeriod = fp); def PE = round(close / EPS,1); AddLabel(show_labels and PE, "P/E ratio = " + Round(PE, 2), if PE < 0 then GlobalColor("LitePink") else if PE < 20 then GlobalColor("LabelGreen") else if PE < 40 then GlobalColor("GrayGreen") else GlobalColor("Pre_Cyan")); def EarnPerShare = if IsNaN(EarningsPerShareTTM()) then EarnPerShare[1] else EarningsPerShareTTM(); AddLabel(show_labels and EarnPerShare, "EPS-TTM = " + AsDollars(EarnPerShare), if EarnPerShare > 0 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def FreeCashFlowPerSh = if isNaN(FreeCashFlowPerShare()) then FreeCashFlowPerSh[1] else FreeCashFlowPerShare(); AddLabel(show_labels and FreeCashFlowPerSh, "Free Cash Flow Per Share = " + AsDollars(FreeCashFlowPerSh), if FreeCashFlowPerSh > 0 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def score_EarnCash = if PE <0 and FreeCashFlowPerSh < 0 and EarnPerShare < 0 then 0 else 5; def Gross_Profit_Margin = if IsNaN(GrossProfitMargin()) then Gross_Profit_Margin[1] else GrossProfitMargin(); AddLabel(show_labels and Gross_Profit_Margin, "Gross Profit Margin = " + Round(Gross_Profit_Margin, 2), if Gross_Profit_Margin > 0 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def Operating_Profit_Margin = if IsNaN(OperatingProfitMargin()) then Operating_Profit_Margin[1] else OperatingProfitMargin(); AddLabel(show_labels and Operating_Profit_Margin, "Operating Profit Margin = " + Round(Operating_Profit_Margin, 2), if Operating_Profit_Margin > 0 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def Net_Profit_Margin = if IsNaN(NetProfitMargin()) then Net_Profit_Margin[1] else NetProfitMargin(); AddLabel(show_labels and Net_Profit_Margin, "Net Profit Margin = " + Round(Net_Profit_Margin, 2), if Net_Profit_Margin > 0 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def score_Profits = if Gross_Profit_Margin>0 or Net_Profit_Margin>0 or Operating_Profit_Margin > 0 then 3 else 0 ; def CurRatio = if IsNaN(CurrentRatio()) then CurRatio[1] else CurrentRatio(); AddLabel(show_labels and CurRatio, "Current Ratio = " + Round(CurRatio, 2), if CurRatio > 2 then GlobalColor("GrayGreen") else if CurRatio >= 1 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def Quick_Ratio = if IsNaN(QuickRatio()) then Quick_Ratio[1] else QuickRatio(); AddLabel(show_labels and Quick_Ratio, "Quick Ratio = " + Round(Quick_Ratio, 2), if Quick_Ratio > 2 then GlobalColor("GrayGreen") else if Quick_Ratio >= 1 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def score_Ratios = if Quick_Ratio >= 1 or CurRatio >= 1 then 3 else 0; def Return_On_Assets = if IsNaN(ReturnOnAssets()) then Return_On_Assets[1] else ReturnOnAssets(); AddLabel(show_labels and Return_On_Assets, "Return On Assets = " + Round(Return_On_Assets), if Return_On_Assets >= 15 then GlobalColor("Pre_Cyan") else if Return_On_Assets >= 10 then GlobalColor("LabelGreen") else if Return_On_Assets > 0 then GlobalColor("GrayGreen") else GlobalColor("LitePink")); def Return_On_Equity = if IsNaN(ReturnOnEquity()) then Return_On_Equity[1] else ReturnOnEquity(); AddLabel(show_labels and Return_On_Equity, "Return On Equity = " + Round(Return_On_Equity), if Return_On_Equity >= 15 then GlobalColor("Pre_Cyan") else if Return_On_Equity >= 10 then GlobalColor("LabelGreen") else if Return_On_Equity > 0 then GlobalColor("GrayGreen") else GlobalColor("LitePink")); def score_Returns = if Return_On_Equity >= 10 or Return_On_Assets >=10 then 1 else 0 ; def Sales_Per_Share = if IsNaN(SalesPerShare()) then Sales_Per_Share[1] else SalesPerShare(); AddLabel(show_labels and Sales_Per_Share, "Sales Per Share = " + Round(Sales_Per_Share, 2), if Sales_Per_Share > 0 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def score_Sales_Per_Share = if Sales_Per_Share > 0 then 1 else 0; def FixChgCovRatio = if IsNaN(FixedChargeCoverageRatio()) then FixChgCovRatio[1] else FixedChargeCoverageRatio(); AddLabel(show_labels and FixChgCovRatio, "Fixed Charge Coverage Ratio = " + Round(FixChgCovRatio, 2), if FixChgCovRatio >= 1 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def Total_Asset_Turnover = if IsNaN(TotalAssetTurnover()) then Total_Asset_Turnover[1] else TotalAssetTurnover(); AddLabel(show_labels and Total_Asset_Turnover, "Total Asset Turnover = " + Round(Total_Asset_Turnover, 2), if Total_Asset_Turnover > 1 then GlobalColor("LabelGreen") else GlobalColor("neutral")); def FinLev = if IsNaN(FinancialLeverage()) then FinLev[1] else FinancialLeverage(); AddLabel(show_labels and FinLev, "Financial Leverage = " + Round(FinLev, 2), if FinLev > 0 and FinLev < 2 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def score_FinLev = if FinLev < 2 then 1 else 0; def BookValue = if IsNaN(BookValuePerShare()) then BookValue[1] else BookValuePerShare(); AddLabel(show_labels and BookValue, "Book Value Per Share = " + Round(BookValue), if BookValue < 2 then GlobalColor("Pre_Cyan") else if BookValue < 3 then GlobalColor("LabelGreen") else GlobalColor("neutral")); def Long_Term_Debt_To_Capital = if IsNaN(LongTermDebtToCapital()) then Long_Term_Debt_To_Capital[1] else LongTermDebtToCapital(); AddLabel(show_labels and Long_Term_Debt_To_Capital, "Long Term Debt To Capital = " + Round(Long_Term_Debt_To_Capital, 2), if Long_Term_Debt_To_Capital < 5 then GlobalColor("LabelGreen") else GlobalColor("LitePink")); def score_Long_Term_Debt_To_Capital = if Long_Term_Debt_To_Capital < 5 then 1 else 0; def Inventory_Turnover = if IsNaN(InventoryTurnover()) then Inventory_Turnover[1] else InventoryTurnover(); AddLabel(show_labels and Inventory_Turnover, "Inventory Turnover = " + Round(Inventory_Turnover, 2), if Inventory_Turnover < 5 then GlobalColor("LitePink") else if Inventory_Turnover < 10 then GlobalColor("Pre_Cyan") else if Inventory_Turnover < 15 then GlobalColor("GrayGreen") else GlobalColor("LitePink")); def DivPayout = if IsNaN(DividendPayout()) then DivPayout[1] else DividendPayout(); AddLabel(show_labels and DivPayout, "Dividend Payout = " + round(DivPayout,2) + "%", GlobalColor("neutral")); def DivPerShare = if IsNaN(DividendsPerShareTTM()) then DivPerShare[1] else DividendsPerShareTTM(); AddLabel(show_labels and DivPerShare, "Dividend Per Share = " + AsDollars(DivPerShare), GlobalColor("neutral")); def DivYield = if IsNaN(DividendsPerShareTTM()) then DivPerShare[1] else DividendsPerShareTTM()/Close; AddLabel(show_labels and DivPerShare, "Dividend Yield = " + AsPercent(DivYield), GlobalColor("neutral")); def Interest_Rate = if IsNaN(InterestRate()) then Interest_Rate[1] else InterestRate(); AddLabel(show_labels and Interest_Rate, "Interest Rate = " + Round(Interest_Rate, 2), GlobalColor("neutral")); def Tax_Rate = if IsNaN(TaxRate()) then Tax_Rate[1] else TaxRate(); AddLabel(show_labels and Tax_Rate, "Tax Rate = " + Round(Tax_Rate, 2), GlobalColor("neutral")); plot score = score_Returns + score_EarnCash + score_ratios + score_Profits + score_FinLev + score_Sales_Per_Share + score_Long_Term_Debt_To_Capital; AddLabel(show_summaries, "SCORE: " + score, if score >= 12 then GlobalColor("Pre_Cyan") else if score >= 10 then GlobalColor("LabelGreen") else if score >= 8 then GlobalColor("GrayGreen") else GlobalColor("LitePink")); score.hide();
* may have answerd my own questions, if I delete last line will I see the score? "score.hide();"
Last edited: