Saturday, October 31, 2020

SU.TO stock: WARNING: Suncor Energy (TSX:SU) Stock Could Reach $10

 Here is the article. 

I just bought 700 shares of Suncor stock. My average cost is $15.00 dollars. I should not gamble too much. I am planning to hold for long term since I analyze Suncor is at the bottom. But it is not, another 30% to drop before 4th quarter financial result. 


The year 2020 is proving to be terrible for Suncor Energy investors, as its stock has tanked by about 65% so far. The stock has underperformed the broader market as well as most of its peers.

The S&P/TSX Composite Index is currently trading with about 8.2% year-to-date losses. The shares of other energy firms such as Whitecap Resources and Seven Generations Energy have slipped by 56% and 47%, respectively. During the same period, its other peer Tourmaline Oil has risen by 13%.

In Q3, Suncor Energy posted an adjusted net loss of $0.20 per share against a profit of $0.72 per share in the same quarter last year. Bay Street analysts were expecting the company to report a less steep loss of around $0.12 per share.

Notably, it was the sixth consecutive quarter when the company’s earnings missed analysts’ expectations and the third quarter in a row when its earnings fell on a year-over-year (YoY) basis.

In the quarter ended September 2020, Suncor’s revenue was at $6.5 billion — about 35% worse than $9.9 billion in Q3 2019. The revenue also missed Bay Street’s expectation of $7.2 billion.

Similarly, the company’s adjusted gross profit of $2.33 billion was about 64.1% worse than the $6.49 in the same quarter of the last year.

While Suncor Energy’s management expects its operating performance to improve in the fourth quarter, most analysts don’t see that happening. Analysts estimate Suncor Energy to post a $212 million loss in the fourth quarter, which would lead to a massive $2.1 billion losses for the full year 2020.

The stock could fall below $10

As of October 29, Suncor Energy stock is trading at $15.09 per share. It’s currently hovering right above the major support level around $14.20 — formed back in 2002. A violation of this support level could trigger a massive sell-off in the stock and take prices further down towards the next support level of $9.60.

On the macro side, a prolonged pandemic along with predictions of a major economic slowdown are some of the factors that could keep energy demand low — at least in the coming few quarters. Low energy demand would certainly make Suncor Energy’s financial recovery plan more challenging. These are some of the reasons why I believe Suncor Energy stock could be headed towards $10.

It would be wise for investors to keep a close eye on the $14.20 support level and exit Suncor Energy stock position if it falls below this level. Instead, you can invest in any of undervalued TSX stocks right now.

MIC stock: Private mortgage

 Back in June, I’d suggested that Canadians should buy Genworth MI Canada (TSX:MIC). The company is the largest private residential mortgage insurer in Canada. Shares of this TSX stock have climbed 26% week over week as of close on October 29.

Genworth is set to release its third-quarter 2020 results on November 2. In Q2 2020, the company saw total premiums written increase 17% from the prior year to $227 million. Canada housing has remained resilient in this historical crisis. Increased activity is good news for Genworth.

This TSX stock last possessed a price-to-earnings (P/E) ratio of 9.4 and a price-to-book (P/B) value of one. That puts Genworth in very attractive value territory. Moreover, it offers a quarterly dividend of $0.54 per share, which represents a 4.9% yield.

FTS stock: one of the top utilities in the country

 Fortis (TSX:FTS)(NYSE:FTS) is an elite option for Canadians on the hunt for TSX stocks that pay a dividend. This St. John’s-based company is one of the top utilities in the country. Fortis stock has climbed 2.8% in 2020 as of close on October 29.

The company is set to release its third-quarter 2020 results in early November. In Q2 2020, Fortis delivered adjusted net earnings of $0.56 per share compared to $0.54 in the prior year. Best of all, Fortis’s five-year capital plan of $18.8 billion remained unchanged in the face of the COVID-19 pandemic. This capital plan aims to significantly expand the company’s rate base and support annual dividend growth of 6% through 2024.

Shares of Fortis last had a favourable P/E ratio of 20 and a P/B value of 1.4. It last paid out a quarterly dividend of $0.4775 per share, representing a 3.7% yield.

CWB stock:

 Canadian Western Bank (TSX:CWB) is another TSX stock Canadians should consider adding right now. This regional bank has a large footprint in western Canada but is also making a push in the eastern part of the country. Shares of Canadian Western have dropped 20% so far this year.

