Valuation TableHey folks, I hope you are all doing well!
This is an indicator that you can use to help you to evaluate companies. There are a few things I added to the valuation table that I personally use and I will explain what they are.
I added Joel Greenblatt's ROC% because it takes Earnings before Interest and Taxes to reflect more closely what the company earns from its operations, while including the cost of depreciation/amortization of assets. A high double digit figure often means that the company has a defensible edge versus its competitors (e.g. a strong brand or a unique product). It's good for relative valuation (comparing two companies in the same industry).
I also added Donald Yacktman's forward rate of return. Yacktman defines forward rate of return as the normalized free cash flow yield plus real growth plus inflation . Unlike the Earnings Yield %, the Forward Rate of Return uses the normalized Free Cash Flow of the past seven years, and considers growth. The forward rate of return can be thought of as the return that investors buying the stock today can expect from it in the future. Yacktman’s Forward Rate of Return may or may not be a useful metric. However, it does present new ways to see and think about stocks we may want to buy.
I added a box called "real price" and that is from Peter Lynch's book, "One Up on Wall Street," where he talked about how the real price of the stock is really the current price - Net Cash Per Share.
I would also personally pair this script with TradingView's built in financial indicators that shows the revenue growth, net income, etc.
Note: the script only works on the weekly timeframe and it will take some time to load because it has a lot of data.
Table
Performance Table From OpenThis indicator plots the percentage performance from the open of up to 20 different customizable tickers.
Enjoy!
easytableLibrary "easytable"
Create tables easily, with minimal code
▦ FEATURES ▦
█ Create tables █ JSON To Table █ Change Colors █ Array to Rows/Columns █ Pre-Styles █ Change Text Size █ Delete Rows/Columns █ Blink Cells
indentify_table_id() Identifies all tables ID number in each cell(0,0).
get_table_by_id(id_number) Get table object by ID number.
Parameters:
id_number : (int) ID number of the table to fetch.
Returns: table.
change_cells_color(table_object, cells_color, start_column, end_column, start_row, end_row) Change cells background colors.
Parameters:
table_object : (table) table object to be changed.
cells_color : (color) Cells color.
start_column : (int) Start column.
end_column : (int) End column.
start_row : (int) Start Row.
end_row : (int) End Row to change.
Returns: Void.
change_cells_text_color(table_object, text_color, start_column, end_column, start_row, end_row) Change cells text colors.
Parameters:
table_object : (table) table object to be changed.
text_color : (color) Text color.
start_column : (int) Start column.
end_column : (int) End column.
start_row : (int) Start Row.
end_row : (int) End Row.
Returns: Void.
change_all_table_text_color(table_object, text_color, table_column_size, table_row_size) Change All table text color.
Parameters:
table_object : (table) table object to be changed.
text_color : (color) Text color.
table_column_size : (int) Size of the table columns.
table_row_size : (int) Size of the table rows.
Returns: Void.
change_table_size(table_object, n_of_columns, n_of_rows, tbl_size) Change table size.
Parameters:
table_object : (table) table object to be changed.
n_of_columns : (int) Size of the table columns.
n_of_rows : (int) Size of the table rows.
tbl_size : (string) size of the table.
Returns: Void.
change_cells_text_size(text_size, start_column, end_column, start_row, end_row, table_id) Change table cells text size .
Parameters:
text_size : (string) Text size.
start_column : (int) Start column.
end_column : (int)(optional) End column.
start_row : (int)(optional) Start Row.
end_row : (int)(optional) End Row.
table_id : (int)(optional) Number of the ID of the table.
Returns: Void.
table_delete_row(table_object, table_column_size, start_row, end_row) Delete specified rows from table.
Parameters:
table_object : (table) table object to be changed.
table_column_size : (int) Table columns max size.
start_row : (int) Start row to delete.
end_row : (int)(optional) End row to delete (optional — Assumes start_row value).
Returns: Void.
table_delete_column(table_object, table_row_size, start_column, end_column) Delete specified columns from table.
Parameters:
table_object : (table) table object to be changed.
table_row_size : (int) Table rows max size.
start_column : (int) Start column to delete.
end_column : (int)(optional) End column to delete (optional — Assumes start_column value).
Returns: Void.
array_to_table_column_auto(column_to_insert, array_to_insert, table_id) Insert string array to table column without passing table object.
Parameters:
column_to_insert : (int) Column to be inserted.
array_to_insert : (string array) Start column to delete.
table_id : (int)(optional) Number of the ID of the table.
Returns: Void.
array_to_table_row_auto(row_to_insert, array_to_insert, table_id) Insert string array to table row without passing table object.
Parameters:
row_to_insert : (int) Column to be inserted.
array_to_insert : (string array) Start column to delete.
table_id : (int)(optional) Number of the ID of the table.
Returns: Void.
array_to_table_row(table_object, row_to_insert, array_to_insert) Insert string array to table row by passing table object.
Parameters:
table_object : (table) table object to be changed.
row_to_insert : (int) Row to be inserted.
array_to_insert : (string array) Start column to delete.
Returns: Void.
array_to_table_column(table_object, column_to_insert, array_to_insert) Insert string array to table column by passing table object.
Parameters:
table_object : (table) table object to be changed.
column_to_insert : (int) Column to be inserted.
array_to_insert : (string array) Start column to delete.
Returns: Void.
blink_cell(cell_column, cell_row, c_color, blink_interval_ms, table_id) Changes cell color at set intervals (blink).
Parameters:
cell_column : (int) Cell column position.
cell_row : (int) Cell row position.
c_color : (color) Color to blink.
blink_interval_ms : (int)(opt) Interval in milliseconds.
table_id : (int)(opt) Table ID number.
change_table_style(table_object, number_of_columns, number_of_rows, color) Changes table pre-style by selecting a pre-style number.
Parameters:
table_object : (table) table object to be changed.
number_of_columns : (int) Table column size.
number_of_rows : (int) Table row size.
color : 1 (color) Color of .
Returns: Void.
create_table_clean(n_of_columns, n_of_rows, position) Create a simple(blank) table without any styling.
Parameters:
n_of_columns : (int) Numbers of columns in the table.
n_of_rows : (int) Number of rows in the table.
position : (string) table position.
Returns: table object.
create_table_with_style(n_of_columns, n_of_rows, style_number, position) Create table with a pre-set style.
Parameters:
n_of_columns : (int) Numbers of columns in the table.
n_of_rows : (int) Number of rows in the table.
style_number : (int) Style number.
position : (string) table position.
Returns: table object.
json_to_table(raw_json) Create table based on input raw json string.
Parameters:
raw_json : (int) Raw json string.
Returns: table object.
json_example() Example function that display a table based on a json
example_create_table()
[HELPER] Table Color For Pairing Black And White█ OVERVIEW
This helper intend to simplify which color pair better with black or white color, may help some pine coders.
█ INSPIRATION
This color choice was inspired during plot especially user enable dark color theme.
Color displayed at table and label are based on Indicator name label and Indicator last value label displayed at Scales.
█ FEATURES
Color can be tick to be inverted color.
Display table by changing table position and font size.
Logger Library For Pinescript (Logging and Debugging)Library "LoggerLib"
This is a logging library for Pinescript. It is aimed to help developers testing and debugging scripts with a simple to use logger function.
Pinescript lacks a native logging implementation. This library would be helpful to mitigate this insufficiency.
This library uses table to print outputs into its view. It is simple, customizable and robust.
You can start using it's .log() method just like any other logging method in other languages.
//////////////////
USAGE
//////////////////
-- Recommended: Please Read The Documentation From Source Code Below. It Is Much More Readable There And Will Be Updated Along With Newer Versions. --
Importing the Library
---------------------
import paragjyoti2012/LoggerLib/ as Logger
.init() : Initializes the library and returns the logger pointer. (Later will be used as a function parameter)
.initTable: Initializes the Table View for the Logger and returns the table id. (Later will be used as a function parameter)
parameters:
logger: The logger pointer got from .init()
max_rows_count: Number of Rows to display in the Logger Table (default is 10)
offset: The offset value for the rows (Used for scrolling the view)
position: Position of the Table View
Values could be:
left
right
top-right
(default is left)
size: Font Size of content
Values could be:
small
normal
large
(default is small)
hide_date: Whether to hide the Date/Time column in the Logger (default is false)
returns: Table
example usage of .initTable()
import paragjyoti2012/LoggerLib/1 as Logger
var logger=Logger.init()
var logTable=Logger.initTable(logger, max_rows_count=20, offset=0, position="top-right")
-------------------
LOGGING
-------------------
.log() : Logging Method
params: (string message, |string| logger, table table_id, string type="message")
logger: pass the logger pointer from .init()
table_id: pass the table pointer from .initTable()
message: The message to log
type: Type of the log message
Values could be:
message
warning
error
info
success
(default is message)
returns: void
///////////////////////////////////////
Full Boilerplate For Using In Indicator
///////////////////////////////////////
P.S: Change the | (pipe) character into square brackets while using in script (or copy it from the source code instead)
offset=input.int(0,"Offset",minval=0)
size=input.string("small","Font Size",options=|"normal","small","large"|)
rows=input.int(15,"No Of Rows")
position=input.string("left","Position",options=|"left","right","top-right"|)
hide_date=input.bool(false,"Hide Time")
import paragjyoti2012/LoggerLib/1 as Logger
var logger=Logger.init()
var logTable=Logger.initTable(logger,rows,offset,position,size,hide_date)
rsi=ta.rsi(close,14)
|macd,signal,hist|=ta.macd(close,12,26,9)
if(ta.crossunder(close,34000))
Logger.log("Dropped Below 34000",logger,logTable,"warning")
if(ta.crossunder(close,35000))
Logger.log("Dropped Below 35000",logger,logTable)
if(ta.crossover(close,38000))
Logger.log("Crossed 38000",logger,logTable,"info")
if(ta.crossunder(rsi,20))
Logger.log("RSI Below 20",logger,logTable,"error")
if(ta.crossover(macd,signal))
Logger.log("Macd Crossed Over Signal",logger,logTable)
if(ta.crossover(rsi,80))
Logger.log("RSI Above 80",logger,logTable,"success")
////////////////////////////
// For Scrolling the Table View
////////////////////////////
There is a subtle way of achieving nice scrolling behaviour for the Table view. Open the input properties panel for the table/indicator. Focus on the input field for "Offset", once it's focused, you could use your mouse scroll wheel to increment/decrement the offset values; It will smoothly scroll the Logger Table Rows as well.
/////////////////////
For any assistance using this library or reporting issues, please write in the comment section below.
I will try my best to guide you and update the library. Thanks :)
/////////////////////
ObjectStackLibrary "ObjectStack"
init()
push()
push()
push()
push()
push()
nextIndex()
nextIndex()
nextIndex()
nextIndex()
nextIndex()
delete()
delete()
delete()
delete()
delete()
cleanOldest()
cleanOldest()
cleanOldest()
cleanOldest()
cleanOldest()
[Nic] Intraday Vix LabelsPrints intraday percent change of VIX9D, VVIX, PCC, and any other arbitrary symbol on a table for quick reference.
BTC Futures BasisShows various basis percentages in a table and plots historical basis. Also has an alert function for backwardation events. Useful for tracking bullish/bearish sentiment in BTC futures markets.
*Currently displays March and June futures for the following exchanges: Bitmex, Binance, Deribit, Okex, and FTX
Also displays CME Continuous Next Contract. All of the symbols are customizable.
-----------
Market-wide backwardation usually occurs during a heavy sell-off (such as a liquidation cascade).
**For getting alerts of backwardation events, I recommend creating an alert on the 1 minute chart with the condition "Any alert() function call". Alert level is customizable as well.
-----------
*NOTE!! : Futures contracts expire (obviously), so the contract symbols will need to be updated periodically. I will try to keep them updated going into the future.
**NOTE2!! : The alert() function does not track the CME contract. This is to avoid false triggers.
SPY Sub-Sector Daily Money Flow TableThis calculates the dollar volume per candlestick (2nd row) and cumulative (3rd row) of the entire trading day for each subsector of the SPY.
The 'Total' column is the total of all the subsectors combined. It is calculated separately from SPY volume.
The money flow is calculated with (open+close)/2 which means different timeframes yield different results and won't be especially accurate day-by-day. This is useful to quickly see rotation and possible divergences.
Enjoy!
ATR Table (SMA)ATR table for select time frames.
Using Simple Moving Average (SMA) to get ATR.
MA periods is based on numbers suggested by Saeed Khakestar (Trigger Price Action)
You can change them in code
5m => 12
15m => 16
1H => 24
4H => 42
1D => 30
1W => 52
RSI is calculated the same way
P/L panelThis is not a indicator or strategy.
I thought of having a table showing running profit or loss on chart from a specific price.
I tried to put the same in code and ended up with this code.
This is a table showing the running profit or loss from a manually specified price and quantity.
when you add the code, This table asks us to input the entry price and quantity.
It will calculate the running profit or loss with respect to running price and puts that in the table.
We will have to input two things.
1.) entry price: the price at which a position(long/short) is taken.
2.) Quantity: A +value need to be entered for Long position and -value for short position.
code detects whether its a long position or short position based on the quantity info.
for example if a LONG position is taken at a price 60 of 100 quantity,
then in price we need to enter 60
and in quantity 100 (+ve value)
for SHORT position at a price of 60 of 100 quantity,
in price we need to enter 60
and in quantity -100 (-ve value)
once the table is added to the chart.
Just double click on the table, it will open the settings tab and we can provide new inputs price/quantity/position.
positioning of table is optional and all possible positioning options are provided.
Advise further improvements required if any in this code.
This piece of code can be used along with any indicator.
For which we may need to use valuewhen() additionally.
Try it yourself and ping me if required.
Oversold / OverboughtMy first script. Based on RSI , CCI , RVI, and MFI . You can customize overbought or oversold thresholds for any indicator.
If you have any ideas - welcome.
Disclaimer
This is not financial advice. Trade on your own risk.
Moving Average PanelThis indicator calculates many different moving averages and displays whether they are increasing or decreasing as a panel/table instead of a plot. Rows/columns can be removed from the table as needed in the options menu, there is also a mobile friendly/compact option as well as a location option.
Note: This script is large and may take a few moments to load.
Note: If there is not enough data, will default to bearish/decreasing.
Value Added
This is the most complete and transparent moving average panel/table indicator. Unlike things such as the Technical Ratings, you can see what components are increasing or decreasing.
There may be some advantage in judging if a trend is likely to reverse or not based on the MA's with less lag.
Good for quick screening of charts.
[HELPER] Symbol Info Array Table HelperThis indicator is to show symbol info in table using built-in syminfo name space, coded in latest Pine Script version 5.
Credits to PineCoders and Everget
Features :
- Display table by changing table position, font size and color.
- Show / Hide necessary symbol info.
Gann Angle Table Calculator PlotterThis indicator was build upon based on Gann Angle and Gann Multiplier as refered of The Tunnel Thru The Air Or Looking Back From 1940, written by WD Gann .
Credits to FaizHebat for calculation.
Indicator features :
1. Font size from tiny to huge.
2. Table position.
3. Color for cell table and plot can be input or reversed.
4. Plot can be show or hide and also price can be track.
5. Able show currency and decimal price.
6. Gann table and Calculation table can show or hide.
7. Each Gann point can be hide including plot and calculation.
8. For desktop display only, not for mobile.
Pros :
1. Can be used as single or more indicator. (Chart show 2 same indicator with different setup)
Cons :
1. Price must be input before selecting any Gann Point.
FAQ
1. Credits
WD Gann , The Tunnel Thru The Air Or Looking Back From 1940
FaizHebat
2. Code Usage
Free to use for personal usage.
Positive direction with Currency and Decimal
Positive direction with Currency and Decimal
Price Range TableThe table shows the ranking of the price as a percentage relative to the past candles.
100 ~ highest price of the time frame
0 ~ lowest price of the time frame
PreMarketStatsThe idea is to catch pre market information (or other relevant data), that basically consists of a single number, in a table instead of using a plot that takes up space in the chart. In this example, I added pre market volume and pre market change in %. Where the second one is as well available in the details tab of the stock, it is not available if this tab is closed or during replays.
Position Sizing TableThe Position Sizing Table is a simple, clean table designed to calculate shares per trade based on total capital.
Harmonic Trading Ratios Educational (Source Code)This table indicator was intended as educational purpose only for Harmonic Trading Ratios.
The ratios are used for Harmonic AB=CD and XAB=CD.
Ratio calculation are shown for Retracement and Projection based Primary, Primary Derived, Secondary Derived and Secondary Derived Extreme.
Primary Retracement : 0.618
Primary Projection : 1.618
Please take note that Secondary Derived Extreme is only available for Projection.
Indikator berjadual bertujuan sebagai pendidikan sahaja untuk Harmonic Trading Ratios.
Ratio digunakan untuk Harmonic AB=CD and XAB=CD.
Pengiraan ratio untuk Retracement and Projection adalah berdasarkan Primary, Primary Derived, Secondary Derived dan Secondary Derived Extreme.
Primary Retracement : 0.618
Primary Projection : 1.618
Sila ambil perhatian bahawa Secondary Derived Extreme adalah untuk Projection sahaja.
The values shown in table was based on Harmonic Trading: Volume One, Page 18 written by Scott M Carney.
Nilai yang ditunjukkan dalam jadual adalah berdasarkan buku Harmonic Trading: Volume One, Page 18 ditulis oleh Scott M Carney.
Indicator features :
1. List Harmonic Trading Ratios including calculation.
2. Show and draw individual Harmonic Trading Ratio.
3. For desktop display only, not for mobile.
Kemampuan indikator :
1. Senarai Harmonic Trading Ratios termasuk pengiraan.
2. Memapar dan melukis Harmonic Trading Ratio secara berasingan.
3. Untuk paparan desktop sahaja, bukan untuk mobile.
FAQ
1. Credits / Kredit
Scott M Carney,
Scott M Carney, Harmonic Trading: Volume One
2. Code Usage / Penggunaan Kod
Free to use for personal usage but credits are most welcomed especially for credits to Scott M Carney.
Bebas untuk kegunaan peribadi tetapi kredit adalah amat dialu-alukan terutamanya kredit kepada Scott M Carney.
Display for Bullish / Bearish Retracement
Paparan untuk Bullish / Bearish Retracement
Display for Primary Retracement and Primary Projection
Paparan untuk Primary Retracement and Primary Projection
Display for Secondary Derived Extreme Retracement and Secondary Derived Extreme Projection
Paparan untuk Secondary Derived Extreme Retracement and Secondary Derived Extreme Projection
Simple RSI tableThis is a simple RSI table for traders that don't want the graph, only the current value.
Location, thresholds, and colors are all adjustable.
Multi-Currency & Multi-Timeframe SMA Summary Table
This script displays a summary table of the direction of simple moving averages of all the currencies on all timeframes. The concept was that I wanted a summary page giving me a birds eye view of what is happening in the market. I plan to use it as a common sense check to confirm that I'm not trading against the flow. I'm not planning to use it to blindly enter (ah if only trading was that easy!!!).
The above example is showing the direction of the 100 SMA for 30S, 3min, 15min, 1h, 4h, D for all the currencies. The base currency is adjusted so that the colour coding is adjusted to express the strength of the specific currency. For example in the case of CAD it is showing the directions of SMAs for CADNZD, CADAUD, CADJPY, CADCHF, CADEUR, CADGBP, CADUSD - the base currency is flipped on some pairs so CAD is always the base currency.
An example of what it is showing - look at the 1h column on JPY. All rows are red except for the chf row. This means that the 100SMA is pointing down on all JPY crosses except for JPYCHF (remember, SMA is down assuming JPY is the base currency).
Unfortunately, I could not fit all the script into a single indicator so you have to load an instance of the indicator into the chart for each timeframe you want to see. So the above example has 6 instances of the indicator overlaid - 1 instance for: 30S, 3min, 15min, 1h, 4h and D. Just choose the timeframe and the script will automatically organise the table.
At the bottom (in blue) is a summary score: a score of 7 = the MA is up on that timeframe on all currency crosses; a score of -7 = the MA is down on that timeframe on all currency crosses. So if you look at the example above, the blue row is showing that USD is very strong against all other currencies and the AUD is generally weak against all other currencies (notice the light blue vs the dark blue).
-You can choose the length of the SMA.
-You can chose the 'lookback' period (the bars back the script looks to compare whether the MA is getting higher or lower)
-You can change the colours
-You can adjust the table size to fit your monitor size
I hope its useful - I tried it yesterday and it kept me focused on USD strength (and not get seduced by temporary USD weakness). So it is doing what I designed it to.
Hope its useful. Good luck!
John
Harmonic Pattern Table (Source Code)This table indicator was intended as helper / reference for using XABCD Pattern.
Indikator berjadual bertujuan sebagai bantuan / rujukan untuk kegunaan XABCD Pattern.
The values shown in table was based on Harmonic Trading Volume 3: Reaction vs. Reversal written by Scott M Carney.
Nilai yang ditunjukkan dalam jadual adalah berdasarkan buku Harmonic Trading Volume 3: Reaction vs. Reversal ditulis oleh Scott M Carney.
Indicator features :
1. List Harmonic Patterns.
2. Font size small for mobile app and font size normal for desktop.
Kemampuan indikator :
1. Senarai Harmonic Pattern.
2. Saiz font kecil untuk mobile app dan saiz size normal untuk desktop.
FAQ
1. Credits / Kredit
Scott M Carney,
Scott M Carney, Trading Volume 3: Reaction vs. Reversal
2. Code Usage / Penggunaan Kod
Free to use for personal usage but credits are most welcomed especially for credits to Scott M Carney.
Bebas untuk kegunaan peribadi tetapi kredit adalah amat dialu-alukan terutamanya kredit kepada Scott M Carney.
Default Settings.
Setting asal.
Setting for selected Harmonic Pattern (Example : Bat)
Setting untuk pilihan Harmonic Pattern (Contoh : Bat)
Setting for show Harmonic Pattern only (Example : Bat)
Setting untuk nama Harmonic Pattern sahaja(Contoh : Bat)
MYX Bursa IPO Listing Table (Source Code)This indicator intended for Malaysia Market only for Initial Public Offering (IPO) refer to Bursa Malaysia
Indikator ini adalah untuk pasaran Malaysia sahaja untuk Tawaran Awam Permulaan (IPO) rujuk kepada Bursa Malaysia
Indicator features :
1. List similar symbol or counter based on year including total.
2. Font size small for mobile app and font size normal for desktop.
Kemampuan indikator :
1. Senarai simbol atau kaunter yang terlibat mengiku tahun termasuk jumlah.
2. Saiz font kecil untuk mobile app dan saiz size normal untuk desktop.
FAQ
1. Code Usage / Penggunaan Kod
Free to use for personal usage but credits are most welcomed.
Not for business / commercial usage, any damage or lialibity are not my resposibility.
Bebas untuk kegunaan peribadi tetapi kredit adalah amat dialu-alukan.
Bukan untuk kegunaan perniagaan / komersil, sebarang kerosakan atau liability adalah di luar tanggungjawab saya.
2. Update Frequency / Frekuensi
Anytime after official update by Bursa Malaysia.
Bila-bila masa selepas kemaskini rasmi oleh Bursa Malaysia
3. Symbol/Counter not showing / Simbol/kaunter tiada
Symbol/counter not longer exist or not yet updated.
Simbol/kaunter telah tersenarai keluar atau belum dikemaskini.
4. Why table overlap with chart ? To avoid this, click indicator > Visual Order > Send to Front.
Kenapa table bertindih dengan carta ? Untuk mengatasi ini, klik indikator > Visual Order > Send to Front.
All Setting enabled.
Semua seting diaktifkan.
Small Font setting enabled, suitable for mobile app.
Setting font kecil diaktifkan., sesuai untuk mobile app.
Setting by year.
Setting mengikut tahun.