Top 20 Binary Options Trading Blogs & Websites in 2020

Blog for newbies about binary options trading

submitted by boauk to optionstrading [link] [comments]

I'm reading every Hugo, Nebula, Locus, and World Fantasy Award winner. Here's my reviews of the up to 1980 (Vol 4)

It is that time once more, folks.
Links to previous posts at the end, links to full length blog reviews are all in one comment.
Man Plus by Frederik Pohl
Where Late the Sweet Birds Sang by Kate Wilhelm
Doctor Rat by William Kotzwinkle
Gateway by Frederik Pohl
The Silmarillion by J. R. R. Tolkien
Our Lady of Darkness by Fritz Leiber
Dreamsnake by Vonda N. McIntyre
Gloriana, or The Unfulfill'd Queen by Michael Moorcock
The Fountains of Paradise by Arthur C. Clarke
The Riddle-Master Trilogy by Patricia A. McKillip
Watchtower by Elizabeth A. Lynn
Titan by John Varley
If you haven’t seen the others:
Any questions or comments? Fire away!
A truly massive thank you to u/gremdel for mailing me a bunch of books! People like you are what make this endeavor worth the effort.
I’ve been using this spreadsheet, as well as a couple others that kind Redditors have sent. So a huge thanks to u/velzerat and u/BaltSHOWPLACE
At the request of a number of you, I’ve written up extended reviews of everything and made a blog for them. I’ve included the links with the posts for individual books. I try to put up new reviews as fast as I read them. Take a look in the comments for that link!
The Bechdel Test is a simple question: do two named female characters converse about something other than a man. Whether or not a book passes is not a condemnation so much as an observation; it provides an easy binary marker. Seems like a good way to see how writing has evolved over the years. At the suggestion of some folks, I’m loosening it to non-male identified characters to better capture some of the ways that science fiction tackles sex and gender. For a better explanation of why it’s useful, check out this comment from u/Gemmabeta
submitted by RabidFoxz to books [link] [comments]

An introduction to Linux through Windows Subsystem for Linux

I'm working as an Undergraduate Learning Assistant and wrote this guide to help out students who were in the same boat I was in when I first took my university's intro to computer science course. It provides an overview of how to get started using Linux, guides you through setting up Windows Subsystem for Linux to run smoothly on Windows 10, and provides a very basic introduction to Linux. Students seemed to dig it, so I figured it'd help some people in here as well. I've never posted here before, so apologies if I'm unknowingly violating subreddit rules.

An introduction to Linux through Windows Subsystem for Linux

GitHub Pages link

Introduction and motivation

tl;dr skip to next section
So you're thinking of installing a Linux distribution, and are unsure where to start. Or you're an unfortunate soul using Windows 10 in CPSC 201. Either way, this guide is for you. In this section I'll give a very basic intro to some of options you've got at your disposal, and explain why I chose Windows Subsystem for Linux among them. All of these have plenty of documentation online so Google if in doubt.

Setting up WSL

So if you've read this far I've convinced you to use WSL. Let's get started with setting it up. The very basics are outlined in Microsoft's guide here, I'll be covering what they talk about and diving into some other stuff.

1. Installing WSL

Press the Windows key (henceforth Winkey) and type in PowerShell. Right-click the icon and select run as administrator. Next, paste in this command:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart 
Now you'll want to perform a hard shutdown on your computer. This can become unecessarily complicated because of Window's fast startup feature, but here we go. First try pressing the Winkey, clicking on the power icon, and selecting Shut Down while holding down the shift key. Let go of the shift key and the mouse, and let it shutdown. Great! Now open up Command Prompt and type in
wsl --help 
If you get a large text output, WSL has been successfully enabled on your machine. If nothing happens, your computer failed at performing a hard shutdown, in which case you can try the age-old technique of just holding down your computer's power button until the computer turns itself off. Make sure you don't have any unsaved documents open when you do this.

2. Installing Ubuntu