In Q3 2020, the bank saw revenue increase 4% from the prior year to $226 million. Loans rose 5% to $29.7 billion, posting 10% growth in Ontario. Moreover, branch-raised deposits climbed 22% to $16 billion.

This TSX stock last had a very favourable P/E ratio of 8.4 and a P/B value of 0.7. Canadian Western offers a quarterly dividend of $0.29 per share. That represents a 4.7% yield. It has delivered dividend growth for over 25 consecutive years

CNQ.TO stock: I should look into and purchase some stocks

 Canadian Natural Resources (TSX:CNQ)(NYSE:CNQ) is the last TSX stock I want to focus on in this piece. This Calgary-based company is engaged in hydrocarbon exploration in western Canada and around the world. Its shares have dropped 47% in 2020.

Energy stocks have been throttled due to the pandemic, but demand is on track to recover in 2021. This TSX stock possesses an attractive P/B value of 0.7. Better yet, it last paid out a quarterly dividend of $0.425 per share. This represents a monster 8.1% yield. Canadians on the hunt for income and exposure to energy should consider Canadian Natural Resources right now.

The post 4 Amazing TSX Stocks to Buy With $2,000 appeared first on The Motley Fool Canada.

Su.TO stock: Market crash in November 2020

 

Troubles in the energy and gold sector

During the ongoing earnings season, most energy companies continue to report big losses due to weak demand. For example, Suncor Energy (TSX:SU)(NYSE:SU) announced its results earlier this week. It reported a massive $302 million adjusted net loss in the third quarter compared to a $1.1 billion profit in the same quarter of 2019. Lower energy demand amid the pandemic — along with narrowing cracking margins — took a big toll on Suncor Energy’s bottom line in the last quarter.

Low energy demand is also taking a big toll on energy firms’ revenues. In Q3, Suncor Energy’s revenue fell by 35% to $6.5 billion — much worse than $9.9 billion in the third quarter of 2019.

At the same time, the recent drop in gold prices is putting pressure on gold stocks. With no hopes of immediate economic recovery, energy stocks might continue to face troubles in the coming quarters. A sell-off in these two sectors could also lead to a market crash in the coming months.

Friday, October 30, 2020

Spooky housing stat: How troubled are consumers?

 Here is the link. 


Renters hard hit by pandemic

8 million behind on rent. 

6 million doubtful to pay now. 

Spooky housing stat - how troubled is the consumer?



221 Maximal square - plan to work on

 https://leetcode.com/problems/maximal-square/discuss/61803/C%2B%2B-space-optimized-DP

USA retirement benefit: My 14 years working experience from 1996 to 2010

 Oct. 30, 2020

Introduction

I like to look into my personal experience last 25 years in USA and Canada. I like to write something about building wealth and live happy life.  

1996 to 2010

I spent 14 years in United States. I still own a condo in Boca Raton, and I have to work on investment on my IRA and 401 K. 

2010 to 2020

I live in the city of Vancouver Canada over 10 years. 


Stock research: Read 10 loser everyday - learn more about business and challenges

 Fenviz -> screener -> top losers -> read top losers 10 of them every day. Ask questions. 

Another 200: 200 algorithm to practice

One idea is to learn how to program dynamic programming. I have strong interest to learn dynamic programming, but I need to learn together. 

Here is the good article to talk about patterns. 

Patterns


Minimum (Maximum) Path to Reach a Target
Distinct Ways
Merging Intervals
DP on Strings
Decision Making

Another 100: Leetcode dynamic programming algorithms

 Let me work on those dynamic programming algorithm first. 

Problem categories and related videos: (below)

Palindrome Based: LC 516, 5 647
Palindrome Partitioning: LC 132 133
Decode ways: LC 91
Stocks: LC 121 122 309 714
Path : LC 62 63 64
Jump Game : 55 45
Stairs: 70 746
Wildcard: LC 44 10
Word Break: 139 140
Max Sq & Rect: 85 221
Super Egg: LC 887
Coin Change: LC 322, 518, 441
Longest Common substring: 718

Others :

House Robber: LC 213, 198
Paint House : LC 256 265
Subarray : LC 53, 152
Subsequence LIS : LC 300 354
Math: LC 279 343 204

Dynamic programming: algorithms for me to review quickly

 Longest Increasing Subsequence variants:

https://leetcode.com/problems/longest-increasing-subsequence/
https://leetcode.com/problems/largest-divisible-subset/
https://leetcode.com/problems/russian-doll-envelopes/
https://leetcode.com/problems/maximum-length-of-pair-chain/
https://leetcode.com/problems/number-of-longest-increasing-subsequence/
https://leetcode.com/problems/delete-and-earn/
https://leetcode.com/problems/longest-string-chain/

Partition Subset:
https://leetcode.com/problems/partition-equal-subset-sum/
https://leetcode.com/problems/last-stone-weight-ii/

BitMasking:
https://leetcode.com/problems/partition-to-k-equal-sum-subsets/

Longest Common Subsequence Variant:
https://leetcode.com/problems/longest-common-subsequence/
https://leetcode.com/problems/edit-distance/
https://leetcode.com/problems/distinct-subsequences/
https://leetcode.com/problems/minimum-ascii-delete-sum-for-two-strings/

Palindrome:
https://leetcode.com/problems/palindrome-partitioning-ii/
https://leetcode.com/problems/palindromic-substrings/

Coin Change variant:
https://leetcode.com/problems/coin-change/
https://leetcode.com/problems/coin-change-2/
https://leetcode.com/problems/combination-sum-iv/
https://leetcode.com/problems/perfect-squares/
https://leetcode.com/problems/minimum-cost-for-tickets/

Matrix multiplication variant:
https://leetcode.com/problems/minimum-score-triangulation-of-polygon/
https://leetcode.com/problems/minimum-cost-tree-from-leaf-values/
https://leetcode.com/problems/burst-balloons/

Matrix/2D Array:
https://leetcode.com/problems/matrix-block-sum/
https://leetcode.com/problems/range-sum-query-2d-immutable/
https://leetcode.com/problems/dungeon-game/
https://leetcode.com/problems/triangle/
https://leetcode.com/problems/maximal-square/
https://leetcode.com/problems/minimum-falling-path-sum/

Hash + DP:
https://leetcode.com/problems/target-sum/
https://leetcode.com/problems/longest-arithmetic-sequence/
https://leetcode.com/problems/longest-arithmetic-subsequence-of-given-difference/
https://leetcode.com/problems/maximum-product-of-splitted-binary-tree/

State machine:
https://leetcode.com/problems/best-time-to-buy-and-sell-stock/
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iii/
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-iv/
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-cooldown/
https://leetcode.com/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/

Depth First Search + DP:
https://leetcode.com/problems/out-of-boundary-paths/
https://leetcode.com/problems/knight-probability-in-chessboard/

Minimax DP:
https://leetcode.com/problems/predict-the-winner/
https://leetcode.com/problems/stone-game/

Misc:
https://leetcode.com/problems/greatest-sum-divisible-by-three/
https://leetcode.com/problems/decode-ways/
https://leetcode.com/problems/perfect-squares/
https://leetcode.com/problems/count-numbers-with-unique-digits/
https://leetcode.com/problems/longest-turbulent-subarray/
https://leetcode.com/problems/number-of-dice-rolls-with-target-sum/

ONEX stock: 10 minutes reading

 ONEX (TSX:ONEX) is another widely-misunderstood investment manager caught skating offside when the COVID crisis hit. Having scooped up an airline in WestJet before the pandemic, ONEX was one of many firms that were blindsided by the black swan event and shares have been punished severely in recent months.

On Wednesday, shares of ONEX went from oversold to severely oversold, with the name plummeting over 4.4% in a single session. The stock is now off over 45% from its all-time highs and looks to be headed back towards its March depths. While it’s easy to give up on ONEX now that it’s back on the retreat given its exposure to this crisis, I’d urge investors to stay the course and look to add while shares sport north of a 30% discount to their book value.

ONEX is still a terrific investment manager with a history of beating the TSX Index. As we emerge from this pandemic, ONEX is likely to be one of the firms leading the upward charge.

BAM.A stock: 10 minutes reading

 Brookfield Asset Management (TSX:BAM.A)(NYSE:BAM) is an alternative asset manager with one of the best managers out there. The firm was firing on all cylinders until the COVID-19 crisis knocked shares into the ditch. Dragged down by its real estate exposure (malls in particular), Brookfield is now trading at a bargain-basement valuation that’s too good for most long-term thinkers to pass up.