Great! Now that you've got WSL installed, let's download a Linux distro. Press the Winkey and type in Microsoft Store. Now use the store's search icon and type in Ubuntu. Ubuntu is a Debian-based Linux distribution, and seems to have the best integration with WSL, so that's what we'll be going for. If you want to be quirky, here are some other options. Once you type in Ubuntu three options should pop up: Ubuntu, Ubuntu 20.04 LTS, and Ubuntu 18.04 LTS.
![Windows Store](https://theshepord.github.io/intro-to-WSL/docs/images/winstore.png) Installing plain-old "Ubuntu" will mean the app updates whenever a new major Ubuntu distribution is released. The current version (as of 09/02/2020) is Ubuntu 20.04.1 LTS. The other two are older distributions of Ubuntu. For most use-cases, i.e. unless you're running some software that will break when upgrading, you'll want to pick the regular Ubuntu option. That's what I did.
Once that's done installing, again hit Winkey and open up Ubuntu. A console window should open up, asking you to wait a minute or two for files to de-compress and be stored on your PC. All future launches should take less than a second. It'll then prompt you to create a username and password. I'd recommend sticking to whatever your Windows username and password is so that you don't have to juggle around two different usepassword combinations, but up to you.
Finally, to upgrade all your packages, type in
sudo apt-get update 
And then
sudo apt-get upgrade 
apt-get is the Ubuntu package manager, this is what you'll be using to install additional programs on WSL.

3. Making things nice and crispy: an introduction to UNIX-based filesystems

tl;dr skip to the next section
The two above steps are technically all you need for running WSL on your system. However, you may notice that whenever you open up the Ubuntu app your current folder seems to be completely random. If you type in pwd (for Print Working Directory, 'directory' is synonymous with 'folder') inside Ubuntu and hit enter, you'll likely get some output akin to /home/. Where is this folder? Is it my home folder? Type in ls (for LiSt) to see what files are in this folder. Probably you won't get any output, because surprise surprise this folder is not your Windows home folder and is in fact empty (okay it's actually not empty, which we'll see in a bit. If you type in ls -a, a for All, you'll see other files but notice they have a period in front of them. This is a convention for specifying files that should be hidden by default, and ls, as well as most other commands, will honor this convention. Anyways).
So where is my Windows home folder? Is WSL completely separate from Windows? Nope! This is Windows Subsystem for Linux after all. Notice how, when you typed pwd earlier, the address you got was /home/. Notice that forward-slash right before home. That forward-slash indicates the root directory (not to be confused with the /root directory), which is the directory at the top of the directory hierarchy and contains all other directories in your system. So if we type ls /, you'll see what are the top-most directories in your system. Okay, great. They have a bunch of seemingly random names. Except, shocker, they aren't random. I've provided a quick run-down in Appendix A.
For now, though, we'll focus on /mnt, which stands for mount. This is where your C drive, which contains all your Windows stuff, is mounted. So if you type ls /mnt/c, you'll begin to notice some familiar folders. Type in ls /mnt/c/Users, and voilà, there's your Windows home folder. Remember this filepath, /mnt/c/Users/. When we open up Ubuntu, we don't want it tossing us in this random /home/ directory, we want our Windows home folder. Let's change that!

4. Changing your default home folder

Type in sudo vim /etc/passwd. You'll likely be prompted for your Ubuntu's password. sudo is a command that gives you root privileges in bash (akin to Windows's right-click then selecting 'Run as administrator'). vim is a command-line text-editing tool, which out-of-the-box functions kind of like a crummy Notepad (you can customize it infinitely though, and some people have insane vim setups. Appendix B has more info). /etc/passwd is a plaintext file that historically was used to store passwords back when encryption wasn't a big deal, but now instead stores essential user info used every time you open up WSL.
Anyway, once you've typed that in, your shell should look something like this: ![vim /etc/passwd](https://theshepord.github.io/intro-to-WSL/docs/images/vim-etc-passwd.png)
Using arrow-keys, find the entry that begins with your Ubuntu username. It should be towards the bottom of the file. In my case, the line looks like
theshep:x:1000:1000:,,,:/home/pizzatron3000:/bin/bash 
See that cringy, crummy /home/pizzatron3000? Not only do I regret that username to this day, it's also not where we want our home directory. Let's change that! Press i to initiate vim's -- INSERT -- mode. Use arrow-keys to navigate to that section, and delete /home/ by holding down backspace. Remember that filepath I asked you to remember? /mnt/c/Users/. Type that in. For me, the line now looks like
theshep:x:1000:1000:,,,:/mnt/c/Users/lucas:/bin/bash 
Next, press esc to exit insert mode, then type in the following:
:wq 
The : tells vim you're inputting a command, w means write, and q means quit. If you've screwed up any of the above sections, you can also type in :q! to exit vim without saving the file. Just remember to exit insert mode by pressing esc before inputting commands, else you'll instead be writing to the file.
Great! If you now open up a new terminal and type in pwd, you should be in your Window's home folder! However, things seem to be lacking their usual color...

5. Importing your configuration files into the new home directory

Your home folder contains all your Ubuntu and bash configuration files. However, since we just changed the home folder to your Window's home folder, we've lost these configuration files. Let's bring them back! These configuration files are hidden inside /home/, and they all start with a . in front of the filename. So let's copy them over into your new home directory! Type in the following:
cp -r /home//. ~ 
cp stands for CoPy, -r stands for recursive (i.e. descend into directories), the . at the end is cp-specific syntax that lets it copy anything, including hidden files, and the ~ is a quick way of writing your home directory's filepath (which would be /mnt/c/Users/) without having to type all that in again. Once you've run this, all your configuration files should now be present in your new home directory. Configuration files like .bashrc, .profile, and .bash_profile essentially provide commands that are run whenever you open a new shell. So now, if you open a new shell, everything should be working normally. Amazing. We're done!

6. Tips & tricks

Here are two handy commands you can add to your .profile file. Run vim ~/.profile, then, type these in at the top of the .profile file, one per line, using the commands we discussed previously (i to enter insert mode, esc to exit insert mode, :wq to save and quit).
alias rm='rm -i' makes it so that the rm command will always ask for confirmation when you're deleting a file. rm, for ReMove, is like a Windows delete except literally permanent and you will lose that data for good, so it's nice to have this extra safeguard. You can type rm -f to bypass. Linux can be super powerful, but with great power comes great responsibility. NEVER NEVER NEVER type in rm -rf /, this is saying 'delete literally everything and don't ask for confirmation', your computer will die. Newer versions of rm fail when you type this in, but don't push your luck. You've been warned. Be careful.
export DISPLAY=:0 if you install XLaunch VcXsrv, this line allows you to open graphical interfaces through Ubuntu. The export sets the environment variable DISPLAY, and the :0 tells Ubuntu that it should use the localhost display.

Appendix A: brief intro to top-level UNIX directories

tl;dr only mess with /mnt, /home, and maybe maybe /usr. Don't touch anything else.
  • bin: binaries, contains Ubuntu binary (aka executable) files that are used in bash. Here you'll find the binaries that execute commands like ls and pwd. Similar to /usbin, but bin gets loaded earlier in the booting process so it contains the most important commands.
  • boot: contains information for operating system booting. Empty in WSL, because WSL isn't an operating system.
  • dev: devices, provides files that allow Ubuntu to communicate with I/O devices. One useful file here is /dev/null, which is basically an information black hole that automatically deletes any data you pass it.
  • etc: no idea why it's called etc, but it contains system-wide configuration files
  • home: equivalent to Window's C:/Users folder, contains home folders for the different users. In an Ubuntu system, under /home/ you'd find the Documents folder, Downloads folder, etc.
  • lib: libraries used by the system
  • lib64 64-bit libraries used by the system
  • mnt: mount, where your drives are located
  • opt: third-party applications that (usually) don't have any dependencies outside the scope of their own package
  • proc: process information, contains runtime information about your system (e.g. memory, mounted devices, hardware configurations, etc)
  • run: directory for programs to store runtime information.
  • srv: server folder, holds data to be served in protocols like ftp, www, cvs, and others
  • sys: system, provides information about different I/O devices to the Linux Kernel. If dev files allows you to access I/O devices, sys files tells you information about these devices.
  • tmp: temporary, these are system runtime files that are (in most Linux distros) cleared out after every reboot. It's also sort of deprecated for security reasons, and programs will generally prefer to use run.
  • usr: contains additional UNIX commands, header files for compiling C programs, among other things. Kind of like bin but for less important programs. Most of everything you install using apt-get ends up here.
  • var: variable, contains variable data such as logs, databases, e-mail etc, but that persist across different boots.
Also keep in mind that all of this is just convention. No Linux distribution needs to follow this file structure, and in fact almost all will deviate from what I just described. Hell, you could make your own Linux fork where /mnt/c information is stored in tmp.

Appendix B: random resources

EDIT: implemented various changes suggested in the comments. Thanks all!
submitted by HeavenBuilder to linux4noobs [link] [comments]

Wall Street Week Ahead for the trading week beginning August 17th, 2020

Good Saturday morning to all of you here on stocks. I hope everyone on this sub made out pretty nicely in the market this past week, and is ready for the new trading week ahead.
Here is everything you need to know to get you ready for the trading week beginning August 17th, 2020.

Stocks are ignoring the lack of a stimulus package from Congress, but that could change - (Source)

Stocks could hang at record levels but gains may be capped until Congress agrees to a new stimulus package to help the economy and the millions of unemployed Americans.
Stocks were higher in the past week, and the S&P 500 flirted with record levels it set in February.
In the coming week, there are some major retailers reporting earnings, including Walmart, Home Depot and Target, but the season is mostly over and the market is entering a quiet period. There are minutes from the Fed’s last meeting, released Wednesday, and housing data, including starts Tuesday and existing sales Friday.
Investors had been watching efforts by Congress to agree to a new stimulus package, but talks have failed and the Senate has gone on recess. There is a concern that Congress will not be convinced to provide a big enough package when it does get to work again on the next stimulus round because recent economic reports look stronger. July’s retail sales, for example, climbed to a record level and recovered to pre-pandemic levels.
“The juxtaposition of getting more fiscal stimulus and better data has paralyzed us in our tracks … we’ve seen this sideways [market] action,” said Art Hogan, chief market strategist at National Alliance. “It feels like we need more action from Congress, and the concern is the longer we wait, the better the data gets and the less impactful the next round of stimulus will be.”
Some technical analysts say the market may pull back around the high, to allow it to consolidate gains before moving higher into the end of the year. The S&P 500 reached an all-time high of 3,393 on Feb. 19.
Hogan said he expects stocks to tread sideways during the dog days of August, but they could begin to react negatively to the election in September. He also said it is important that progress continue against the spread of Covid-19, as the economy continues to reopen.
Peter Boockvar, chief investment strategist at Bleakley Advisory Group, said the market could have a wakeup call at some point that the stimulus package has not been approved.
“I think it will cross over a line where they care,” he said. “I think the market is in suspended animation of believing there will be a magical deal.” Boockvar said he expects a deal ultimately, but the impact is not likely to be as big as the last round of funding.
“What they’re not grasping is any deal, any extension of unemployment benefits, is going to be smaller than it was, and the rate of change should be the most important thing investors focus on,” he said. “Not the binary outcome of whether there’s a deal or no deal. There’s going to be less air going into the balloon.”

It’s the economy

Still, economists expect to see a strong rebound in the third quarter, and are anticipating about about a 20% jump in third-quarter growth. But they also say that could be threatened if Congress does not help with another stimulus package.
Mark Zandi, chief economist at Moody’s Analytics, described the July retail sales as a perfect V-shaped recovery, but cautioned it would not last unless more aid gets to individuals and cities and states. Democrats have sought a $3 trillion spending package, and Republicans in the Senate offered a $1 trillion package. They could not reach a compromise, including on a $600 weekly payment to individuals on unemployment which expired July 31.
President Donald Trump has tried to fill the gap with executive orders to provide extra benefits to those on unemployment, but the $300 federal payment and $100 from states may take some time to reach individuals, as the processing varies by state. He has also issued an order instructing the Treasury to temporarily defer collection of payroll taxes from individuals making up to $104,000.
“I think in August and September, there will be a lot of Ws, if there’s not more help here,” said Zandi, referring to an economic recovery that retrenches from a V shape before heading higher again. “It’s clearly perplexing. It may take the stock market to say we’re not going to get what we expect, and sell off and light a fire.”
Zandi said it could come to a situation like 2008, where the stock market sold off sharply before Congress would agree to a program that helped financial companies.
“We need a TARP moment to get these guys to help. Maybe if the claims tick higher and the August employment numbers are soft, given the president is focused on the stock market, that might be what it takes to get them back to the table in earnest,” he said, referring to the Troubled Asset Relief Program that helped rescue banks during the financial crisis.
He ultimately expects a package of about $1.5 trillion to be approved in September.
The lack of funding for state and local governments could result in more layoffs, as they struggle with their current 2021 budgets, Zandi said. Already 1.3 million public sector jobs have been lost since February, and there will be more layoffs and more programs and projects cancelled. The impact will hit contractors and other businesses that provide services to local governments.
“The multipliers on state and local government are among the highest of any form of support, so if you don’t provide it, it’s going to ripple through the economy pretty fast,” he said.
Economists expect to see a softening in consumer spending in August with the more than 28 million Americans on unemployment benefits as of mid-July no longer receiving any supplemental pay.
“The real irony is things are shaping up that September is going to be a bad month, and that’s going to show up in all the data in October,” Zandi said. “They are really taking a chance on this election by not acting.”

This past week saw the following moves in the S&P:

(CLICK HERE FOR THE FULL S&P TREE MAP FOR THE PAST WEEK!)

Major Indices for this past week:

(CLICK HERE FOR THE MAJOR INDICES FOR THE PAST WEEK!)

Major Futures Markets as of Friday's close:

(CLICK HERE FOR THE MAJOR FUTURES INDICES AS OF FRIDAY!)

Economic Calendar for the Week Ahead:

(CLICK HERE FOR THE FULL ECONOMIC CALENDAR FOR THE WEEK AHEAD!)

Percentage Changes for the Major Indices, WTD, MTD, QTD, YTD as of Friday's close:

(CLICK HERE FOR THE CHART!)

S&P Sectors for the Past Week:

(CLICK HERE FOR THE CHART!)

Major Indices Pullback/Correction Levels as of Friday's close:

(CLICK HERE FOR THE CHART!

Major Indices Rally Levels as of Friday's close:

(CLICK HERE FOR THE CHART!)

Most Anticipated Earnings Releases for this week:

(CLICK HERE FOR THE CHART!)

Here are the upcoming IPO's for this week:

(CLICK HERE FOR THE CHART!)

Friday's Stock Analyst Upgrades & Downgrades:

(CLICK HERE FOR THE CHART LINK #1!)
(CLICK HERE FOR THE CHART LINK #2!)

4 Charts That Will Amaze You

The S&P 500 Index is a few points away from a new all-time high, completing one of the fastest recoveries from a bear market ever. But this will also seal the deal on the shortest bear market ever. Remember, the S&P 500 Index lost 20% from an all-time high in only 16 trading days back in February and March, so it makes sense that this recovery could be one of the fastest ever.
From the lows on March 23, the S&P 500 has now added more than 50%. Many have been calling this a bear market rally for months, while we have been in the camp this is something more. It’s easy to see why this rally is different based on where it stands versus other bear market rallies:
(CLICK HERE FOR THE CHART!)
They say the stock market is the only place where things go on sale, yet everyone runs out of the store screaming. We absolutely saw that back in March and now with stocks near new highs, many have missed this record run. Here we show how stocks have been usually higher a year or two after corrections.
(CLICK HERE FOR THE CHART!)
After a historic drop in March, the S&P 500 has closed higher in April, May, June, and July. This rare event has happened only 11 other times, with stocks gaining the final five months of the year a very impressive 10 times. Only 2018 and the nearly 20% collapse in December saw a loss those final five months.
(CLICK HERE FOR THE CHART!)
As shown in the LPL Chart of the Day, this bear market will go down as the fastest ever, at just over one month. The recovery back to new highs will be five months if we get there by August 23, making this one of the fastest recoveries ever. Not surprisingly, it usually takes longer for bear markets in a recession to recover; only adding to the impressiveness of this rally.
(CLICK HERE FOR THE CHART!)
“It normally takes 30 months for bear markets during a recession to recover their losses, which makes this recovery all the more amazing,” said LPL Financial Chief Market Strateigst Ryan Detrick.. “Then again, there has been nothing normal about this recession, so maybe we shouldn’t be shocked about yet another record going down in 2020.”

When a Few Basis Points Packs a Punch

US Treasury yields have been on the rise this week with the 10-year yield rising 13 basis points (bps) from 0.56% up to 0.69% after getting as high as 0.72% on Thursday. A 13 bps move higher in interest rates may not seem like a whole lot, but with rates already at such low levels, a small move can have a pretty big impact on the prices of longer-term maturities.
(CLICK HERE FOR THE CHART!)
Starting with longer-term US Treasuries, TLT, which measures the performance of maturities greater than 20 years, has declined 3.5% this week. Now, for a growth stock, 3.5% is par for the course, but that kind of move in the Treasury market is no small thing. The latest pullback for TLT also coincides with another failed attempt by the ETF to trade and stay above $170 for more than a day.
(CLICK HERE FOR THE CHART!)
The further out the maturity window you go in the fixed income market, the bigger the impact of the move higher in interest rates. The Republic of Austria issued a 100-year bond in 2017, and its movements exemplify the wild moves that small changes in interest rates (from a low base) can have on prices. Just this week, the Austrian 100-year was down over 5%, which is a painful move no matter what type of asset class you are talking about. This week's move, though, was nothing compared to the stomach-churning swings from earlier this year. When Covid was first hitting the fan, the 100-year rallied 57% in the span of less than two months. That kind of move usually occurs over years rather than days, but in less than a third of that time, all those gains disintegrated in a two-and-a-half week span from early to late March. Easy come, easy go. Ironically enough, despite all the big up and down moves in this bond over the last year, as we type this, the bond's price is the same now as it was on this same day last year.
(CLICK HERE FOR THE CHART!)

Retail Sales Rock to New Highs

At the headline level, July’s Retail Sales report disappointed as the reading missed expectations by nearly a full percentage point. Just as soon as the report was released, we saw a number of stories pounce on the disappointment as a sign that the economy was losing steam. Looked at in more detail, though, the July report wasn’t all that bad. While the headline reading rose less than expected (1.2% vs 2.1%), Ex Autos and Ex Autos and Gas, the results were much better than expected. Not only that, but June’s original readings were all revised higher by around a full percentage point.
Besides the fact that this month’s report was better underneath the surface and June’s reading was revised higher, it was also notable as the seasonally-adjusted annualized rate of sales in July hit a new record high. After the last record high back in January, only five months passed until American consumers were back to their pre-Covid spending ways. For the sake of comparison, back during the Financial Crisis, 40 months passed between the original high in Retail Sales in November 2007 and the next record high in April 2011. 5 months versus 40? Never underestimate the power of the US consumer!
(CLICK HERE FOR THE CHART!)
While the monthly pace of retail sales is back at all-time highs, the characteristics behind the total level of sales have changed markedly in the post COVID world. In our just released B.I.G. Tips report we looked at these changing dynamics to highlight the groups that have been the biggest winners and losers from the shifts.

100 Days of Gains

Today marked 100 trading days since the Nasdaq 100's March 20th COVID Crash closing low. Below is a chart showing the rolling 100-trading day percentage change of the Nasdaq 100 since 1985. The 59.8% gain over the last 100 trading days ranks as the 3rd strongest run on record. The only two stronger 100-day rallies ended in January 1999 and March 2000.
(CLICK HERE FOR THE CHART!)
While the Nasdaq 100 bottomed on Friday, March 20th, the S&P 500 bottomed the following Monday (3/23). This means tomorrow will mark 100 trading days since the S&P 500's COVID Crash closing low. Right now the rolling 100-day percentage change for the S&P 500 sits at +46.7%. But if the S&P manages to trade at current levels tomorrow, the 100-day gain will jump above 50%. It has been 87 years (1933) since we've seen a 100-day gain of more than 50%!
(CLICK HERE FOR THE CHART!)

B.I.G. Tips - New Highs In Sight

Whether you want to look at it from the perspective of closing prices or intraday levels, the S&P 500 is doing what just about everybody thought would be impossible less than five months ago - approaching record highs. Relative to its closing high of 3,386.15, the S&P 500 is just 0.27% lower, while it's within half of a percent from its record intraday high of 3,393.52. Through today, the S&P 500 has gone 120 trading days without a record high, and as shown in the chart below, the current streak is barely even visible when viewed in the perspective of all streaks since 1928. Even if we zoom in on just the last five years, the current streak of 120 trading days only ranks as the fourth-longest streak without a new high.
While the S&P 500's 120-trading day streak without a new high isn't extreme by historical standards, the turnaround off the lows has been extraordinary. In the S&P 500's history, there have been ten prior declines of at least 20% from a record closing high. Of those ten prior periods, the shortest gap between the original record high and the next one was 309 trading days, and the shortest gap between highs that had a pullback of at least 30% was 484 tradings days (or more than four times the current gap of 120 trading days). For all ten streaks without a record high, the median drought was 680 trading days.
(CLICK HERE FOR THE CHART!)
Whenever the S&P 500 does take out its 2/19 high, the question is whether the new high represents a breakout where the S&P 500 keeps rallying into evergreen territory, or does it run out of gas after finally reaching a new milestone? To shed some light on this question, we looked at the S&P 500's performance following each prior streak of similar duration without a new high.

STOCK MARKET VIDEO: Stock Market Analysis Video for Week Ending August 14th, 2020

([CLICK HERE FOR THE YOUTUBE VIDEO!]())
(VIDEO NOT YET POSTED!)

STOCK MARKET VIDEO: ShadowTrader Video Weekly 8.16.20

([CLICK HERE FOR THE YOUTUBE VIDEO!]())
(VIDEO NOT YET POSTED!)
Here are the most notable companies (tickers) reporting earnings in this upcoming trading week ahead-
  • NOTABLE TICKERS REMOVED DUE TO STOCKS AUTO MOD
(CLICK HERE FOR NEXT WEEK'S MOST NOTABLE EARNINGS RELEASES!)
(CLICK HERE FOR NEXT WEEK'S HIGHEST VOLATILITY EARNINGS RELEASES!)
Below are some of the notable companies coming out with earnings releases this upcoming trading week ahead which includes the date/time of release & consensus estimates courtesy of Earnings Whispers:

Monday 8.17.20 Before Market Open:

(CLICK HERE FOR MONDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Monday 8.17.20 After Market Close:

(CLICK HERE FOR MONDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!)

Tuesday 8.18.20 Before Market Open:

(CLICK HERE FOR TUESDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Tuesday 8.18.20 After Market Close:

(CLICK HERE FOR TUESDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!)

Wednesday 8.19.20 Before Market Open:

(CLICK HERE FOR WEDNESDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Wednesday 8.19.20 After Market Close:

(CLICK HERE FOR WEDNESDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!)

Thursday 8.20.20 Before Market Open:

(CLICK HERE FOR THURSDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Thursday 8.20.20 After Market Close:

(CLICK HERE FOR THURSDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!)

Friday 8.21.20 Before Market Open:

(CLICK HERE FOR FRIDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Friday 8.21.20 After Market Close:

([CLICK HERE FOR FRIDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!]())
(NONE)

Walmart Inc. $132.60

Walmart Inc. (WMT) is confirmed to report earnings at approximately 7:00 AM ET on Tuesday, August 18, 2020. The consensus earnings estimate is $1.20 per share on revenue of $134.28 billion and the Earnings Whisper ® number is $1.29 per share. Investor sentiment going into the company's earnings release has 81% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 5.51% with revenue increasing by 2.99%. Short interest has decreased by 12.5% since the company's last earnings release while the stock has drifted higher by 0.6% from its open following the earnings release to be 9.9% above its 200 day moving average of $120.64. Overall earnings estimates have been revised higher since the company's last earnings release. On Tuesday, August 11, 2020 there was some notable buying of 12,381 contracts of the $135.00 put expiring on Friday, August 21, 2020. Option traders are pricing in a 4.9% move on earnings and the stock has averaged a 2.3% move in recent quarters.

(CLICK HERE FOR THE CHART!)

NVIDIA Corp. $462.56

NVIDIA Corp. (NVDA) is confirmed to report earnings at approximately 4:20 PM ET on Wednesday, August 19, 2020. The consensus earnings estimate is $1.95 per share on revenue of $3.65 billion and the Earnings Whisper ® number is $2.01 per share. Investor sentiment going into the company's earnings release has 84% expecting an earnings beat The company's guidance was for earnings of $1.83 to $2.06 per share. Consensus estimates are for year-over-year earnings growth of 65.25% with revenue increasing by 41.53%. The stock has drifted higher by 31.0% from its open following the earnings release to be 57.7% above its 200 day moving average of $293.24. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, August 14, 2020 there was some notable buying of 3,787 contracts of the $460.00 call expiring on Friday, August 21, 2020. Option traders are pricing in a 7.7% move on earnings and the stock has averaged a 4.0% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Alibaba Group Holding Ltd. $253.97

Alibaba Group Holding Ltd. (BABA) is confirmed to report earnings at approximately 7:10 AM ET on Thursday, August 20, 2020. The consensus earnings estimate is $1.99 per share on revenue of $21.13 billion and the Earnings Whisper ® number is $2.11 per share. Investor sentiment going into the company's earnings release has 83% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 8.74% with revenue increasing by 26.22%. Short interest has increased by 30.1% since the company's last earnings release while the stock has drifted higher by 25.0% from its open following the earnings release to be 20.0% above its 200 day moving average of $211.59. Overall earnings estimates have been revised lower since the company's last earnings release. On Friday, August 7, 2020 there was some notable buying of 12,935 contracts of the $300.00 call expiring on Friday, November 20, 2020. Option traders are pricing in a 6.2% move on earnings and the stock has averaged a 3.1% move in recent quarters.

(CLICK HERE FOR THE CHART!)

JD.com, Inc. $62.06

JD.com, Inc. (JD) is confirmed to report earnings at approximately 5:50 AM ET on Monday, August 17, 2020. The consensus earnings estimate is $0.38 per share on revenue of $26.98 billion and the Earnings Whisper ® number is $0.46 per share. Investor sentiment going into the company's earnings release has 78% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 52.00% with revenue increasing by 23.25%. Short interest has increased by 16.7% since the company's last earnings release while the stock has drifted higher by 24.1% from its open following the earnings release to be 36.9% above its 200 day moving average of $45.34. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, August 14, 2020 there was some notable buying of 12,799 contracts of the $62.00 call expiring on Friday, August 21, 2020. Option traders are pricing in a 8.0% move on earnings and the stock has averaged a 6.4% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Home Depot, Inc. $280.55

Home Depot, Inc. (HD) is confirmed to report earnings at approximately 6:00 AM ET on Tuesday, August 18, 2020. The consensus earnings estimate is $3.71 per share on revenue of $31.67 billion and the Earnings Whisper ® number is $3.75 per share. Investor sentiment going into the company's earnings release has 78% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 17.03% with revenue increasing by 2.69%. Short interest has decreased by 39.8% since the company's last earnings release while the stock has drifted higher by 16.7% from its open following the earnings release to be 22.4% above its 200 day moving average of $229.20. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, August 14, 2020 there was some notable buying of 3,323 contracts of the $300.00 call expiring on Friday, August 28, 2020. Option traders are pricing in a 4.2% move on earnings and the stock has averaged a 2.5% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Lowe's Companies, Inc. $154.34

Lowe's Companies, Inc. (LOW) is confirmed to report earnings at approximately 6:00 AM ET on Wednesday, August 19, 2020. The consensus earnings estimate is $2.93 per share on revenue of $21.29 billion and the Earnings Whisper ® number is $2.97 per share. Investor sentiment going into the company's earnings release has 78% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 36.28% with revenue increasing by 1.42%. Short interest has decreased by 19.2% since the company's last earnings release while the stock has drifted higher by 25.9% from its open following the earnings release to be 31.2% above its 200 day moving average of $117.67. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, August 7, 2020 there was some notable buying of 1,994 contracts of the $170.00 call expiring on Friday, August 21, 2020. Option traders are pricing in a 6.0% move on earnings and the stock has averaged a 5.8% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Target Corp. $136.53

Target Corp. (TGT) is confirmed to report earnings at approximately 6:30 AM ET on Wednesday, August 19, 2020. The consensus earnings estimate is $1.56 per share on revenue of $19.30 billion and the Earnings Whisper ® number is $1.64 per share. Investor sentiment going into the company's earnings release has 75% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 14.29% with revenue increasing by 4.77%. Short interest has decreased by 36.8% since the company's last earnings release while the stock has drifted higher by 10.0% from its open following the earnings release to be 18.0% above its 200 day moving average of $115.73. Overall earnings estimates have been revised higher since the company's last earnings release. On Monday, August 10, 2020 there was some notable buying of 4,479 contracts of the $135.00 call expiring on Friday, September 18, 2020. Option traders are pricing in a 6.3% move on earnings and the stock has averaged a 7.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Sea Limited $126.50

Sea Limited (SE) is confirmed to report earnings at approximately 6:30 AM ET on Tuesday, August 18, 2020. The consensus estimate is for a loss of $0.47 per share on revenue of $1.03 billion and the Earnings Whisper ® number is ($0.36) per share. Investor sentiment going into the company's earnings release has 74% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 34.29% with revenue increasing by 136.16%. Short interest has decreased by 8.5% since the company's last earnings release while the stock has drifted higher by 91.7% from its open following the earnings release to be 98.1% above its 200 day moving average of $63.87. Overall earnings estimates have been revised lower since the company's last earnings release. On Tuesday, August 4, 2020 there was some notable buying of 4,000 contracts of the $110.00 put expiring on Friday, January 15, 2021. Option traders are pricing in a 12.9% move on earnings and the stock has averaged a 16.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Niu Technologies $20.82

Niu Technologies (NIU) is confirmed to report earnings at approximately 3:00 AM ET on Monday, August 17, 2020. The consensus earnings estimate is $0.07 per share on revenue of $88.07 million and the Earnings Whisper ® number is $0.11 per share. Investor sentiment going into the company's earnings release has 57% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 30.00% with revenue increasing by 13.97%. Short interest has increased by 18.9% since the company's last earnings release while the stock has drifted higher by 129.8% from its open following the earnings release to be 90.3% above its 200 day moving average of $10.94. Overall earnings estimates have been revised higher since the company's last earnings release. The stock has averaged a 3.7% move on earnings in recent quarters.

(CLICK HERE FOR THE CHART!)

BJ's Wholesale Club, Inc. $41.48

BJ's Wholesale Club, Inc. (BJ) is confirmed to report earnings at approximately 6:45 AM ET on Thursday, August 20, 2020. The consensus earnings estimate is $0.57 per share on revenue of $3.64 billion and the Earnings Whisper ® number is $0.60 per share. Investor sentiment going into the company's earnings release has 73% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 46.15% with revenue increasing by 8.79%. Short interest has decreased by 3.2% since the company's last earnings release while the stock has drifted higher by 33.8% from its open following the earnings release to be 46.7% above its 200 day moving average of $28.27. Overall earnings estimates have been revised higher since the company's last earnings release. On Wednesday, August 12, 2020 there was some notable buying of 2,119 contracts of the $50.00 call expiring on Friday, September 18, 2020. Option traders are pricing in a 12.4% move on earnings and the stock has averaged a 10.0% move in recent quarters.

(CLICK HERE FOR THE CHART!)

DISCUSS!

What are you all watching for in this upcoming trading week?
I hope you all have a wonderful weekend and a great trading week ahead stocks.
submitted by bigbear0083 to stocks [link] [comments]

Beginner's critiques of Rust

Hey all. I've been a Java/C#/Python dev for a number of years. I noticed Rust topping the StackOverflow most loved language list earlier this year, and I've been hearing good things about Rust's memory model and "free" concurrency for awhile. When it recently came time to rewrite one of my projects as a small webservice, it seemed like the perfect time to learn Rust.
I've been at this for about a month and so far I'm not understanding the love at all. I haven't spent this much time fighting a language in awhile. I'll keep the frustration to myself, but I do have a number of critiques I wouldn't mind discussing. Perhaps my perspective as a beginner will be helpful to someone. Hopefully someone else has faced some of the same issues and can explain why the language is still worthwhile.
Fwiw - I'm going to make a lot of comparisons to the languages I'm comfortable with. I'm not attempting to make a value comparison of the languages themselves, but simply comparing workflows I like with workflows I find frustrating or counterintuitive.
Docs
When I have a question about a language feature in C# or Python, I go look at the official language documentation. Python in particular does a really nice job of breaking down what a class is designed to do and how to do it. Rust's standard docs are little more than Javadocs with extremely minimal examples. There are more examples in the Rust Book, but these too are super simplified. Anything more significant requires research on third-party sites like StackOverflow, and Rust is too new to have a lot of content there yet.
It took me a week and a half of fighting the borrow checker to realize that HashMap.get_mut() was not the correct way to get and modify a map entry whose value was a non-primitive object. Nothing in the official docs suggested this, and I was actually on the verge of quitting the language over this until someone linked Tour of Rust, which did have a useful map example, in a Reddit comment. (If any other poor soul stumbles across this - you need HashMap.entry().or_insert(), and you modify the resulting entry in place using *my_entry.value = whatever. The borrow checker doesn't allow getting the entry, modifying it, and putting it back in the map.)
Pit of Success/Failure
C# has the concept of a pit of success: the most natural thing to do should be the correct thing to do. It should be easy to succeed and hard to fail.
Rust takes the opposite approach: every natural thing to do is a landmine. Option.unwrap() can and will terminate my program. String.len() sets me up for a crash when I try to do character processing because what I actually want is String.chars.count(). HashMap.get_mut() is only viable if I know ahead of time that the entry I want is already in the map, because HashMap.get_mut().unwrap_or() is a snake pit and simply calling get_mut() is apparently enough for the borrow checker to think the map is mutated, so reinserting the map entry afterward causes a borrow error. If-else statements aren't idiomatic. Neither is return.
Language philosophy
Python has the saying "we're all adults here." Nothing is truly private and devs are expected to be competent enough to know what they should and shouldn't modify. It's possible to monkey patch (overwrite) pretty much anything, including standard functions. The sky's the limit.
C# has visibility modifiers and the concept of sealing classes to prevent further extension or modification. You can get away with a lot of stuff using inheritance or even extension methods to tack on functionality to existing classes, but if the original dev wanted something to be private, it's (almost) guaranteed to be. (Reflection is still a thing, it's just understood to be dangerous territory a la Python's monkey patching.) This is pretty much "we're all professionals here"; I'm trusted to do my job but I'm not trusted with the keys to the nukes.
Rust doesn't let me so much as reference a variable twice in the same method. This is the functional equivalent of being put in a straitjacket because I can't be trusted to not hurt myself. It also means I can't do anything.
The borrow checker
This thing is legendary. I don't understand how it's smart enough to theoretically track data usage across threads, yet dumb enough to complain about variables which are only modified inside a single method. Worse still, it likes to complain about variables which aren't even modified.
Here's a fun example. I do the same assignment twice (in a real-world context, there are operations that don't matter in between.) This is apparently illegal unless Rust can move the value on the right-hand side of the assignment, even though the second assignment is technically a no-op.
//let Demo be any struct that doesn't implement Copy. let mut demo_object: Option = None; let demo_object_2: Demo = Demo::new(1, 2, 3); demo_object = Some(demo_object_2); demo_object = Some(demo_object_2); 
Querying an Option's inner value via .unwrap and querying it again via .is_none is also illegal, because .unwrap seems to move the value even if no mutations take place and the variable is immutable:
let demo_collection: Vec = Vec::::new(); let demo_object: Option = None; for collection_item in demo_collection { if demo_object.is_none() { } if collection_item.value1 > demo_object.unwrap().value1 { } } 
And of course, the HashMap example I mentioned earlier, in which calling get_mut apparently counts as mutating the map, regardless of whether the map contains the key being queried or not:
let mut demo_collection: HashMap = HashMap::::new(); demo_collection.insert(1, Demo::new(1, 2, 3)); let mut demo_entry = demo_collection.get_mut(&57); let mut demo_value: &mut Demo; //we can't call .get_mut.unwrap_or, because we can't construct the default //value in-place. We'd have to return a reference to the newly constructed //default value, which would become invalid immediately. Instead we get to //do things the long way. let mut default_value: Demo = Demo::new(2, 4, 6); if demo_entry.is_some() { demo_value = demo_entry.unwrap(); } else { demo_value = &mut default_value; } demo_collection.insert(1, *demo_value); 
None of this code is especially remarkable or dangerous, but the borrow checker seems absolutely determined to save me from myself. In a lot of cases, I end up writing code which is a lot more verbose than the equivalent Python or C# just trying to work around the borrow checker.
This is rather tongue-in-cheek, because I understand the borrow checker is integral to what makes Rust tick, but I think I'd enjoy this language a lot more without it.
Exceptions
I can't emphasize this one enough, because it's terrifying. The language flat up encourages terminating the program in the event of some unexpected error happening, forcing me to predict every possible execution path ahead of time. There is no forgiveness in the form of try-catch. The best I get is Option or Result, and nobody is required to use them. This puts me at the mercy of every single crate developer for every single crate I'm forced to use. If even one of them decides a specific input should cause a panic, I have to sit and watch my program crash.
Something like this came up in a Python program I was working on a few days ago - a web-facing third-party library didn't handle a web-related exception and it bubbled up to my program. I just added another except clause to the try-except I already had wrapped around that library call and that took care of the issue. In Rust, I'd have to find a whole new crate because I have no ability to stop this one from crashing everything around it.
Pushing stuff outside the standard library
Rust deliberately maintains a small standard library. The devs are concerned about the commitment of adding things that "must remain as-is until the end of time."
This basically forces me into a world where I have to get 50 billion crates with different design philosophies and different ways of doing things to play nicely with each other. It forces me into a world where any one of those crates can and will be abandoned at a moment's notice; I'll probably have to find replacements for everything every few years. And it puts me at the mercy of whoever developed those crates, who has the language's blessing to terminate my program if they feel like it.
Making more stuff standard would guarantee a consistent design philosophy, provide stronger assurance that things won't panic every three lines, and mean that yes, I can use that language feature as long as the language itself is around (assuming said feature doesn't get deprecated, but even then I'd have enough notice to find something else.)
Testing is painful
Tests are definitively second class citizens in Rust. Unit tests are expected to sit in the same file as the production code they're testing. What?
There's no way to tag tests to run groups of tests later; tests can be run singly, using a wildcard match on the test function name, or can be ignored entirely using [ignore]. That's it.
Language style
This one's subjective. I expect to take some flak for this and that's okay.
submitted by crab1122334 to rust [link] [comments]

Ethereum on ARM. New Eth2.0 Raspberry Pi 4 image for joining the Medalla multi-client testnet. Step-by-step guide for installing and activating a validator (Prysm, Teku, Lighthouse and Nimbus clients included)

TL;DR: Flash your Raspberry Pi 4, plug in an ethernet cable, connect the SSD disk and power up the device to join the Eth2.0 medalla testnet.
The image takes care of all the necessary steps to join the Eth2.0 Medalla multi-client testnet [1], from setting up the environment and formatting the SSD disk to installing, managing and running the Eth1.0 and Eth2.0 clients.
You will only need to choose an Eth2.0 client, start the beacon chain service and activate / run the validator.
Note: this is an update for our previous Raspberry Pi 4 Eth2 image [2] so some of the instructions are directly taken from there.

MAIN FEATURES

SOFTWARE INCLUDED

INSTALLATION GUIDE AND USAGE

RECOMMENDED HARDWARE AND SETUP
STORAGE
You will need an SSD to run the Ethereum clients (without an SSD drive there’s absolutely no chance of syncing the Ethereum blockchain). There are 2 options:
Use an USB portable SSD disk such as the Samsung T5 Portable SSD.
Use an USB 3.0 External Hard Drive Case with a SSD Disk. In our case we used a Inateck 2.5 Hard Drive Enclosure FE2011. Make sure to buy a case with an UASP compliant chip, particularly, one of these: JMicron (JMS567 or JMS578) or ASMedia (ASM1153E).
In both cases, avoid getting low quality SSD disks as it is a key component of your node and it can drastically affect the performance (and sync times). Keep in mind that you need to plug the disk to an USB 3.0 port (in blue).
IMAGE DOWNLOAD AND INSTALLATION
1.- Download the image:
http://www.ethraspbian.com/downloads/ubuntu-20.04.1-preinstalled-server-arm64+raspi-eth2-medalla.img.zip
SHA256 149cb9b020d1c49fcf75c00449c74c6f38364df1700534b5e87f970080597d87
2.- Flash the image
Insert the microSD in your Desktop / Laptop and download the file.
Note: If you are not comfortable with command line or if you are running Windows, you can use Etcher [10]
Open a terminal and check your MicroSD device name running:
sudo fdisk -l
You should see a device named mmcblk0 or sdd. Unzip and flash the image:
unzip ubuntu-20.04.1-preinstalled-server-arm64+raspi-eth2-medalla.img.zip
sudo dd bs=1M if=ubuntu-20.04.1-preinstalled-server-arm64+raspi.img of=/dev/mmcblk0 conv=fdatasync status=progress
3.- Insert de MicroSD into the Raspberry Pi 4. Connect an Ethernet cable and attach the USB SSD disk (make sure you are using a blue port).
4.- Power on the device
The Ubuntu OS will boot up in less than one minute but you will need to wait approximately 7-8 minutes in order to allow the script to perform the necessary tasks to install the Medalla setup (it will reboot again)
5.- Log in
You can log in through SSH or using the console (if you have a monitor and keyboard attached)
User: ethereum Password: ethereum 
You will be prompted to change the password on first login, so you will need to log in twice.
6.- Forward 30303 port in your router (both UDP and TCP). If you don’t know how to do this, google “port forwarding” followed by your router model. You will need to open additional ports as well depending on the Eth2.0 client you’ve chosen.
7.- Getting console output
You can see what’s happening in the background by typing:
sudo tail -f /valog/syslog
8.- Grafana Dashboards
There are 5 Grafana dashboards available to monitor the Medalla node (see section “Grafana Dashboards” below).

The Medalla Eth2.0 multi-client testnet

Medalla is the official Eth2.0 multi-client testnet according to the latest official specification for Eth2.0, the v0.12.2 [11] release (which is aimed to be the final) [12].
In order to run a Medalla Eth 2.0 node you will need 3 components:
The image takes care of the Eth1.0 setup. So, once flashed (and after a first reboot), Geth (Eth1.0 client) starts to sync the Goerli testnet.
Follow these steps to enable your Eth2.0 Ethereum node:
CREATE THE VALIDATOR KEYS AND MAKE THE DEPOSIT
We need to get 32 Goerli ETH (fake ETH) ir order to make the deposit in the Eth2.0 contract and run the validator. The easiest way of getting ETH is by joining Prysm Discord's channel.
Open Metamask [14], select the Goerli Network (top of the window) and copy your ETH Address. Go to:
https://discord.com/invite/YMVYzv6
And open the “request-goerli-eth” channel (on the left)
Type:
!send $YOUR_ETH_ADDRESS (replace it with the one copied on Metamask)
You will receive enough ETH to run 1 validator.
Now it is time to create your validator keys and the deposit information. For your convenience we’ve packaged the official Eth2 launchpad tool [4]. Go to the EF Eth2.0 launchpad site:
https://medalla.launchpad.ethereum.org/
And click “Get started”
Read and accept all warnings. In the next screen, select 1 validator and go to your Raspberry Pi console. Under the ethereum account run:
cd && deposit --num_validators 1 --chain medalla
Choose your mnemonic language and type a password for keeping your keys safe. Write down your mnemonic password, press any key and type it again as requested.
Now you have 2 Json files under the validator_keys directory. A deposit data file for sending the 32 ETH along with your validator public key to the Eth1 chain (goerli testnet) and a keystore file with your validator keys.
Back to the Launchpad website, check "I am keeping my keys safe and have written down my mnemonic phrase" and click "Continue".
It is time to send the 32 ETH deposit to the Eth1 chain. You need the deposit file (located in your Raspberry Pi). You can, either copy and paste the file content and save it as a new file in your desktop or copy the file from the Raspberry to your desktop through SSH.
1.- Copy and paste: Connected through SSH to your Raspberry Pi, type:
cat validator_keys/deposit_data-$FILE-ID.json (replace $FILE-ID with yours)
Copy the content (the text in square brackets), go back to your desktop, paste it into your favourite editor and save it as a json file.
Or
2.- Ssh: From your desktop, copy the file:
scp [email protected]$YOUR_RASPBERRYPI_IP:/home/ethereum/validator_keys/deposit_data-$FILE_ID.json /tmp
Replace the variables with your data. This will copy the file to your desktop /tmp directory.
Upload the deposit file
Now, back to the Launchpad website, upload the deposit_data file and select Metamask, click continue and check all warnings. Continue and click “Initiate the Transaction”. Confirm the transaction in Metamask and wait for the confirmation (a notification will pop up shortly).
The Beacon Chain (which is connected to the Eth1 chain) will detect this deposit (that includes the validator public key) and the Validator will be enabled.
Congrats!, you just started your validator activation process.
CHOOSE AN ETH2.0 CLIENT
Time to choose your Eth2.0 client. We encourage you to run Lighthouse, Teku or Nimbus as Prysm is the most used client by far and diversity is key to achieve a resilient and healthy Eth2.0 network.
Once you have decided which client to run (as said, try to run one with low network usage), you need to set up the clients and start both, the beacon chain and the validator.
These are the instructions for enabling each client (Remember, choose just one Eth2.0 client out of 4):
LIGHTHOUSE ETH2.0 CLIENT
1.- Port forwarding
You need to open the 9000 port in your router (both UDP and TCP)
2.- Start the beacon chain
Under the ethereum account, run:
sudo systemctl enable lighthouse-beacon
sudo systemctl start lighthouse-beacon
3.- Start de validator
We need to import the validator keys. Run under the ethereum account:
lighthouse account validator import --directory=/home/ethereum/validator_keys
Then, type your previously defined password and run:
sudo systemctl enable lighthouse-validator
sudo systemctl start lighthouse-validator
The Lighthouse beacon chain and validator are now enabled

PRYSM ETH2.0 CLIENT
1.- Port forwarding
You need to open the 13000 and 12000 ports in your router (both UDP and TCP)
2.- Start the beacon chain
Under the ethereum account, run:
sudo systemctl enable prysm-beacon
sudo systemctl start prysm-beacon
3.- Start de validator
We need to import the validator keys. Run under the ethereum account:
validator accounts-v2 import --keys-dir=/home/ethereum/validator_keys
Accept the default wallet path and enter a password for your wallet. Now enter the password previously defined.
Lastly, set up your password and start the client:
echo "$YOUR_PASSWORD" > /home/ethereum/validator_keys/prysm-password.txt
sudo systemctl enable prysm-validator
sudo systemctl start prysm-validator
The Prysm beacon chain and the validator are now enabled.

TEKU ETH2.0 CLIENT
1.- Port forwarding
You need to open the 9151 port (both UDP and TCP)
2.- Start the Beacon Chain and the Validator
Under the Ethereum account, check the name of your keystore file:
ls /home/ethereum/validator_keys/keystore*
Set the keystore file name in the teku config file (replace the $KEYSTORE_FILE variable with the file listed above)
sudo sed -i 's/changeme/$KEYSTORE_FILE/' /etc/ethereum/teku.conf
Set the password previously entered:
echo "yourpassword" > validator_keys/teku-password.txt
Start the beacon chain and the validator:
sudo systemctl enable teku
sudo systemctl start teku
The Teku beacon chain and validator are now enabled.

NIMBUS ETH2.0 CLIENT
1.- Port forwarding
You need to open the 19000 port (both UDP and TCP)
2.- Start the Beacon Chain and the Validator
We need to import the validator keys. Run under the ethereum account:
beacon_node deposits import /home/ethereum/validator_keys --data-dir=/home/ethereum/.nimbus --log-file=/home/ethereum/.nimbus/nimbus.log
Enter the password previously defined and run:
sudo systemctl enable nimbus
sudo systemctl start nimbus
The Nimbus beacon chain and validator are now enabled.

WHAT's NEXT
Now you need to wait for the Eth1 blockchain and the beacon chain to get synced. In a few hours the validator will get enabled and put into a queue. These are the validator status that you will see until its final activation:
Finally, it will get activated and the staking process will start.
Congratulations!, you join the Medalla Eth2.0 multiclient testnet!

Grafana Dashboards

We configured 5 Grafana Dashboards to let users monitor both Eth1.0 and Eth2.0 clients. To access the dashboards just open your browser and type your Raspberry IP followed by the 3000 port:
http://replace_with_your_IP:3000 user: admin passwd: ethereum 
There are 5 dashboards available:
Lots of info here. You can see for example if Geth is in sync by checking (in the Blockchain section) if Headers, Receipts and Blocks fields are aligned or find Eth2.0 chain info.

Updating the software

We will be keeping the Eth2.0 clients updated through Debian packages in order to keep up with the testnet progress. Basically, you need to update the repo and install the packages through the apt command. For instance, in order to update all packages you would run:
sudo apt-get update && sudo apt-get install geth teku nimbus prysm-beacon prysm-validator lighthouse-beacon lighthouse-validator
Please follow us on Twitter in order to get regular updates and install instructions.
https://twitter.com/EthereumOnARM

References

  1. https://github.com/goerli/medalla/tree/mastemedalla
  2. https://www.reddit.com/ethereum/comments/hhvi2ethereum_on_arm_new_eth20_raspberry_pi_4_image/
  3. https://github.com/ethereum/go-ethereum/releases/tag/v1.9.20
  4. https://github.com/ethereum/eth2.0-deposit-cli/releases
  5. https://github.com/prysmaticlabs/prysm/releases/tag/v1.0.0-alpha.23
  6. https://github.com/PegaSysEng/teku
  7. https://github.com/sigp/lighthouse/releases/tag/v0.2.8
  8. https://github.com/status-im/nim-beacon-chain
  9. https://grafana.com
  10. https://www.balena.io/etcher
  11. https://github.com/ethereum/eth2.0-specs/releases/tag/v0.12.2
  12. https://blog.ethereum.org/2020/08/03/eth2-quick-update-no-14
  13. https://goerli.net
  14. https://metamask.io
submitted by diglos76 to ethereum [link] [comments]

The internals of Android APK build process - Article

The internals of Android APK build process - Article

Table of Contents

  • CPU Architecture and the need for Virtual Machine
  • Understanding the Java Virtual Machine
  • Compiling the Source Code
  • Android Virtual Machine
  • Compilation Process to .dex
  • ART over Dalvik
  • Understanding each part of the build process.
  • Source Code
  • Resource Files
  • AIDL Files
  • Library Modules
  • AAR Libraries
  • JAR Libraries
  • Android Asset Packaging Tool
  • resources.arsc
  • D8 and R8
  • Dex and Multidex
  • Signing the APK
  • References
Understanding the flow of the Android APK build process, the execution environment, and code compilation blog post aims to be the starting point for developers to get familiar with the build process of Android APK.

CPU Architecture and the need for Virtual Machine

Unveiled in 2007, Android has undergone lots of changes related to its build process, the execution environment, and performance improvements.
There are many fascinating characteristics in Android and one of them is different CPU architectures like ARM64 and x86
It is not realistic to compile code that supports each and every architecture. This is where Java Virtual Machine is used.
https://preview.redd.it/91nrrk3twxk51.png?width=1280&format=png&auto=webp&s=a95b8cf916f000e94c6493a5780d9244e8d27517

Understanding the Java Virtual Machine

JVM is a virtual machine that enables a computer to run applications that are compiled to Java bytecode. It basically helps us in converting the compiled java code to machine code.
By using the JVM, the issue of dealing with different types of CPU architecture is resolved.
JVM provides portability and it also allows Java code to be executed in a virtual environment rather than directly on the underlying hardware.
But JVM is designed for systems with huge storages and power, whereas Android has comparatively low memory and battery capacity.
For this reason, Google has adopted an Android JVM called Dalvik.

https://preview.redd.it/up2os7juwxk51.png?width=1280&format=png&auto=webp&s=2a290bdc9be86fb08d67228c730329130da3bc63

Compiling the Source Code

Our Java source code for the Android app is compiled into a .class file bytecode by the javac compiler and executed on the JVM.
For Kotlin source code, when targeting JVM, Kotlin produces Java-compatible bytecode, thanks to kotlinc compiler.
To understand bytecode, it is a form of instruction set designed for efficient execution by a software interpreter.
Whereas Java bytecode is the instruction set of the Java virtual machine.

https://preview.redd.it/w2uzoicwwxk51.png?width=1280&format=png&auto=webp&s=b122e0781bf9e9ba236d34a87a636c9218f7ea35

Android Virtual Machine

Each Android app runs on its own virtual machine. From version 1.0 to 4.4, it was 'Dalvik'. In Android 4.4, along with Dalvik, Google experimentally introduced a new Android Runtime called 'ART'.
Android users had the option to choose either Dalvik or ART runtime in Android 4.4.
The .class files generated contains the JVM Java bytecodes.
But Android has its own optimized bytecode format called Dalvik from version 1.0 to 4.4. Dalvik bytecodes, like JVM bytecodes, are machine-code instructions for a processor.

https://preview.redd.it/sqychk81xxk51.png?width=217&format=png&auto=webp&s=49445fa42e4aa6f4008114a822f364580649fcdf

Compilation Process to .dex

The compilation process converts the .class files and .jar libraries into a single classes.dex file containing Dalvik byte-codes. This is possible with the dx command.
The dx command turns all of the .class and .jar files together into a single classes.dex file is written in Dalvik bytecode format.
To note, dex means Dalvik Executable.
https://preview.redd.it/g4z3tb95xxk51.jpg?width=831&format=pjpg&auto=webp&s=1cdbaacaf10cc529cccca2ba016583596781ee88

ART over Dalvik

Since Android 4.4, Android migrated to ART, the Android runtime from Dalvik. This execution environment executes .dex as well.
The benefit of ART over Dalvik is that the app runs and launches faster on ART, this is because DEX bytecode has been translated into machine code during installation, no extra time is needed to compile it during the runtime.
ART and Dalvik are compatible runtimes running Dex bytecode, so apps developed for Dalvik should work when running with ART.
The JIT based compilation in the previously used Dalvik has disadvantages of poor battery life, application lag, and performance.
This is the reason Google created Android Runtime(ART).
ART is based on Ahead - Of - Time (AOT) based compilation process where compilation happens before application starts.
In ART, the compilation process happens during the app installation process itself. Even though this leads to higher app installation time, it reduces app lag, increases battery usage efficiency, etc.
Even though dalvik was replaced as the default runtime, dalvik bytecode format is still in use (.dex)
In Android version 7.0, JIT came back. The hybrid environment combining features from both a JIT compiler and ART was introduced.
The bytecode execution environment of Android is important as it is involved in the application startup and installation process.
https://preview.redd.it/qh9bxsplzxk51.png?width=1280&format=png&auto=webp&s=bc40ba6c69cec2110b7d695fe23df094bf5aea6c

Understanding each part of the process.


https://preview.redd.it/obelgd7axxk51.png?width=950&format=png&auto=webp&s=299abcf4798ad4d2de93f4eb18b9d9e70dd54297

Source Code

Source code is the Java and Kotlin files in the src folder.

Resource Files

The resource files are the ones in the res folder.

AIDL Files

Android Interface Definition Language (AIDL) allows you to define the programming interface for client and service to communicate using IPC.
IPC is interprocess communication.
AIDL can be used between any process in Android.

Library Modules

Library module contains Java or Kotlin classes, Android components, and resources though assets are not supported.
The code and resources of the library project are compiled and packaged together with the application.
Therefore a library module can be considered to be a compile-time artifact.

AAR Libraries

Android library compiles into an Android Archive (AAR) file that you can use as a dependency for an Android app module.
AAR files can contain Android resources and a manifest file, which allows you to bundle in shared resources like layouts and drawables in addition to Java or Kotlin classes and methods.

JAR Libraries

JAR is a Java library and unlike AAR it cannot contain Android resources and manifests.

Android Asset Packaging Tool

Android Asset Packaging Tool (aapt2) compiles the AndroidManifest and resource files into a single APK.
At this point, it is divided into two steps, compiling and linking. It improves performance, since if only one file changes, you only need to recompile that one file and link all the intermediate files with the 'link' command.
AAPT2 supports the compilation of all Android resource types, such as drawables and XML files.
When you invoke AAPT2 for compilation, you should pass a single resource file as an input per invocation.
AAPT2 then parses the file and generates an intermediate binary file with a .flat extension.
The link phase merges all the intermediate files generated in the compile phase and outputs one .apk file. You can also generate R.java and proguard-rules at this time.

resources.arsc

The output .apk file does not include the DEX file, so the DEX file is not included, and since it is not signed, it is an APK that cannot be executed.
This APK contains the AndroidManifest, binary XML files, and resources.arsc.
This resource.arsc contains all meta-information about a resource, such as an index of all resources in the package.
It is a binary file, and the APK that can be actually executed, and the APK that you often build and execute are uncompressed and can be used simply by expanding it in memory.
The R.java that is output with the APK is assigned a unique ID, which allows the Java code to use the resource during compilation.
arsc is the index of the resource used when executing the application.

https://preview.redd.it/hmmlfwhdxxk51.png?width=1280&format=png&auto=webp&s=b2fe2b6ad998594a5364bb6af6b5cbd880a2452c

D8 and R8

Starting from android studio 3.1 onwards, D8 was made the default compiler.
D8 produces smaller dex files with better performance when compared with the old dx.
R8 is used to compile the code. R8 is an optimized version of D8.
D8 plays the role of dexer that converts class files into DEX files and the role of desugar that converts Java 8 functions into bytecode that can be executed by Android.
R8 further optimizes the dex bytecode. R8 provides features like optimization, obfuscation, remove unused classes.
Obfuscation reduces the size of your app by shortening the names of classes, methods, and fields.
Obfuscation has other benefits to prevent easy reverse engineering, but the goal is to reduce size.
Optimization reduces the DEX file size by rewriting unnecessary parts and inlining.
By doing Desugaring we can use the convenient language features of Java 8 in older devices.
https://preview.redd.it/so424bxwxxk51.png?width=1280&format=png&auto=webp&s=0ad2df5bd194ec770d453f620aae9556e14ed017

Dex and Multidex

R8 outputs one DEX file called classes.dex.
If you are using Multidex, that is not the case, but multiple DEX files will appear, but for the time being, classes.dex will be created.
If the number of application methods exceeds 65,536 including the referenced library, a build error will occur.
The method ID range is 0 to 0xFFFF.
In other words, you can only refer to 65,536, or 0 to 65,535 in terms of serial numbers.
This was the cause of the build error that occurred above 64K.
In order to avoid this, it is useful to review the dependency of the application and use R8 to remove unused code or use Multidex.

https://preview.redd.it/kjyychmzxxk51.png?width=1261&format=png&auto=webp&s=18bea3bf9f7920a4701c2db9714dc53ae6cc5f82

Signing the APK

All APKs require a digital signature before they can be installed or updated on your device.
For Debug builds, Android Studio automatically signs the app using the debug certificate generated by the Android SDK tools when we run.
A debug Keystore and a debug certificate is automatically created.
For release builds, you need a Keystore and upload the key to build a signed app. You can either make an APK file with apkbuilder and finally optimize with zipalign on cmd or have Android Studio handle it for you with the 'Generated Signed Apk option'.

https://preview.redd.it/10m8rjl0yxk51.png?width=1468&format=png&auto=webp&s=078c4ab3f41c7d08e7c2280555ef2038cc04c5b0

References

https://developer.android.com/studio/build
https://github.com/dogriffiths/HeadFirstAndroid/wiki/How-Android-Apps-are-Built-and-Run
https://logmi.jp/tech/articles/322851
https://android-developers.googleblog.com/2017/08/next-generation-dex-compiler-now-in.html
https://speakerdeck.com/devpicon/uncovering-the-magic-behind-android-builds-droidfestival-2018
by androiddevnotes on GitHub
🐣
submitted by jiayounokim to androiddev [link] [comments]

Advanced Docker Security with AppArmor

So you have your Docker Containers deployed, which in turn are hosting critical applications of your organization? Great! So far, so good!
For the interest of the organization, it remains extremely crucial to keep not only the Containers but also the hosted applications protected from security threats. By default, a deployed Docker originally remains secured through an auto-generated profile docker-default for its containers. This profile, however, provides moderate security on the application level, and thus it remains highly recommended to implement a security profile through AppArmor which works at the process/program level of an application.

What is AppArmor?

AppArmor (Application Armor) is a Linux Security Module that allows to implement security on a program/process level. Specifically developed security profiles through AppArmor can allow capabilities like folder access, network access, and permission(or not) to read, write, or execute files.
One of the beauties of AppArmor is that it allows a Learning Mode which logs profile violations without preventing them proactively. The Learning Mode Log eventually helps administrators to create a security profile which forms a much hardened security armor based on an application's process execution. Default Security policies when clubbed with Learning Mode Logs, help forming security policies for even very complex applications in quick turnaround.
AppArmor proactively protects the operating system and applications from external or internal threats and even zero-day attacks by enforcing a specific rule set on a per-application basis. Security policies completely define what system resources individual applications can access, and with what privileges. Access is denied by default if no profile says otherwise.

Installing and Enabling AppArmor

Though AppArmor comes inbuilt with all Linux Kernels, it is not by default the security profile loaded with every boot. Apparmor can be set as the default security profile on every boot by setting the following parameter on kernel :
apparmor=1 security=apparmor
CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 CONFIG_DEFAULT_SECURITY_APPARMOR=y
To load all AppArmor security profiles on boot, enable apparmor.service.

Display AppArmor loaded profiles

The system default AppArmor comes with a number of security profiles, on top of which an administrator can add his own security profiles based on the Learning Mode. To check the list of AppArmor security profiles correctly loaded :
$ aa-enabled ------------ Yes 
To display the current loaded status use apparmor_status:
# apparmor_statusapparmor module is loaded. 29 profiles are loaded. 29 profiles are in enforce mode. ... 0 profiles are in complain mode. 0 processes have profiles defined. 0 processes are in enforce mode. 0 processes are in complain mode. 0 processes are unconfined but have a profile defined. 
Above you can see the loaded profiles and processes with their respective statuses.

Parsing AppArmor profiles

AppArmor allows a number of options using apparmor_parser to parse either its default or custom generated profiles. apparmor_parser is widely used to load, unload, debug, remove, replace, cache and match-strings within profiles out of the other available options.
-a - Default Action to load a new profile in enforce mode.
-C - Loading a new profile in complain mode.
-r - Overwrite an existing profile.
-R - Remove an existing profile in the kernel.
-V - Display the profile version.
-h - Display reference guide.

Understanding AppArmor profiles

AppArmor profiles are text files found under /etc/apparmor.d/. A quick look into a profile file explains its execution as shown below:
/etc/apparmor.d/usr.bin.test #include  profile test /uslib/test/test_binary { #include  # Main libraries and plugins /usshare/TEST/** r, /uslib/TEST/** rm, # Configuration files and logs @{HOME}/.config/ r, @{HOME}/.config/TEST/** rw, } 
Strings following the @ symbol are variables defined under abstractions (/etc/apparmor.d/abstractions/), tunables (/etc/apparmor.d/tunables/) or by the profile itself. #include includes other profile-files directly. Paths followed by a set of characters are access permissions while the Globbing Syntax helps with pattern matching.
Commonly used command options on profile files :
r - reading data
w - creating, deleting or write on an existing file
x - executing a file
m - memory mapping an executable file

Creating a new AppArmor profile

Creating an AppArmor profile can be done through a Systemic or Stand-Alone method.

1) Stand-Alone Profile Creation

(aa-genprof) : Used for creating a profile affecting single program/application which runs for a finite amount of time, such as a web browsing client, mail client, etc. Though a Stand-Alone profile is comparatively quicker and easier to be developed, it comes with its own limitations as such the profiling is lost on a reboot. A Stand-Alone profile can be created through AppArmor's aa-genprof profile generating utility. It runs aa-autodep on the specified program/application by creating an approximate profile, sets it to complain mode, reloads it into AppArmor, marks the log, and prompts the user to execute the program and exercise its functionality.
aa-genprof [ -d /path/to/profiles ] PROGRAM

2) Systemic Profile Creation

(aa-autodep): Used for creating a profile affecting multiple programs and/or applications that runs indefinitely or continuously across reboots, such as network server applications like mail servers, security policies, etc. This method updates all of the profiles on the system at once, as opposed to one or few targeted by Stand-Alone profiling.

Steps to create Systemic profile for a program :

  1. Run an initial aa-autodep to create an approximate profile for a program - this lets AppArmor consider the program for monitoring.
  2. Activate learning or complain mode for all profiled programs by entering aa-complain /etc/apparmor.d/*
  3. Run the application. Ensure that the running program gets to access each file representing its access needs. As a result, the execution might run for several days through multiple system reboots.
  4. Analyze the log with aa-logprof.
  5. Repeat Step 3 and Step 4 to generate an optimal Systemic profile. Subsequent iterations generate fewer messages and run faster.
  6. Edit the profiles in /etc/apparmor.d/ as required.
  7. Return to enforce mode using aa-enfore /etc/apparmor.d/* which eventually enforces the rules of the profiles.
  8. Rescan all kernel profiles to ensure no conflict.

Modifying an existing AppArmor profile

Disabling AppArmor

In case you would like to disable AppArmor for the current session, you can do so by clearing out all AppArmor profiles for the current session by # aa-teardown
Additionally to prevent the kernel from loading AppArmor profiles at the next boot disable apparmor.service and remove apparmor=1 security=apparmor from kernel parameters.
AppArmor when implemented properly, provides an enhanced level of security to the deployed containers at a program level. There are endless possibilities of creating varied profiles through Learning Mode, and hence makes it stand apart from the system generated docker-default profile.

This article was originally published on https://appfleet.com/blog/advanced-docker-security-with-apparmo and has been authorized by Appfleet for a republish.
submitted by GuessRemarkable to docker [link] [comments]

Hi guys, I'm really trying hard to not pose this offensive because I really don't mean it to be, I'm just interested and so could anyone help me with a few questions on gender?

So I'm sorry if this comes across as ignorant and I apologise for this, I'm just trying to educate myself.
I know the specific number of genders is varied and obviously overall gender doesn't matter but just for education I had some question based on thie abcnews blog that had 58 gender options:
https://abcnews.go.com/blogs/headlines/2014/02/heres-a-list-of-58-gender-options-for-facebook-users

  1. What is the difference between Androgyne and Androgynous (Brilliant The Replacements song by the way) ? As I thought this was a gender both feminine and masculine

2) I don't quite understand any of the cis part since I thought cis is the gender you were assigned at birth, so what's the difference between, Cis and Cisgender, Cis Female and Cis Woman, Cis Male and Cis Man, and the Cisgender equivalent?

3) I Female to Male and Male to Female is the transitioning period, how is this difference FTM and MTF?

4) If Gneder Noncomforming is not conforming to any gender, is this not the same as Gender Variant?

5) Again excuse the ignorance but wouldn't also Neutrois, non-binary and genderqueer be the same as Angrogynous?

6) What's the difference between, Trans, Transgender and Transsexual? I understand the difference between Transgender and Transsexual but I always thought Trans was short for Transsexual, so what are the different between these two?

7) Similarly to question 2), there is also Transgender Female and Transgender Woman or Transgender Male and Transgender Man?

Again, this post hasn't been made to show how progressive I am or to start asking people what gender they or whatever dumb stuff, I was just genuinely interested and felt my knowledge was lacking. Either way thanks in advance and have a good 'un.

EDIT: The kind commenters have explained it and I think it was just a poorly done ABC news article.
submitted by philipmasters18 to AskLGBT [link] [comments]

Wall Street Week Ahead for the trading week beginning August 17th, 2020

Good Saturday morning to all of you here on smallstreetbets. I hope everyone on this sub made out pretty nicely in the market this past week, and is ready for the new trading week ahead.
Here is everything you need to know to get you ready for the trading week beginning August 17th, 2020.

Stocks are ignoring the lack of a stimulus package from Congress, but that could change - (Source)

Stocks could hang at record levels but gains may be capped until Congress agrees to a new stimulus package to help the economy and the millions of unemployed Americans.
Stocks were higher in the past week, and the S&P 500 flirted with record levels it set in February.
In the coming week, there are some major retailers reporting earnings, including Walmart, Home Depot and Target, but the season is mostly over and the market is entering a quiet period. There are minutes from the Fed’s last meeting, released Wednesday, and housing data, including starts Tuesday and existing sales Friday.
Investors had been watching efforts by Congress to agree to a new stimulus package, but talks have failed and the Senate has gone on recess. There is a concern that Congress will not be convinced to provide a big enough package when it does get to work again on the next stimulus round because recent economic reports look stronger. July’s retail sales, for example, climbed to a record level and recovered to pre-pandemic levels.
“The juxtaposition of getting more fiscal stimulus and better data has paralyzed us in our tracks … we’ve seen this sideways [market] action,” said Art Hogan, chief market strategist at National Alliance. “It feels like we need more action from Congress, and the concern is the longer we wait, the better the data gets and the less impactful the next round of stimulus will be.”
Some technical analysts say the market may pull back around the high, to allow it to consolidate gains before moving higher into the end of the year. The S&P 500 reached an all-time high of 3,393 on Feb. 19.
Hogan said he expects stocks to tread sideways during the dog days of August, but they could begin to react negatively to the election in September. He also said it is important that progress continue against the spread of Covid-19, as the economy continues to reopen.
Peter Boockvar, chief investment strategist at Bleakley Advisory Group, said the market could have a wakeup call at some point that the stimulus package has not been approved.
“I think it will cross over a line where they care,” he said. “I think the market is in suspended animation of believing there will be a magical deal.” Boockvar said he expects a deal ultimately, but the impact is not likely to be as big as the last round of funding.
“What they’re not grasping is any deal, any extension of unemployment benefits, is going to be smaller than it was, and the rate of change should be the most important thing investors focus on,” he said. “Not the binary outcome of whether there’s a deal or no deal. There’s going to be less air going into the balloon.”

It’s the economy

Still, economists expect to see a strong rebound in the third quarter, and are anticipating about about a 20% jump in third-quarter growth. But they also say that could be threatened if Congress does not help with another stimulus package.
Mark Zandi, chief economist at Moody’s Analytics, described the July retail sales as a perfect V-shaped recovery, but cautioned it would not last unless more aid gets to individuals and cities and states. Democrats have sought a $3 trillion spending package, and Republicans in the Senate offered a $1 trillion package. They could not reach a compromise, including on a $600 weekly payment to individuals on unemployment which expired July 31.
President Donald Trump has tried to fill the gap with executive orders to provide extra benefits to those on unemployment, but the $300 federal payment and $100 from states may take some time to reach individuals, as the processing varies by state. He has also issued an order instructing the Treasury to temporarily defer collection of payroll taxes from individuals making up to $104,000.
“I think in August and September, there will be a lot of Ws, if there’s not more help here,” said Zandi, referring to an economic recovery that retrenches from a V shape before heading higher again. “It’s clearly perplexing. It may take the stock market to say we’re not going to get what we expect, and sell off and light a fire.”
Zandi said it could come to a situation like 2008, where the stock market sold off sharply before Congress would agree to a program that helped financial companies.
“We need a TARP moment to get these guys to help. Maybe if the claims tick higher and the August employment numbers are soft, given the president is focused on the stock market, that might be what it takes to get them back to the table in earnest,” he said, referring to the Troubled Asset Relief Program that helped rescue banks during the financial crisis.
He ultimately expects a package of about $1.5 trillion to be approved in September.
The lack of funding for state and local governments could result in more layoffs, as they struggle with their current 2021 budgets, Zandi said. Already 1.3 million public sector jobs have been lost since February, and there will be more layoffs and more programs and projects cancelled. The impact will hit contractors and other businesses that provide services to local governments.
“The multipliers on state and local government are among the highest of any form of support, so if you don’t provide it, it’s going to ripple through the economy pretty fast,” he said.
Economists expect to see a softening in consumer spending in August with the more than 28 million Americans on unemployment benefits as of mid-July no longer receiving any supplemental pay.
“The real irony is things are shaping up that September is going to be a bad month, and that’s going to show up in all the data in October,” Zandi said. “They are really taking a chance on this election by not acting.”

This past week saw the following moves in the S&P:

(CLICK HERE FOR THE FULL S&P TREE MAP FOR THE PAST WEEK!)

Major Indices for this past week:

(CLICK HERE FOR THE MAJOR INDICES FOR THE PAST WEEK!)

Major Futures Markets as of Friday's close:

(CLICK HERE FOR THE MAJOR FUTURES INDICES AS OF FRIDAY!)

Economic Calendar for the Week Ahead:

(CLICK HERE FOR THE FULL ECONOMIC CALENDAR FOR THE WEEK AHEAD!)

Percentage Changes for the Major Indices, WTD, MTD, QTD, YTD as of Friday's close:

(CLICK HERE FOR THE CHART!)

S&P Sectors for the Past Week:

(CLICK HERE FOR THE CHART!)

Major Indices Pullback/Correction Levels as of Friday's close:

(CLICK HERE FOR THE CHART!

Major Indices Rally Levels as of Friday's close:

(CLICK HERE FOR THE CHART!)

Most Anticipated Earnings Releases for this week:

(CLICK HERE FOR THE CHART!)

Here are the upcoming IPO's for this week:

(CLICK HERE FOR THE CHART!)

Friday's Stock Analyst Upgrades & Downgrades:

(CLICK HERE FOR THE CHART LINK #1!)
(CLICK HERE FOR THE CHART LINK #2!)

4 Charts That Will Amaze You

The S&P 500 Index is a few points away from a new all-time high, completing one of the fastest recoveries from a bear market ever. But this will also seal the deal on the shortest bear market ever. Remember, the S&P 500 Index lost 20% from an all-time high in only 16 trading days back in February and March, so it makes sense that this recovery could be one of the fastest ever.
From the lows on March 23, the S&P 500 has now added more than 50%. Many have been calling this a bear market rally for months, while we have been in the camp this is something more. It’s easy to see why this rally is different based on where it stands versus other bear market rallies:
(CLICK HERE FOR THE CHART!)
They say the stock market is the only place where things go on sale, yet everyone runs out of the store screaming. We absolutely saw that back in March and now with stocks near new highs, many have missed this record run. Here we show how stocks have been usually higher a year or two after corrections.
(CLICK HERE FOR THE CHART!)
After a historic drop in March, the S&P 500 has closed higher in April, May, June, and July. This rare event has happened only 11 other times, with stocks gaining the final five months of the year a very impressive 10 times. Only 2018 and the nearly 20% collapse in December saw a loss those final five months.
(CLICK HERE FOR THE CHART!)
As shown in the LPL Chart of the Day, this bear market will go down as the fastest ever, at just over one month. The recovery back to new highs will be five months if we get there by August 23, making this one of the fastest recoveries ever. Not surprisingly, it usually takes longer for bear markets in a recession to recover; only adding to the impressiveness of this rally.
(CLICK HERE FOR THE CHART!)
“It normally takes 30 months for bear markets during a recession to recover their losses, which makes this recovery all the more amazing,” said LPL Financial Chief Market Strateigst Ryan Detrick.. “Then again, there has been nothing normal about this recession, so maybe we shouldn’t be shocked about yet another record going down in 2020.”

When a Few Basis Points Packs a Punch

US Treasury yields have been on the rise this week with the 10-year yield rising 13 basis points (bps) from 0.56% up to 0.69% after getting as high as 0.72% on Thursday. A 13 bps move higher in interest rates may not seem like a whole lot, but with rates already at such low levels, a small move can have a pretty big impact on the prices of longer-term maturities.
(CLICK HERE FOR THE CHART!)
Starting with longer-term US Treasuries, TLT, which measures the performance of maturities greater than 20 years, has declined 3.5% this week. Now, for a growth stock, 3.5% is par for the course, but that kind of move in the Treasury market is no small thing. The latest pullback for TLT also coincides with another failed attempt by the ETF to trade and stay above $170 for more than a day.
(CLICK HERE FOR THE CHART!)
The further out the maturity window you go in the fixed income market, the bigger the impact of the move higher in interest rates. The Republic of Austria issued a 100-year bond in 2017, and its movements exemplify the wild moves that small changes in interest rates (from a low base) can have on prices. Just this week, the Austrian 100-year was down over 5%, which is a painful move no matter what type of asset class you are talking about. This week's move, though, was nothing compared to the stomach-churning swings from earlier this year. When Covid was first hitting the fan, the 100-year rallied 57% in the span of less than two months. That kind of move usually occurs over years rather than days, but in less than a third of that time, all those gains disintegrated in a two-and-a-half week span from early to late March. Easy come, easy go. Ironically enough, despite all the big up and down moves in this bond over the last year, as we type this, the bond's price is the same now as it was on this same day last year.
(CLICK HERE FOR THE CHART!)

Retail Sales Rock to New Highs

At the headline level, July’s Retail Sales report disappointed as the reading missed expectations by nearly a full percentage point. Just as soon as the report was released, we saw a number of stories pounce on the disappointment as a sign that the economy was losing steam. Looked at in more detail, though, the July report wasn’t all that bad. While the headline reading rose less than expected (1.2% vs 2.1%), Ex Autos and Ex Autos and Gas, the results were much better than expected. Not only that, but June’s original readings were all revised higher by around a full percentage point.
Besides the fact that this month’s report was better underneath the surface and June’s reading was revised higher, it was also notable as the seasonally-adjusted annualized rate of sales in July hit a new record high. After the last record high back in January, only five months passed until American consumers were back to their pre-Covid spending ways. For the sake of comparison, back during the Financial Crisis, 40 months passed between the original high in Retail Sales in November 2007 and the next record high in April 2011. 5 months versus 40? Never underestimate the power of the US consumer!
(CLICK HERE FOR THE CHART!)
While the monthly pace of retail sales is back at all-time highs, the characteristics behind the total level of sales have changed markedly in the post COVID world. In our just released B.I.G. Tips report we looked at these changing dynamics to highlight the groups that have been the biggest winners and losers from the shifts.

100 Days of Gains

Today marked 100 trading days since the Nasdaq 100's March 20th COVID Crash closing low. Below is a chart showing the rolling 100-trading day percentage change of the Nasdaq 100 since 1985. The 59.8% gain over the last 100 trading days ranks as the 3rd strongest run on record. The only two stronger 100-day rallies ended in January 1999 and March 2000.
(CLICK HERE FOR THE CHART!)
While the Nasdaq 100 bottomed on Friday, March 20th, the S&P 500 bottomed the following Monday (3/23). This means tomorrow will mark 100 trading days since the S&P 500's COVID Crash closing low. Right now the rolling 100-day percentage change for the S&P 500 sits at +46.7%. But if the S&P manages to trade at current levels tomorrow, the 100-day gain will jump above 50%. It has been 87 years (1933) since we've seen a 100-day gain of more than 50%!
(CLICK HERE FOR THE CHART!)

B.I.G. Tips - New Highs In Sight

Whether you want to look at it from the perspective of closing prices or intraday levels, the S&P 500 is doing what just about everybody thought would be impossible less than five months ago - approaching record highs. Relative to its closing high of 3,386.15, the S&P 500 is just 0.27% lower, while it's within half of a percent from its record intraday high of 3,393.52. Through today, the S&P 500 has gone 120 trading days without a record high, and as shown in the chart below, the current streak is barely even visible when viewed in the perspective of all streaks since 1928. Even if we zoom in on just the last five years, the current streak of 120 trading days only ranks as the fourth-longest streak without a new high.
While the S&P 500's 120-trading day streak without a new high isn't extreme by historical standards, the turnaround off the lows has been extraordinary. In the S&P 500's history, there have been ten prior declines of at least 20% from a record closing high. Of those ten prior periods, the shortest gap between the original record high and the next one was 309 trading days, and the shortest gap between highs that had a pullback of at least 30% was 484 tradings days (or more than four times the current gap of 120 trading days). For all ten streaks without a record high, the median drought was 680 trading days.
(CLICK HERE FOR THE CHART!)
Whenever the S&P 500 does take out its 2/19 high, the question is whether the new high represents a breakout where the S&P 500 keeps rallying into evergreen territory, or does it run out of gas after finally reaching a new milestone? To shed some light on this question, we looked at the S&P 500's performance following each prior streak of similar duration without a new high.

Rocket Reversals

Over the last few days, we've been seeing a moderate rotation in the market as red-hot growth stocks sell-off and investors shift into other areas of the market that have been lagging. To highlight this, the table below highlights 24 companies in the Russell 3,000 with market caps of more than $1 billion that traded at a 52-week high within the last month but are currently down more than 20% from that high. The vast majority of these stocks are names that investors haven't been able to get enough of in 2020 but now appear to have had their fill.
Topping the list of these reversals is Eastman Kodak (KODK). On 7/29, the stock surged to a 52-week high of $60.00 after being awarded a questionable government contract to domestically produce components for prescription drugs. With the SEC and government agency that originally awarded the contract now looking into stock option awards at the company just before it was announced, the stock has pulled back sharply and is now down over 80% from its high less than two weeks ago.
While KODK is more of a unique example, other names on the list are primarily growth or health care stocks that have benefited from the COVID outbreak. However, now that signs suggest the summer wave in the south has crested, investors appear to be taking some profits. Shares of Vaxart (VXRT) hit a high of $17.49 on July 14th but have since lost nearly half of their value and trade back in the single-digits. Additionally, Bloom Energy (BE), 1Life Healthcare (ONEM), and Bioxcel Therapeutics (BTAI) have all lost more than a third of their value.
In terms of market cap, most of the names listed are on the small side, but Tesla (TSLA) is a notable exception as it is now just over 20% below its 52-week high on 7/13. Other relatively large companies on the list include Moderna (MRNA), Citrix Systems (CTXS), Teladoc (TDOC), and Livongo (LVGO). TDOC and LVGO both hit all-time highs last week but after announcing a mostly stock merger last Wednesday, both have lost nearly a quarter of their value.
While all of the stocks listed below have seen sharp pullbacks in the last several days, a little perspective is in order. Of the 24 names listed, the average YTD change even after the declines has been a gain of 219.7% (median: +94.6%). Only two of the stocks shown (New Relic- NEWR and Sonos- SONO) are down YTD, and half of them have at least doubled and in many cases much more.
(CLICK HERE FOR THE CHART!)

STOCK MARKET VIDEO: Stock Market Analysis Video for Week Ending August 14th, 2020

([CLICK HERE FOR THE YOUTUBE VIDEO!]())
(VIDEO NOT YET POSTED!)

STOCK MARKET VIDEO: ShadowTrader Video Weekly 8.16.20

([CLICK HERE FOR THE YOUTUBE VIDEO!]())
(VIDEO NOT YET POSTED!)
Here are the most notable companies (tickers) reporting earnings in this upcoming trading week ahead-
  • $WMT
  • $NVDA
  • $BABA
  • $JD
  • $HD
  • $LOW
  • $TGT
  • $SE
  • $NIU
  • $BJ
  • $AAP
  • $DLPN
  • $TJX
  • $ADI
  • $DE
  • $FL
  • $KSS
  • $DQ
  • $PDD
  • $GDS
  • $ECC
  • $BEST
  • $CTK
  • $EL
  • $VIPS
  • $SNPS
  • $A
  • $ROST
  • $QIWI
  • $LB
  • $LX
  • $AMCR
  • $CMCM
  • $LZB
  • $OPRA
  • $KEYS
  • $CREE
  • $GAN
  • $BZUN
  • $JKHY
  • $FN
  • $MLCO
  • $KC
  • $FUV
  • $SQM
(CLICK HERE FOR NEXT WEEK'S MOST NOTABLE EARNINGS RELEASES!)
(CLICK HERE FOR NEXT WEEK'S HIGHEST VOLATILITY EARNINGS RELEASES!)
Below are some of the notable companies coming out with earnings releases this upcoming trading week ahead which includes the date/time of release & consensus estimates courtesy of Earnings Whispers:

Monday 8.17.20 Before Market Open:

(CLICK HERE FOR MONDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Monday 8.17.20 After Market Close:

(CLICK HERE FOR MONDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!)

Tuesday 8.18.20 Before Market Open:

(CLICK HERE FOR TUESDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Tuesday 8.18.20 After Market Close:

(CLICK HERE FOR TUESDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!)

Wednesday 8.19.20 Before Market Open:

(CLICK HERE FOR WEDNESDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Wednesday 8.19.20 After Market Close:

(CLICK HERE FOR WEDNESDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!)

Thursday 8.20.20 Before Market Open:

(CLICK HERE FOR THURSDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Thursday 8.20.20 After Market Close:

(CLICK HERE FOR THURSDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!)

Friday 8.21.20 Before Market Open:

(CLICK HERE FOR FRIDAY'S PRE-MARKET EARNINGS TIME & ESTIMATES!)

Friday 8.21.20 After Market Close:

([CLICK HERE FOR FRIDAY'S AFTER-MARKET EARNINGS TIME & ESTIMATES!]())
(NONE)

Walmart Inc. $132.60

Walmart Inc. (WMT) is confirmed to report earnings at approximately 7:00 AM ET on Tuesday, August 18, 2020. The consensus earnings estimate is $1.20 per share on revenue of $134.28 billion and the Earnings Whisper ® number is $1.29 per share. Investor sentiment going into the company's earnings release has 81% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 5.51% with revenue increasing by 2.99%. Short interest has decreased by 12.5% since the company's last earnings release while the stock has drifted higher by 0.6% from its open following the earnings release to be 9.9% above its 200 day moving average of $120.64. Overall earnings estimates have been revised higher since the company's last earnings release. On Tuesday, August 11, 2020 there was some notable buying of 12,381 contracts of the $135.00 put expiring on Friday, August 21, 2020. Option traders are pricing in a 4.9% move on earnings and the stock has averaged a 2.3% move in recent quarters.

(CLICK HERE FOR THE CHART!)

NVIDIA Corp. $462.56

NVIDIA Corp. (NVDA) is confirmed to report earnings at approximately 4:20 PM ET on Wednesday, August 19, 2020. The consensus earnings estimate is $1.95 per share on revenue of $3.65 billion and the Earnings Whisper ® number is $2.01 per share. Investor sentiment going into the company's earnings release has 84% expecting an earnings beat The company's guidance was for earnings of $1.83 to $2.06 per share. Consensus estimates are for year-over-year earnings growth of 65.25% with revenue increasing by 41.53%. The stock has drifted higher by 31.0% from its open following the earnings release to be 57.7% above its 200 day moving average of $293.24. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, August 14, 2020 there was some notable buying of 3,787 contracts of the $460.00 call expiring on Friday, August 21, 2020. Option traders are pricing in a 7.7% move on earnings and the stock has averaged a 4.0% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Alibaba Group Holding Ltd. $253.97

Alibaba Group Holding Ltd. (BABA) is confirmed to report earnings at approximately 7:10 AM ET on Thursday, August 20, 2020. The consensus earnings estimate is $1.99 per share on revenue of $21.13 billion and the Earnings Whisper ® number is $2.11 per share. Investor sentiment going into the company's earnings release has 83% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 8.74% with revenue increasing by 26.22%. Short interest has increased by 30.1% since the company's last earnings release while the stock has drifted higher by 25.0% from its open following the earnings release to be 20.0% above its 200 day moving average of $211.59. Overall earnings estimates have been revised lower since the company's last earnings release. On Friday, August 7, 2020 there was some notable buying of 12,935 contracts of the $300.00 call expiring on Friday, November 20, 2020. Option traders are pricing in a 6.2% move on earnings and the stock has averaged a 3.1% move in recent quarters.

(CLICK HERE FOR THE CHART!)

JD.com, Inc. $62.06

JD.com, Inc. (JD) is confirmed to report earnings at approximately 5:50 AM ET on Monday, August 17, 2020. The consensus earnings estimate is $0.38 per share on revenue of $26.98 billion and the Earnings Whisper ® number is $0.46 per share. Investor sentiment going into the company's earnings release has 78% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 52.00% with revenue increasing by 23.25%. Short interest has increased by 16.7% since the company's last earnings release while the stock has drifted higher by 24.1% from its open following the earnings release to be 36.9% above its 200 day moving average of $45.34. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, August 14, 2020 there was some notable buying of 12,799 contracts of the $62.00 call expiring on Friday, August 21, 2020. Option traders are pricing in a 8.0% move on earnings and the stock has averaged a 6.4% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Home Depot, Inc. $280.55

Home Depot, Inc. (HD) is confirmed to report earnings at approximately 6:00 AM ET on Tuesday, August 18, 2020. The consensus earnings estimate is $3.71 per share on revenue of $31.67 billion and the Earnings Whisper ® number is $3.75 per share. Investor sentiment going into the company's earnings release has 78% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 17.03% with revenue increasing by 2.69%. Short interest has decreased by 39.8% since the company's last earnings release while the stock has drifted higher by 16.7% from its open following the earnings release to be 22.4% above its 200 day moving average of $229.20. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, August 14, 2020 there was some notable buying of 3,323 contracts of the $300.00 call expiring on Friday, August 28, 2020. Option traders are pricing in a 4.2% move on earnings and the stock has averaged a 2.5% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Lowe's Companies, Inc. $154.34

Lowe's Companies, Inc. (LOW) is confirmed to report earnings at approximately 6:00 AM ET on Wednesday, August 19, 2020. The consensus earnings estimate is $2.93 per share on revenue of $21.29 billion and the Earnings Whisper ® number is $2.97 per share. Investor sentiment going into the company's earnings release has 78% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 36.28% with revenue increasing by 1.42%. Short interest has decreased by 19.2% since the company's last earnings release while the stock has drifted higher by 25.9% from its open following the earnings release to be 31.2% above its 200 day moving average of $117.67. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, August 7, 2020 there was some notable buying of 1,994 contracts of the $170.00 call expiring on Friday, August 21, 2020. Option traders are pricing in a 6.0% move on earnings and the stock has averaged a 5.8% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Target Corp. $136.53

Target Corp. (TGT) is confirmed to report earnings at approximately 6:30 AM ET on Wednesday, August 19, 2020. The consensus earnings estimate is $1.56 per share on revenue of $19.30 billion and the Earnings Whisper ® number is $1.64 per share. Investor sentiment going into the company's earnings release has 75% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 14.29% with revenue increasing by 4.77%. Short interest has decreased by 36.8% since the company's last earnings release while the stock has drifted higher by 10.0% from its open following the earnings release to be 18.0% above its 200 day moving average of $115.73. Overall earnings estimates have been revised higher since the company's last earnings release. On Monday, August 10, 2020 there was some notable buying of 4,479 contracts of the $135.00 call expiring on Friday, September 18, 2020. Option traders are pricing in a 6.3% move on earnings and the stock has averaged a 7.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Sea Limited $126.50

Sea Limited (SE) is confirmed to report earnings at approximately 6:30 AM ET on Tuesday, August 18, 2020. The consensus estimate is for a loss of $0.47 per share on revenue of $1.03 billion and the Earnings Whisper ® number is ($0.36) per share. Investor sentiment going into the company's earnings release has 74% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 34.29% with revenue increasing by 136.16%. Short interest has decreased by 8.5% since the company's last earnings release while the stock has drifted higher by 91.7% from its open following the earnings release to be 98.1% above its 200 day moving average of $63.87. Overall earnings estimates have been revised lower since the company's last earnings release. On Tuesday, August 4, 2020 there was some notable buying of 4,000 contracts of the $110.00 put expiring on Friday, January 15, 2021. Option traders are pricing in a 12.9% move on earnings and the stock has averaged a 16.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Niu Technologies $20.82

Niu Technologies (NIU) is confirmed to report earnings at approximately 3:00 AM ET on Monday, August 17, 2020. The consensus earnings estimate is $0.07 per share on revenue of $88.07 million and the Earnings Whisper ® number is $0.11 per share. Investor sentiment going into the company's earnings release has 57% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 30.00% with revenue increasing by 13.97%. Short interest has increased by 18.9% since the company's last earnings release while the stock has drifted higher by 129.8% from its open following the earnings release to be 90.3% above its 200 day moving average of $10.94. Overall earnings estimates have been revised higher since the company's last earnings release. The stock has averaged a 3.7% move on earnings in recent quarters.

(CLICK HERE FOR THE CHART!)

BJ's Wholesale Club, Inc. $41.48

BJ's Wholesale Club, Inc. (BJ) is confirmed to report earnings at approximately 6:45 AM ET on Thursday, August 20, 2020. The consensus earnings estimate is $0.57 per share on revenue of $3.64 billion and the Earnings Whisper ® number is $0.60 per share. Investor sentiment going into the company's earnings release has 73% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 46.15% with revenue increasing by 8.79%. Short interest has decreased by 3.2% since the company's last earnings release while the stock has drifted higher by 33.8% from its open following the earnings release to be 46.7% above its 200 day moving average of $28.27. Overall earnings estimates have been revised higher since the company's last earnings release. On Wednesday, August 12, 2020 there was some notable buying of 2,119 contracts of the $50.00 call expiring on Friday, September 18, 2020. Option traders are pricing in a 12.4% move on earnings and the stock has averaged a 10.0% move in recent quarters.

(CLICK HERE FOR THE CHART!)

DISCUSS!

What are you all watching for in this upcoming trading week?
I hope you all have a wonderful weekend and a great trading week ahead smallstreetbets.
submitted by bigbear0083 to smallstreetbets [link] [comments]

Not known Details About Top 20 Binary Options Trading ... Our Top 20 Binary Options Trading Blogs & Websites in 2020 ... The 2-Minute Rule for Binary Options Blogs & Opinions ... The Best Strategy To Use For Top 20 Binary Options Trading ... Binary Option Trading Blog - Google Sites Can Be Fun For ...

If you take a look, on the surface, at trading binary options through an OTC (over-the-counter) binary options broker, it would appear that you may be gambling. This is because, on the other side of each of your trades, is the broker. The odds are in the broker’s favor. This is because you can only be the buyer of the binary options. Binary Options Blogs Websites. They do this so you buy into the binary options websites and the affiliate site gets paid because they referred you The binary option sites do it a little bit differently by offering you a return of between 70-90% if you win and a return of only 0-15% if you lose. About Blog Binary options trades copied directly into your account. Binary Options Copy Trading Club is a group of full-time traders, trading binary options on the binary.com platform. Our trading results have proven to be successful in all market conditions and we invite you to join our Binary Options Copy Trading Club. As the popularity of binary options grows across the world, regulatory bodies are rushing to instill order. That means where you trade and the markets you break into can all be governed by different rules and limitations. UK. If you’re day trading binary options in the UK, for example, you will require a license from the UK gambling commission. Since 2008, investing and making money online with binary options has become increasingly attractive to investors and individuals who invest in shares, equities, currencies, and commodities. There are only two options in binary trading; hence the use of the term “binary”. It is almost like placing a bet, in that you are wagering that an asset will increase

[index] [4157] [3713] [3332] [4058] [3446] [2357] [391] [3929] [1328] [1526]

Not known Details About Top 20 Binary Options Trading ...

Forex brokers for online trading are widespread about the internet. Online trading means you have to have confident in the forex brokers you sign up with. Af... Visit Now..: https://bit.ly/2XJ4G1O - Binary Option Trading Blog - Google Sites Can Be Fun For Anyone But over the course of a 100+- video game season, it's ... See These Helpful Hints: https://bit.ly/33KKQXO - Our Top 20 Binary Options Trading Blogs & Websites in 2020 PDFs Without a proper binary options education, ... The Full Report: https://bit.ly/339Mp1t - Not known Details About Top 20 Binary Options Trading Blogs & Websites in 2020 They require brokering companies to ... Check Out This Information: https://bit.ly/2PRO6sB - The Best Strategy To Use For Top 20 Binary Options Trading Blogs & Websites in 2020 With the app, trader...

#