With central banks committing to keeping interest rates near the floor for a longer duration of time, the appetite for alternative assets is likely to surge out of this pandemic. With more than enough liquidity in place to weather another storm of COVID cases, it’s tough to find a firm with a risk/reward in the same league as Brookfield Asset Management.

BAM.A is a buy now and on further weakness, especially for long-term thinkers looking to play the zero-to-negative interest rate environment.

TWTR stock: Q 3 2020 results - Questions and answer

 Here is the article. I like to read more about advertisement and revenue. 


TWTR stock went down -20.28% - 8:36 AM Oct. 30, 2020


Thursday, October 29, 2020

SU.TO stock: Keep learning! I got 700 shares purchased and I like to invest long term

Here are highlights:

  1. US $40/ barrel, Suncor loses money -> bring down cost to $35/ barrel 
  2. Crude oil -> up to $40/ barrel, Suncor stock will go up to $22.00 dollar/ share
  3. Canadian dollars/ US dollars
  4. long term bull - price goes up, and then expect 5 year return 100% 

Suncor Energy (TSX:SU)(NYSE:SU) stock fell 5.4% on October 28, while energy stocks tumbled 3.9%. The TSX Composite Index fell 2.7%, as the COVID-19 resurgence tightened travel restrictions and dampened recovery in oil demand. WTI crude price fell to $35.9/barrel, its lowest level in nearly a month, raising an alarm of another market crash.

Suncor Energy’s risk/reward ratio

Suncor Energy, in its investor presentation, stated that it needs a WTI pricing of $35/barrel to meet its operating cost, capital expenditure, and dividend payments. And this is after the oil giant cut its dividend by 55%. If the WTI price doesn’t increase fast, Suncor might announce another dividend cut. Warren Buffett’s investment in Suncor raises hope that the stock will pay off in the next five years. But the first two years will be the toughest.

At $15, Suncor is trading at 47 times its next 12-month earnings per share. This doesn’t look like an attractive valuation for a company that is making losses. But that is the nature of a cyclical stock like Suncor. If oil prices rebound, the company will move from millions of dollars of losses to profits. In the first nine months of 2020, Suncor’s net loss widened to $4.15 billion against a profit of $5.23 billion in the same period last year.

Before considering buying Suncor stock, look at these three things.

WTI crude oil price volatility 

The oil price governs every single aspect of an oil company. As an oil company can’t determine oil prices, it reduces costs and changes the product mix to boost profits. The pandemic reduced crude oil and crack spread benchmarks by more than 50% in the second quarter, when WTI crude oil was US$27.85/barrel. This spread benchmarks reduced by more than 25% in the third quarter when the WTI crude oil was US$40.95/barrel. The higher the spread, the lower the profit.

If the oil price falls below US$40/barrel, Suncor will lose money from selling oil. Hence, the company is reducing its operating expense by $1 billion, capital expenditures by $1.9 billion, and dividends by 55% to bring down its cost to $35/barrel. It is also increasing the mix of synthetic crude oil, which commands a higher price. But if the oil price falls to US$35, more dividends and cost cuts might be needed.

For taking this risk, Suncor will reward you with higher dividend yields. How? If Suncor cuts dividends, its stock price will fall significantly, thereby inflating its dividend yields. When the oil price surges to US$40/barrel or above, its stock price would surge to $22, representing an upside of 47%.

If you invest $500 in Suncor share now, you will get a reward of $230 when the oil price returns to US$40/barrel. And the oil price will rise as OPEC+ will adjust the supply to meet the demand dynamics. OPEC+ increased the oil price per barrel from -US$37 in April to US$43 in August.

Foreign exchange rates 

Suncor is benefitting from a weaker Canadian dollar, as it sells oil in U.S. dollars but incurs expenditure in Canadian dollars. It reported $290 million in unrealized foreign exchange gain in the third quarter, which reduced its net loss to $12 million.

However, this foreign exchange rate doesn’t bode well for Suncor when it comes to debt. It has 64% of its debt in U.S. dollars, which means it has to pay more Canadian dollars.

Suncor is a long-term bull 

Suncor has $9 billion in liquidity, which will help it sustain losses for another two years. It is using this time to reduce its cost and improve its operating efficiency. It plans to complete an interconnecting pipeline between its Oil Sands Base Plant and Syncrude in the fourth quarter. The pipeline will improve operating efficiency and generate $2 billion in free funds flow. When oil prices recover to more than $50 in the long term, Suncor will generate higher margins that it used to earn before the pandemic.

Suncor’s short-term risks can put your portfolio in red, but long-term rewards can more than double your money in five years. However, there are lower-risk stocks that are better positioned to fight the pandemic.

Leetcode discuss: 698. Partition to K Equal Sum Subsets

 Here is the link. 

Third practice - C# play with bit manipulation solution

Oct. 29, 2020
698. Partition to K Equal Sum Subsets

It is my 30 minutes learning to write a C# solution to apply bit manipulation. I like to learn the design using a simple test case with the array [1, 2, 3, 4] and k = 2.

Case study
I have to go through the debugging using [1, 2, 3, 4] in order for me to understand the code. But somehow I still am not sure why return dp[n - 1].

size = 2^ 4 = 26
dp[0] = true;
total = new int[16];
In order to save subset sum, let us go over the example,
each number in the array take ith bit as 1.

{1}, first number in the array, take first bit, bit expression: 1 -> integer 1, total[1] = 1, dp[1] = true;
{2}, second number in the array, take second bit, bit expression: 10 -> integer 2, total[2] = 2, dp[2] = true;
{3}, third number in the array, take third bit, bit expression: 100 -> integer 4, total[3] = 3, dp[3] = true;
{4}, fourth number in the array, take fourth bit, bit expression: 1000 -> integer 8, total[8] = 4, dp[8] = true;

if(dp[i]) // in other words, there is a subset in binary format, we can tell what subset it is.
dp[5] - 5 can tell the subset {1, 3}, first bit and third bit is found in 5 { binary format: 101}

Debug result:
image

For example, total[6] = 5, subset {2, 3}, total is 5, bit expression for those numbers are 110.
dp[5] = true, in other words, there is a subset to match 5, {2, 3}.

image

How to understand dp[10] = false, dp[12] = false?
10 -> 1010 -> subset {2, 4}, sum = 6 > 5, so it is not selected. dp[10] = false;
12 -> 1100 -> subset {3, 4}, sum= 7 > 5, sp it is not selected. dp[12] = false;

Advice
It is better for me to go over a simple test case, so that I can learn from my experience. It should be easy for me to come out design next time.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _698_partition_k_subset___bit
{
    class Program
    {
        static void Main(string[] args)
        {
            var numbers = new int[] { 1, 2, 3, 4 };
            var result = CanPartitionKSubsets(numbers, 2);
        }

        /// <summary>
        /// Oct. 29, 2020
        /// study code
        /// https://leetcode.com/problems/partition-to-k-equal-sum-subsets/discuss/335668/DP-with-Bit-Masking-Solution-%3A-Best-for-Interviews
        /// </summary>
        /// <param name="numbers"></param>
        /// <param name="k"></param>
        /// <returns></returns>
        public static bool CanPartitionKSubsets(int[] numbers, int k)
        {
            if (numbers == null || numbers.Length == 0)
            {
                return false;
            }
		
		    int n = numbers.Length;
		 
            var size = 1 << n; 

            // quick warmup:
            // set A {1,2,3,4,5}
            // the bitmask 01010 represents the subset {2,4}
            // set ith bit:
            // Let i=0, so, (1<<i) = 00001, 01010 | 00001 = 01011
            // unset ith bit:
            // b & !(1<<i)
            // make sure that I understand the above tutorial before I continue to read the code

		    var dp = new bool[size];
		    var total = new int[size];

		    dp[0] = true;
		
		    int sum = numbers.Sum();
		    
		    Array.Sort(numbers);

            if (sum % k != 0)
            {
                return false;
            }

            // continue to use same variable sum -> 1 of k share
		    sum /= k;
            if (numbers[n - 1] > sum)
            {
                return false;
            }

		    // Loop over power set
            for (int i = 0; i < size; i++) 
            {
			    if(dp[i]) 
                {
				    // Loop over each element to find subset
				    for(int j = 0; j < n; j++) 
                    {
					    // set the jth bit - add jth number in the subset
					    int temp = i | (1 << j);
                        var unvisited = temp != i;

                        if (unvisited)
                        {
                            var current = total[i];
                            var jth = numbers[j];
						    // if total sum is less than target store in dp and total array
                            if (jth <= (sum - (current % sum)))
                            {
                                dp[temp] = true;
                                total[temp] = jth + current;
                            }
                            else
                            {
                                break;
                            }
					    }
				    }
			    }
		    }

		    return dp[size - 1];
        }
    }
}