60 second binary options review - 60 Second Binary Options ...

# /r/Peloton Pre-TDF Survey 2020

Gentlemen, Ladies and those otherwise addressed - we know you've been waiting for a good thing, and the survey results are finally ready!
The answers were collected from you all during August 2020 with 1428 unique replies. That's a participation of 0.5% of all subscribers! That's really not too bad, when you keep in mind how popular these kind of surveys are. But we here at /peloton want to show you that this is all about presenting the information in the subreddit to cater better to our audience!
Updated after a few hours to include some more historical data the final edit that for some reason wasn't copied properly
Year 2013 2014 2015 2016 2018 Mar 2018 Aug 2019 2020
Results 2013-06-12 2014-06-25 2015-08-07 2016-11-17 2018-03-06 2018-08-20 2019-07-22 2020-10-12
Replies 351 598 1395 892 630 928 986 1428
Without further ado, let's get cracking on the response

You and Cycling

1. Where do you live?

Country 2015 2016 2018 Mar 2018 Aug 2019 2020
USA 32% 28.3% 22.84% 25.32% 20.23% 24.59%
UK 18.6% 17.6% 14.70% 20.13% 15.48% 14.80%
Netherlands 6.4% 9.4% 11.50% 11.58% 10.01% 11.01%
Germany 3.73% 3.4% 4.95% 6.39% 7.84% 6.65%
Denmark 3.9% 3.6% 4.31% 3.79% 7.64% 5.79%
Belgium 3.8% 2.7% 8.15% 3.57% 5.78% 5.36%
France 2.01% 1.08% 2.88% 2.27% 5.26% 3.50%
Canada 4.9% 7% 6.39% 4.22% 4.95% 4.50%
Australia 5.2% 4.7% 3.83% 4.00% 4.33% 3.93%
Slovenia 0.73% 0.32% 1.30% 1.14% 2.14%
Norway 2.58% 1.8% 1.60% 1.95% 2.58% 1.86%
Sweden 1.08% 1.09% 1.44% 1.41% 1.75% 1.43%
Ireland 1.00% 1.09% 1.44% 1.19% 0.72% 1.36%
Portugal 1.65% 1.8% 2.40% 1.52% 1.34% 1.14%
Italy 1.45% 1.44% 0.65% 1.03% 1.07%
Largely the same picture as ever, with the US leading the way, the UK in second and then a sliding scale of Europeans countries. Slovenia continues to pick its way up the pile for obvious reasons!
World Map to demonstrate

2. What's your age?

u17 17-19 20-25 26-30 31-35 36-40 41-50 51+ Total
2015 2.22% 12.04% 41.51% 24.66% 10.68% 4.87% 2.94% 1.08% 1395
2016 1.5% 8.9% 40.8% 24% 12% 5.4% 5.2% 2% 887
2018 Mar 1% 7.1% 33.5% 27.4% 16.2% 7% 5.7% 2.1% 617
2018 Aug 1.7% 9% 33.9% 26.4% 15.5% 7% 5% 1.5% 905
2019 1.5% 6.6% 33.2% 27.5% 16.4% 7.1% 5.8% 2% 972
2020 1.3% 6.8% 31.7% 28% 16.6% 7.2% 5% 2.5% 1420
Pretty much the same as last year, with the usual reddit demographics of majority 20 somethings dominating.

3. What's your gender?

'13 '14 '15 '16 '18 (1) '18 (2) '19 '20
Male 97.2% 97% 94.9% 93.4% 93.3% 93.6% 95.1% 94.9%
Female 2.8% 2.7% 4.8% 5.3% 5.3% 5.4% 3.7% 4.8%
Other - 0.33% 0.29% 0.78% 0.76% - -
Non-Binary - - - - 0.64% 0.99% 1.2% 0.4%
More normality here for reddit.

4. How much of the men's season do you watch/follow?

Type March '18 (%) August '18 (%) 2019 (%) 2020 (%)
Grand Tours 84.7 92.0 90.2 87.3
Monuments 79.1 74.9 79 75.9
WT Stage races 67.4 62.4 70.5 71.7
WT One day races 73.3 59.8 62.3 60.7
Non WT Stage races 32.6 16.7 17.4 25
Non WT One day races 34.8 13.7 17.4 20.7
Literally everything I can consume 35.9 18.1 21.1 27.1
Whilst GT following may be down (somehow), all the lower level stuff is up, which makes sense considering how desperate we have been for any racing during the season shutdown.

5. Do you maintain an interest in women's professional road racing?

Do you maintain an interest in women's professional road racing? '19 '20
Yes 49.8 49.2
No 50.2 50.8
Still very much a half/half interest in women's cycling on the subreddit.

6. How much of the women's season do you follow?

The following is true for the half of you that follows womens cycling.
How Much %
Just the biggest televised events 63.15%
Most of the live televised/delayed coverage stuff 29.08%
All televised racing 5.09%
Down to .Pro & beyond 2.69%

7. How long have you been watching cycling?

How Long %
Under a year 2,95%
1-3 years 19,50%
4-6 years 19,85%
7-9 years 14,10%
10-12 years 13,81%
13-15 years 7,15%
15-20 years 10,73%
20-25 years 6,17%
25 years + 5,75%
Simplified the years a little this time, but whilst we have a fair number of newbies, most people have picked the sport up since around 2013/14.

Sporting Favourites

8. Do you have like/dislike feelings about WT teams?

Once more, 14.4% of people really don't have feelings on the subject.
Of those that do:
AG2R Astana Bahrain Bora CCC Cofidis Quick-Step EF FDJ
Like 352 213 127 770 156 116 847 724 423
Meh 775 620 773 415 889 896 310 448 700
Dislike 52 356 263 31 112 141 71 37 53
Karma 300 -143 -70 739 44 -25 776 677 370
Israel Lotto Michelton Movistar NTT Ineos Jumbo Sunweb Trek UAE
Like 135 364 517 231 101 304 925 279 383 118
Meh 740 764 626 646 931 414 282 805 765 734
Dislike 302 40 52 326 121 562 53 97 42 331
Karma -167 324 465 -95 -20 -258 872 182 341 -213
So, the most popular team this year is Jumbo-Visma, followed by Quick-Step & Bora-hansgrohe. Least popular are Ineos & UAE.
As per usual, no one cares about NTT & CCC, with nearly 81% of users rating NTT as meh. Pretty damning stuff.
Lastly, we have the usual historical comparison of how teams have fared over time, normalised to respondents to that question on the survey.
Things to note then, firstly that the Astana redemption arc is over, seeing them back in the negative, maybe Fulgsangs spring issues helped aid that? The petrodollar teams of UAE & Bahrain are stubbornly negative too, with Israel keeping up the Katusha negative streak. Meanwhile, at the top end, EF & Jumbo go from strength to strength, whilst some others like Sunweb are sliding over time - their transfer policies no doubt helping that.

10. Do you ride a bike regularly?

Answer 2018Mar 2018Aug 2019 2020
For fun 61.5% 63.4% 59.9% 62.9%
For fitness 59.3% 59.6% 54.8% 59.8%
For commuting 46% 46% 45.6% 40%
For racing 20.6% 20.6% 15.9% 17.7%
No, I don't 14.2% 12.9% 14.8% 13.6%
Still a fairly small group of racers out of all of us

11. Out of the sports you practice, is cycling your favourite?

Yes No
58,29% 41,71%
A new addition to the survey prompted by a good point last time, just over half of us rate cycling as the favourite sport we actually do.

12. What other sports do you follow?

Sport #
Association Football / Soccer 50.78%
Formula 1 35.81%
American Football 26.27%
Basketball 22.46%
Track & Field 17.58%
Esports (yes, this includes DotA) 17.30%
Rugby 14.27%
Skiing 14.12%
Ice Hockey 13.63%
Baseball 12.15%
Motorsports (Not including F1) 10.59%
Cricket 10.52%
Tennis 9.53%
Chess 8.97%
Triathlon 8.69%
Biathlon 8.12%
Snooker 7.06%
Golf 6.92%
Swimming 6.85%
Ski Jumping 6.78%
Climbing 5.72%
Martial Arts 5.65%
Handball 5.44%
Darts 5.01%
Speed Skating 5.01%
Football always tops the charts, and Formula 1 continues to rank extremely highly among our userbase. Those who have a little following below 5% include Sailing, Fencing, Surfing, Boxing & Ultra-Running.
Other cycling disciplines
Sport #
Cyclocross 22.10%
Track Cycling 14.34%
MTB 8.97%
BMX 1.20%

13. Out of the sports you follow, is cycling your favourite sport?

Yes No
61.79% 38,21%
Good. Makes sense if you hang out here.

Subreddit stats

14. How often do you participate in a /Peloton Race Thread whilst watching a race?

2015 2016 2018Mar 2018Aug 2019 2020
I always participate in Race Threads during races 2.8% 2% 2.2% 4% 2.5% 3%
I follow Race Threads during races 41.7% 36.7% 38.1% 42.1% 42.5% 38.9%
I often participate in Race Threads during races 16.8% 19% 16.5% 18.9% 15.2% 13%
I rarely/never participate in Race Threads during races 38.7% 41.3% 43.1% 35% 39.8% 45.1%
Slightly less invested than before, reverting back to an older trade.

15. How do you watch Races?

Method 2018Mar 2018Aug 2019 2020
Pirate Streams 62% 46.5% 50.2% 47.9%
Free Local TV 55.7% 64.5% 59.6% 53.9%
Desperately scrabbling for Youtube highlights 37.9% 30.2% 28.2% 24.9%
Paid Streaming services 32.3% 35.4% 38.3% 46.3%
Year on year, paid streaming services go up - the increasing availability of live content legally continues to improve, and so do the numbers on the survey.

16. Where else do you follow races live (in addition to watching them)?

Type 2018Mar 2018Aug 2019 2020
/Peloton race threads 86.2% 83.4% 80.2% 76.9%
Twitter 30.5% 34.7% 33.3% 38.3%
PCS Liveticker - - 30.2% 32%
Official tracker (if available) 24%
The Cyclingnews liveticker 26% 23.5% 21.5% 18.9%
Sporza (site/ticker) 1.89% 9.5% 10.8% 10.8%
NOS Liveblog - 6.8% 7% 9.2%
Steephill 0.52% 13.5% 10.2% 8.2%
/Peloton discord 6.5% 5.4% 7.5% 7.2%
Other cycling forums 15.1% 8.1% 7.6% 7%
feltet.dk - 2.2% 5.4% 5.2%
Facebook 3.8% 5.4% 4% 4.2%
BBC Ticker - 3.5% 2.1% 4.1%
DirectVelo - 1.3% 1.6% 1.8%
Non Cycling Forums - 1.3% 1.2% 1.2%
/cyc/ - 1.3% 1% 0.6%
/peloton IRC ~0 0.8% 0.4% 0.5%
The PCS liveticker continues to have a strong following, whilst the cyclingnews ticker slowly slides into less usage over time.

17. Do you use /Peloton mostly in classic reddit or redesign when on the desktop?

Type 2018 Aug 2019 2020
Classic 75.1% 67.2% 46.2%
Redesign 24.9% 32.8% 53.8%
Time to abandon ship. The end has come.

18. With what version of reddit do you browse the sub?

Version 2019 2020
Official App 17.9 31.1
Desktop Classic 37.8 25.8
3rd Party App 18.3 17.2
Mobile Web 12.4 14.7
Desktop Redesign 13.7 11.2
Phone browsing is very much in vogue.

19. How did you find the sub?

How %
Through other forms of reddit, f.e. /bicycling 48.33%
Too long - can't remember 38.65%
Google search 9,11%
My friend told me 2,28%
I wanted to talk about my exercise bike 0.78%
Twitter 0.5%
Lantern Rouge Youtube 0.28%

Other bits and bobs

20. Did you think back in March we would see any more racing this year?

Yes No
52,81% 47,19%
Despite the threat, we have seen racing again

21. Will we manage to fulfill the rest of the UCI calendar without further Covid-19 issues postponing more races?

Yes No
25.3% 74.7%
Sorry to you 25%, Amstel, Roubaix & a bunch of other races have falled foul of COVID-19 related cancellations.

22. When did you become aware of Alexander Foliforov?

When %
Before the 2016 Giro 3,25%
22nd May, 2016 15,55%
On /pelotonmemes in 2020 21,13%
Who? 60,07%
If you didn't know of the man, watching him demolish the Giro field in 2016 on the stage 15 ITT should help to gain understanding

23. Who will win the 2020 Tour de France?

Rider %
Roglic 52,12%
Bernal 16,57%
Pinot 9,24%
Dumoulin 7,9%
N.Quintana 2,82%
Pogacar 1,41%
Richie Porte 0,35%
We can safely say that most of us were wrong about this one.
That's not a lot of confidence in Richie Porte either, the man who was to finish on the third spot of the podium. Alexander Foliforov (0,23%) had just a tiny number of votes less, and that man wasn't even in the race.

24. What for you was the defining cycling moment of the previous decade?

We had a lot of brilliant suggestions, but these were the clear five favourites when we tabulated the results.
Honorable mentions go to the Giro 2018, which had Tom Dumoulin winning, and of almost identical fascination to many of you - Tom Dumoulin going on someones porta-potty in the middle of the stage.
Little bit of recency bias perhaps, but that's better than ignoring that this was for the last decade and firmly insisting Tom Boonens 2005 WC win was the biggest thing. Special shoutout to almost all the Danes present in /peloton who voted for Mads Pedersens WC win last year. It's an understandable reaction.

25. Any suggestions for the Survey?

New Questions
We promise to feature one of these suggestions in the next survey
Suggestions
We will try to implement this. But it will also skew results.
About the Survey
The subscribers are torn on Women's cycling, nearly a 50/50 split there as the survey showed - The moderators at /peloton are firmly in the "more cycling is better" basket, and we will continue to get as good coverage of womens cycling as possible.
Are you trying to give the moderators PTSD? Because this is how you give the moderators PTSD.

26. Any suggestions for the sub?

ALSJFLKAJSLDKJAØLSJKD:M:CSAM)=#/()=#=/")¤=/)! - Your moderator seems to be out of function. Please stand by while we find you a new moderator
The Weekly threads are great for these types of questions, where several people can contribute and build up once it is understood which information is relevant.
Our experience is that "limited" will never be so, if we're going to moderate it fairly. Moderating is not a popularity contest, but believe it or not, we're actually trying to be as fair as possible. and for that, we need rules that are not subjective. Unless you have a stationary exercise bike.
All of these are good suggestions, but remember that all of you can also contribute - The mods are sometimes stretched thin, specially in the middle of hectic race schedules. It's easier if one of you has a way to contact a rider or a person of interest and can facilitate the initial communication.
We've worked on this! The Official Standard is now as follows: [Race Thread] 202x Race Name – Stage X (Class)
This sounds as a nice community project for the after-season, and hopefully many of you subscribers can contribute.
Come with suggestions on how to tidy it up!
We have chastised all the mods. They are now perfectly trained in gender-neutral pronouns. Be well, fellow being.
If we can implement this for hard liquor, you know we will.
The spoiler rule is one that is discussed frequently - in general - some users absolutely hate it, but a majority love it. Perhaps we'll include a question in the next survey to see how this divide is exactly.
We actually do - whenever there is a matter of life or death, we think public information is more important than a spoiler rule. But at the same time, we try to collect all the different posts into one main thread, so to keep things focused and letting very speculative posts meet with hard evidence from other sources.
This is a tough ask of the internet. While we can agree that voting should be done accordingly to what insights they bring, not subjective opinions, it is very hard to turn that type of thinking around. We can ask of you, our subscribers, that you please think twice about hitting that downvote button, and only do so because of you think a post is factually incorrect, not because it differs with your own subjective opinion.
That's the primary analysis of the survey! Feel free to contribute with how you experience things here!
submitted by PelotonMod to peloton [link] [comments]

Wall Street Week Ahead for the trading week beginning June 29th, 2020

Good Saturday afternoon to all of you here on StockMarket. 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 June 29th, 2020.

Fragile economic recovery faces first big test with June jobs report in the week ahead - (Source)

The second half of 2020 is nearly here, and now it’s up to the economy to prove that the stock market was right about a sharp comeback in growth.
The first big test will be the June jobs report, out on Thursday instead of its usual Friday release due to the July 4 holiday. According to Refinitiv, economists expect 3 million jobs were created, after May’s surprise gain of 2.5 million payrolls beat forecasts by a whopping 10 million jobs.
“If it’s stronger, it will suggest that the improvement is quicker, and that’s kind of what we saw in May with better retail sales, confidence was coming back a little and auto sales were better,” said Kevin Cummins, chief U.S. economist at NatWest Markets.
The second quarter winds down in the week ahead as investors are hopeful about the recovery but warily eyeing rising cases of Covid-19 in a number of states.
Stocks were lower for the week, as markets reacted to rising cases in Texas, Florida and other states. Investors worry about the threat to the economic rebound as those states move to curb some activities. The S&P 500 is up more than 16% so far for the second quarter, and it is down nearly 7% for the year. Friday’s losses wiped out the last of the index’s June gains.
“I think the stock market is looking beyond the valley. It is expecting a V-shaped economic recovery and a solid 2021 earnings picture,” said Sam Stovall, chief investment strategist at CFRA. He expects large-cap company earnings to be up 30% next year, and small-cap profits to bounce back by 140%.
“I think the second half needs to be a ‘show me’ period, proving that our optimism was justified, and we’ll need to see continued improvement in the economic data, and I think we need to see upward revisions to earnings estimates,” Stovall said.
Liz Ann Sonders, chief investment strategist at Charles Schwab, said she expects the recovery will not be as smooth as some expect, particularly considering the resurgence of virus outbreaks in sunbelt states and California.
“Now as I watch what’s happening I think it’s more likely to be rolling Ws,” rather than a V, she said. “It’s not just predicated on a second wave. I’m not sure we ever exited the first wave.”
Even without actual state shutdowns, the virus could slow economic activity. “That doesn’t mean businesses won’t shut themselves down, or consumers won’t back down more,” she said.

Election ahead

In the second half of the year, the market should turn its attention to the election, but Sonders does not expect much reaction to it until after Labor Day. RealClearPolitics average of polls shows Democrat Joe Biden leading President Donald Trump by 10 percentage points, and the odds of a Democratic sweep have been rising.
Biden has said he would raise corporate taxes, and some strategists say a sweep would be bad for business, due to increased regulation and higher taxes. Trump is expected to continue using tariffs, which unsettles the market, though both candidates are expected to take a tough stance on China.
“If it looks like the Senate stays Republican than there’s less to worry about in terms of policy changes,” Sonders said. “I don’t think it’s ever as binary as some people think.”
Stovall said a quick study shows that in the four presidential election years back to 1960, where the first quarter was negative, and the second quarter positive, stocks made gains in the second half.
Those were 1960 when John Kennedy took office, 1968, when Richard Nixon won; 1980 when Ronald Reagan’s was elected to his first term; and 1992, the first win by Bill Clinton. Coincidentally, in all of those years, the opposing party gained control of the White House.

Stimulus

The stocks market’s strong second-quarter showing came after the Fed and Congress moved quickly to inject the economy with trillions in stimulus. That unlocked credit markets and triggered a stampede by companies to restructure or issue debt. About $2 trillion in fiscal spending was aimed at consumers and businesses, who were in sudden need of cash after the abrupt shutdown of the economy.
Fed Chairman Jerome Powell and Treasury Secretary Steven Mnuchin both testify before the House Financial Services Committee Tuesday on the response to the virus. That will be important as markets look ahead to another fiscal package from Congress this summer, which is expected to provide aid to states and local governments; extend some enhanced benefits for unemployment, and provide more support for businesses.
“So much of it is still so fluid. There are a bunch of fiscal items that are rolling off. There’s talk about another fiscal stimulus payment like they did last time with a $1,200 check,” said Cummins.
Strategists expect Congress to bicker about the size and content of the stimulus package but ultimately come to an agreement before enhanced unemployment benefits run out at the end of July. Cummins said state budgets begin a new year July 1, and states with a critical need for funds may have to start letting workers go, as they cut expenses.
The Trump administration has indicated the jobs report Thursday could help shape the fiscal package, depending on what it shows. The federal supplement to state unemployment benefits has been $600 a week, but there is opposition to extending that, and strategists expect it to be at least cut in half.
The unemployment rate is expected to fall to 12.2% from 13.3% in May. Cummins said he had expected 7.2 million jobs, well above the consensus, and an unemployment rate of 11.8%.
As of last week, nearly 20 million people were collecting state unemployment benefits, and millions more were collecting under a federal pandemic aid program.
“The magnitude here and whether it’s 3 million or 7 million is kind of hard to handicap to begin with,” Cummins said. Economists have preferred to look at unemployment claims as a better real time read of employment, but they now say those numbers could be impacted by slow reporting or double filing.
“There’s no clarity on how you define the unemployed in the Covid 19 environment,” said Chris Rupkey, chief financial economist at MUFG Union Bank. “If there’s 30 million people receiving insurance, unemployment should be above 20%.

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!)

When Will The Economy Recover?

The economy is moving in the right direction, as many economic data points are coming in substantially better than what the economists expected. From May job gains coming in more than 10 million higher than expected and retail sales soaring a record 18%, how quickly the economy is bouncing back has surprised nearly everyone.
“As good as the recent economic data has been, we want to make it clear, it could still take years for the economy to fully come back,” explained LPL Financial Senior Market Strategist Ryan Detrick. “Think of it like building a house. You get all the big stuff done early, then some of the small things take so much longer to finish; I’m looking at you crown molding.”
Here’s the hard truth; it might take years for all of the jobs that were lost to fully recover. In fact, during the 10 recessions since 1950, it took an average of 30 months for lost jobs to finally come back. As the LPL Chart of the Day shows, recoveries have taken much longer lately. In fact, it took four years for the jobs lost during the tech bubble recession of the early 2000s to come back and more than six years for all the jobs lost to come back after the Great Recession. Given many more jobs were lost during this recession, it could takes many years before all of them indeed come back.
(CLICK HERE FOR THE CHART!)
The economy is going the right direction, and if there is no major second wave outbreak it could surprise to the upside. Importantly, this economic recovery will still be a long and bumpy road.

Nasdaq - Russell Spread Pulling the Rubber Band Tight

The Nasdaq has been outperforming every other US-based equity index over the last year, and nowhere has the disparity been wider than with small caps. The chart below compares the performance of the Nasdaq and Russell 2000 over the last 12 months. While the performance disparity is wide now, through last summer, the two indices were tracking each other nearly step for step. Then last fall, the Nasdaq started to steadily pull ahead before really separating itself in the bounce off the March lows. Just to illustrate how wide the gap between the two indices has become, over the last six months, the Nasdaq is up 11.9% compared to a decline of 15.8% for the Russell 2000. That's wide!
(CLICK HERE FOR THE CHART!)
In order to put the recent performance disparity between the two indices into perspective, the chart below shows the rolling six-month performance spread between the two indices going back to 1980. With a current spread of 27.7 percentage points, the gap between the two indices hasn't been this wide since the days of the dot-com boom. Back in February 2000, the spread between the two indices widened out to more than 50 percentage points. Not only was that period extreme, but ten months before that extreme reading, the spread also widened out to more than 51 percentage points. The current spread is wide, but with two separate periods in 1999 and 2000 where the performance gap between the two indices was nearly double the current level, that was a period where the Nasdaq REALLY outperformed small caps.
(CLICK HERE FOR THE CHART!)
To illustrate the magnitude of the Nasdaq's outperformance over the Russell 2000 from late 1998 through early 2000, the chart below shows the performance of the two indices beginning in October 1998. From that point right on through March of 2000 when the Nasdaq peaked, the Nasdaq rallied more than 200% compared to the Russell 2000 which was up a relatively meager 64%. In any other environment, a 64% gain in less than a year and a half would be excellent, but when it was under the shadow of the surging Nasdaq, it seemed like a pittance.
(CLICK HERE FOR THE CHART!)

Share Price Performance

The US equity market made its most recent peak on June 8th. From the March 23rd low through June 8th, the average stock in the large-cap Russell 1,000 was up more than 65%! Since June 8th, the average stock in the index is down more than 11%. Below we have broken the index into deciles (10 groups of 100 stocks each) based on simple share price as of June 8th. Decile 1 (marked "Highest" in the chart) contains the 10% of stocks with the highest share prices. Decile 10 (marked "Lowest" in the chart) contains the 10% of stocks with the lowest share prices. As shown, the highest priced decile of stocks are down an average of just 4.8% since June 8th, while the lowest priced decile of stocks are down an average of 21.5%. It's pretty remarkable how performance gets weaker and weaker the lower the share price gets.
(CLICK HERE FOR THE CHART!)

Nasdaq 2% Pullbacks From Record Highs

It's hard to believe that sentiment can change so fast in the market that one day investors and traders are bidding up stocks to record highs, but then the next day sell them so much that it takes the market down over 2%. That's exactly what happened not only in the last two days but also two weeks ago. While the 5% pullback from a record high back on June 10th took the Nasdaq back below its February high, this time around, the Nasdaq has been able to hold above those February highs.
(CLICK HERE FOR THE CHART!)
In the entire history of the Nasdaq, there have only been 12 periods prior to this week where the Nasdaq closed at an all-time high on one day but dropped more than 2% the next day. Those occurrences are highlighted in the table below along with the index's performance over the following week, month, three months, six months, and one year. We have also highlighted each occurrence that followed a prior one by less than three months in gray. What immediately stands out in the table is how much gray shading there is. In other words, these types of events tend to happen in bunches, and if you count the original occurrence in each of the bunches, the only two occurrences that didn't come within three months of another occurrence (either before or after) were July 1986 and May 2017.
In terms of market performance following prior occurrences, the Nasdaq's average and median returns were generally below average, but there is a pretty big caveat. While the average one-year performance was a gain of 1.0% and a decline of 23.6% on a median basis, the six occurrences that came between December 1999 and March 2000 all essentially cover the same period (which was very bad) and skew the results. Likewise, the three occurrences in the two-month stretch from late November 1998 through January 1999 where the Nasdaq saw strong gains also involves a degree of double-counting. As a result of these performances at either end of the extreme, it's hard to draw any trends from the prior occurrences except to say that they are typically followed by big moves in either direction. The only time the Nasdaq wasn't either 20% higher or lower one year later was in 1986.
(CLICK HERE FOR THE CHART!)

Christmas in July: NASDAQ’s Mid-Year Rally

In the mid-1980s the market began to evolve into a tech-driven market and the market’s focus in early summer shifted to the outlook for second quarter earnings of technology companies. Over the last three trading days of June and the first nine trading days in July, NASDAQ typically enjoys a rally. This 12-day run has been up 27 of the past 35 years with an average historical gain of 2.5%. This year the rally may have begun a day early, today and could last until on or around July 14.
After the bursting of the tech bubble in 2000, NASDAQ’s mid-year rally had a spotty track record from 2002 until 2009 with three appearances and five no-shows in those years. However, it has been quite solid over the last ten years, up nine times with a single mild 0.1% loss in 2015. Last year, NASDAQ advanced a solid 4.6% during the 12-day span.
(CLICK HERE FOR THE CHART!)

Tech Historically Leads Market Higher Until Q3 of Election Years

As of yesterday’s close DJIA was down 8.8% year-to-date. S&P 500 was down 3.5% and NASDAQ was up 12.1%. Compared to the typical election year, DJIA and S&P 500 are below historical average performance while NASDAQ is above average. However this year has not been a typical election year. Due to the covid-19, the market suffered the damage of the shortest bear market on record and a new bull market all before the first half of the year has come to an end.
In the surrounding Seasonal Patten Charts of DJIA, S&P 500 and NASDAQ, we compare 2020 (as of yesterday’s close) to All Years and Election Years. This year’s performance has been plotted on the right vertical axis in each chart. This year certainly has been unlike any other however some notable observations can be made. For DJIA and S&P 500, January, February and approximately half of March have historically been weak, on average, in election years. This year the bear market ended on March 23. Following those past weak starts, DJIA and S&P 500 historically enjoyed strength lasting into September before experiencing any significant pullback followed by a nice yearend rally. NASDAQ’s election year pattern differs somewhat with six fewer years of data, but it does hint to a possible late Q3 peak.
(CLICK HERE FOR THE CHART!)
(CLICK HERE FOR THE CHART!)
(CLICK HERE FOR THE CHART!)

STOCK MARKET VIDEO: Stock Market Analysis Video for Week Ending June 26th, 2020

(CLICK HERE FOR THE YOUTUBE VIDEO!

STOCK MARKET VIDEO: ShadowTrader Video Weekly 6.28.20

(CLICK HERE FOR THE YOUTUBE VIDEO!)
Here are the most notable companies (tickers) reporting earnings in this upcoming trading week ahead-
  • $MU
  • $GIS
  • $FDX
  • $CAG
  • $STZ
  • $CPRI
  • $XYF
  • $AYI
  • $MEI
  • $UNF
  • $CDMO
  • $SCHN
  • $LNN
  • $CULP
  • $XELA
  • $KFY
  • $RTIX
  • $JRSH
(CLICK HERE FOR NEXT WEEK'S MOST NOTABLE EARNINGS RELEASES!)
(CLICK HERE FOR NEXT WEEK'S HIGHEST VOLATILITY EARNINGS RELEASES!)
(CLICK HERE FOR MOST NOTABLE EARNINGS RELEASES FOR THE NEXT 4 WEEKS!)
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 6.29.20 Before Market Open:

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

Monday 6.29.20 After Market Close:

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

Tuesday 6.30.20 Before Market Open:

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

Tuesday 6.30.20 After Market Close:

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

Wednesday 7.1.20 Before Market Open:

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

Wednesday 7.1.20 After Market Close:

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

Thursday 7.2.20 Before Market Open:

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

Thursday 7.2.20 After Market Close:

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

Friday 7.3.20 Before Market Open:

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

Friday 7.3.20 After Market Close:

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

Micron Technology, Inc. $48.49

Micron Technology, Inc. (MU) is confirmed to report earnings at approximately 4:00 PM ET on Monday, June 29, 2020. The consensus earnings estimate is $0.71 per share on revenue of $5.27 billion and the Earnings Whisper ® number is $0.70 per share. Investor sentiment going into the company's earnings release has 71% expecting an earnings beat The company's guidance was for earnings of $0.40 to $0.70 per share. Consensus estimates are for earnings to decline year-over-year by 29.00% with revenue increasing by 10.07%. Short interest has increased by 7.6% since the company's last earnings release while the stock has drifted higher by 8.0% from its open following the earnings release to be 0.9% below its 200 day moving average of $48.94. Overall earnings estimates have been revised lower since the company's last earnings release. On Thursday, June 11, 2020 there was some notable buying of 46,037 contracts of the $60.00 call expiring on Friday, July 17, 2020. Option traders are pricing in a 4.6% move on earnings and the stock has averaged a 8.4% move in recent quarters.

(CLICK HERE FOR THE CHART!)

General Mills, Inc. $59.21

General Mills, Inc. (GIS) is confirmed to report earnings at approximately 7:00 AM ET on Wednesday, July 1, 2020. The consensus earnings estimate is $1.04 per share on revenue of $4.89 billion and the Earnings Whisper ® number is $1.10 per share. Investor sentiment going into the company's earnings release has 69% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 25.30% with revenue increasing by 17.50%. Short interest has decreased by 9.4% since the company's last earnings release while the stock has drifted higher by 2.7% from its open following the earnings release to be 7.8% above its 200 day moving average of $54.91. Overall earnings estimates have been revised higher since the company's last earnings release. On Wednesday, June 24, 2020 there was some notable buying of 8,573 contracts of the $60.00 call expiring on Friday, July 17, 2020. Option traders are pricing in a 6.6% move on earnings and the stock has averaged a 3.0% move in recent quarters.

(CLICK HERE FOR THE CHART!)

FedEx Corp. $130.08

FedEx Corp. (FDX) is confirmed to report earnings at approximately 4:00 PM ET on Tuesday, June 30, 2020. The consensus earnings estimate is $1.42 per share on revenue of $16.31 billion and the Earnings Whisper ® number is $1.65 per share. Investor sentiment going into the company's earnings release has 61% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 71.66% with revenue decreasing by 8.41%. Short interest has increased by 10.4% since the company's last earnings release while the stock has drifted higher by 43.9% from its open following the earnings release to be 7.6% below its 200 day moving average of $140.75. Overall earnings estimates have been revised lower since the company's last earnings release. On Thursday, June 25, 2020 there was some notable buying of 1,768 contracts of the $145.00 call expiring on Thursday, July 2, 2020. Option traders are pricing in a 4.6% move on earnings and the stock has averaged a 7.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Conagra Brands, Inc. $32.64

Conagra Brands, Inc. (CAG) is confirmed to report earnings at approximately 7:30 AM ET on Tuesday, June 30, 2020. The consensus earnings estimate is $0.66 per share on revenue of $3.24 billion and the Earnings Whisper ® number is $0.69 per share. Investor sentiment going into the company's earnings release has 66% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 83.33% with revenue increasing by 23.99%. Short interest has decreased by 38.3% since the company's last earnings release while the stock has drifted higher by 6.3% from its open following the earnings release to be 6.4% above its 200 day moving average of $30.68. Overall earnings estimates have been revised higher since the company's last earnings release. On Thursday, June 11, 2020 there was some notable buying of 3,239 contracts of the $29.00 put expiring on Thursday, July 2, 2020. Option traders are pricing in a 4.7% move on earnings and the stock has averaged a 10.8% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Constellation Brands, Inc. $168.99

Constellation Brands, Inc. (STZ) is confirmed to report earnings at approximately 7:30 AM ET on Wednesday, July 1, 2020. The consensus earnings estimate is $1.91 per share on revenue of $1.97 billion and the Earnings Whisper ® number is $2.12 per share. Investor sentiment going into the company's earnings release has 53% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 13.57% with revenue decreasing by 13.69%. Short interest has increased by 20.8% since the company's last earnings release while the stock has drifted higher by 25.2% from its open following the earnings release to be 5.2% below its 200 day moving average of $178.34. Overall earnings estimates have been revised lower since the company's last earnings release. On Tuesday, June 9, 2020 there was some notable buying of 888 contracts of the $195.00 call expiring on Friday, October 16, 2020. Option traders are pricing in a 3.1% move on earnings and the stock has averaged a 5.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Capri Holdings Limited $14.37

Capri Holdings Limited (CPRI) is confirmed to report earnings at approximately 6:30 AM ET on Wednesday, July 1, 2020. The consensus earnings estimate is $0.32 per share on revenue of $1.18 billion and the Earnings Whisper ® number is $0.34 per share. Investor sentiment going into the company's earnings release has 39% expecting an earnings beat The company's guidance was for earnings of $0.68 to $0.73 per share. Consensus estimates are for earnings to decline year-over-year by 49.21% with revenue decreasing by 12.20%. Short interest has increased by 35.1% since the company's last earnings release while the stock has drifted lower by 56.7% from its open following the earnings release to be 44.0% below its 200 day moving average of $25.67. Overall earnings estimates have been revised lower since the company's last earnings release. On Thursday, June 4, 2020 there was some notable buying of 11,042 contracts of the $17.50 put expiring on Friday, August 21, 2020. Option traders are pricing in a 10.8% move on earnings and the stock has averaged a 6.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

X Financial $0.92

X Financial (XYF) is confirmed to report earnings at approximately 5:00 PM ET on Tuesday, June 30, 2020. The consensus earnings estimate is $0.09 per share. Investor sentiment going into the company's earnings release has 25% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 55.00% with revenue increasing by 763.52%. Short interest has increased by 1.0% since the company's last earnings release while the stock has drifted lower by 1.2% from its open following the earnings release to be 37.7% below its 200 day moving average of $1.47. Overall earnings estimates have been unchanged since the company's last earnings release. The stock has averaged a 4.9% move on earnings in recent quarters.

(CLICK HERE FOR THE CHART!)

Acuity Brands, Inc. $84.45

Acuity Brands, Inc. (AYI) is confirmed to report earnings at approximately 8:40 AM ET on Tuesday, June 30, 2020. The consensus earnings estimate is $1.14 per share on revenue of $809.25 million and the Earnings Whisper ® number is $1.09 per share. Investor sentiment going into the company's earnings release has 42% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 51.90% with revenue decreasing by 14.60%. Short interest has increased by 48.5% since the company's last earnings release while the stock has drifted higher by 2.4% from its open following the earnings release to be 23.4% below its 200 day moving average of $110.25. Overall earnings estimates have been revised lower since the company's last earnings release. Option traders are pricing in a 9.2% move on earnings and the stock has averaged a 8.2% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Methode Electronics, Inc. $30.02

Methode Electronics, Inc. (MEI) is confirmed to report earnings at approximately 7:00 AM ET on Tuesday, June 30, 2020. The consensus earnings estimate is $0.77 per share on revenue of $211.39 million. Investor sentiment going into the company's earnings release has 45% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 24.19% with revenue decreasing by 20.53%. Short interest has increased by 6.2% since the company's last earnings release while the stock has drifted lower by 1.7% from its open following the earnings release to be 9.0% below its 200 day moving average of $32.97. Overall earnings estimates have been revised lower since the company's last earnings release. Option traders are pricing in a 18.4% move on earnings and the stock has averaged a 8.1% move in recent quarters.

(CLICK HERE FOR THE CHART!)

UniFirst Corporation $170.54

UniFirst Corporation (UNF) is confirmed to report earnings at approximately 8:00 AM ET on Wednesday, July 1, 2020. The consensus earnings estimate is $1.17 per share on revenue of $378.28 million and the Earnings Whisper ® number is $1.25 per share. Investor sentiment going into the company's earnings release has 44% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 52.44% with revenue decreasing by 16.63%. Short interest has decreased by 2.7% since the company's last earnings release while the stock has drifted higher by 14.1% from its open following the earnings release to be 8.4% below its 200 day moving average of $186.14. Overall earnings estimates have been revised lower since the company's last earnings release. The stock has averaged a 7.0% move on earnings 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 StockMarket.
submitted by bigbear0083 to StockMarket [link] [comments]

Games playable on Intel HD4400 (and how to get them running) in 2020

I used to be a "LoFi Gamer".
It wasn't ideal BUT I managed to play thru tonnes of modern games thanks to a bit of research and elbow grease. The obvious choice was to eventually upgrade, which I did and I am relieved to have my new set up. HOWEVER these things take time, and you don' t need to miss out whilst you're saving your pennies up!!
The games listed below are my complete list of titles that I managed to run successfully, between 30 - 60 frames per second and I think it's pretty amazing I was running games released in 2020 from a beat up old Dell laptop that cost me under £300 4 years ago.
Hopefully this guide will help some people out there who, like me, were chomping at the bit to get a powerful setup but didn't want to miss out on some great gaming experiences in the meantime.

My laptop specs were: Intel HD4400 // Intel Core i5 // Win 10 // 8G Ram

Additionally I installed:
- Intel Extreme Tuning Utility (overclocking tool, Google / Youtube for user guides, very easy)
- SpeedFan (fan control application, because your laptop will be as hot as a toaster otherwise)
- NVIDIA 3D Vision Driver 353.62
- NVIDIA Graphics Driver 353.62
- NVIDIA HD Audio Driver 1.3.34.3
- NVIDIA nView 146.33
- NVIDIA PhysX System Software 9.18.0907
- NVIDIA Control Panel

I also recommend:
- Updating DirectX and Intel graphics card drivers
- Setting Windows 10 to "Game Mode"
- Optimising the "Visual Effects Settings" by selecting the "Adjust for Best Performance" option
- Using a "High Performance Power Plan"
- Playing the games with the laptop battery removed, taking power only from the mains
- Tweaking each games, in-game graphic settings individually to find the right balance between looks and performance
If you need help or advice about anything listed above, a quick Google search using the search terms I have provided you with, will give you all the insight you need. It is all available freeware and easy peasy to get hold of, especially as you now know exactly what to search for and download.

For the best results, it's essential you get/do everything on the list and it's probably worth mentioning that the overclocking and fan control software needs to be running before you launch a game (duh).
It also goes without saying that you WILL NOT BE RUNNING ANY GAMES AT MAX SETTINGS. We're prioritising frames per second over everything else here.

And so, without further ado...

THE LIST (A-Z + year of release)
- Alien Isolation (2014)
- American Fugitive (2019)
- Aragami (2016)
- Arrest of a stone Buddah (2020)
- Assassins Creed Black Flag (2014)
- Assassins Creed Chronicles (China, India and Russia) (2015)
- Assasins Creed Rogue (2014)
- Axiom Verge (2015)
- Bayonetta (2009)
- BELOW (2018)
- Bendy and the Ink Machine (2017)
- Betrayer (2014)
- Binary Domain (2012)
- Blasphemous (2019)
- Blazblue: Calamity Trigger (2008)
- Bully: Scholarship Edition (2006)
- Carrion (2020)
- Catherine Classic (2011)
- Cloudpunk (2020)
- Condemned: Criminal Origins (2006)
- Cuphead (2017)
- D4: Dark Dreams Don't Die (2014)
- Darkwood (2017)
- DEADBOLT (2016)
- Dead Cells (2017)
- Deadly Premonition: The Directors Cut (2013)
- Death to Spies (2007)
- Desperados III (2020)
- Deus EX: Human Revolution Directors Cut (2011)
- Deus Ex: Breach (2017)
- Disco Elysium (2019)
- DOOM 3 (2004)
- DOOM (2016)
- Don't Starve (2013)
- Don't Starve Together (2016)
- The Dream Machine (2012)
- Dust: An Elysian Tail (2013)
- Enter the Gungeon (2016)
- The Flame In The Flood (2016)
- The friends of Ringo Ishikawa (2018)
- Furi (2016)
- The Guild 2: renaissance (2010)
- Grand Theft Auto V (2013)
- GRIP: Combat Racing (2016)
- Gunfire Reborn (2020, still in Early Access)
- Hades (2020, still in Early Access)
- High Hell (2017)
- Hob (2017)
- Hollow Knight (2017)
- The Hong Kong Massacre (2019)
- Hotline Miami ( I+II) (2012 // 2015)
- How To Survive 2 (2016)
- Hyper Light Drifter (2016)
- INSIDE (2016)
- Ion Fury (2019)
- Just Cause 2 (+ JC2MP) (2013)
- Just Cause 3 (2015)
- Just Shapes & Beats (2018)
- KATANA KAMI: A Way of the Samurai Story (2020)
- Katana Kata (2020, still in Early Access)
- Katana ZERO (2019)
- Kenshi (2018)
- Killer Is Dead: Nightmare Edition (2014)
- killer7 (2018)
- L.A. Noire (2011)
- Lucius (I+II) (2012 // 2015)
- Lucius Demake (2016)
- Mad Max (2015)
- Mafia II (Classic) (2012)
- Mark of the Ninja (2016)
- MAXIMUM Action (2020, still in Early Access)
- Max Payne 3 (2012)
- The Messenger (2018)
- Metal Gear Rising: Revengeance (2014)
- Metal Gear Solid V: Ground Zeroes (2014)
- Metal Gear Solid V: The Phantom Pain (2015)
- Mother Russia Bleeds (2016)
- Omensight: Definitive Edition (2018)
- Ori and the Blind Forest: Definitive Edition (2016)
- Ori and the Will of the Wisps (2020)
- Pathologic 2 (2019)
- Pathologic Classic HD (2015)
- Persona 4 Golden (2020)
- POSTAL 2 (2003)
- Project Warlock (2018)
- Rain World (2017)
- Redeemer: Enhanced Edition (2017)
- Rim World (2018)
- Risk of Rain (2013)
- Risk of Rain 2 (2020)
- Ryse: Son of Rome (2014)
- Saints Row 2 (2009)
- Saints Row The Third (2011)
- Saints Row IV (2014)
- Saints Row: Gat out of Hell (2015)
- Salt and Sanctuary (2016)
- Samurai Shodown V Special (2019)
- Shadow Tactics: Blades of the Shogun (2016)
- Shadow Warrior (2013)
- Shadow Warrior 2 (?2016)
- Shenmue I & II (2018)
- Sleeping Dogs Definitive Edition (2014)
- State Of Mind (2018)
- Street Fighter 4 (2008)
- Street Fighter X Tekken (2012)
- Streets of Rage 4 (2020)
- Streets of Rogue (2019)
- Strider (2014)
- Subterrain (2016)
- Sunless Sea (2015)
- Sunless Skies (2019)
- SUPERHOT (2016)
- SUPERHOT: MIND CONTROL DELETE (2020)
- SYNTHETIK (2018)
- The Takeover (2019)
- TEKKEN 7 (201
- Thief (2014)
- Thief Deadly Shadows (2004)
- This War of Mine (2014)
- Thumper (2016)
- Transistor (2014)
- Travis Strikes Again: No More Heroes (2019)
- Ultrakill (2020)
- Unforgiving - A Northern Hymn (2017)
- Valfaris (2019)
- Way Of The Samurai 4 (2015)
- West of Dead (2020)
- The Witcher 2 (2011)
- Wonder Boy: The Dragon's Trap (2017)
- XCOM 2 (2016)
- Yakuza 0 (2017)
- Yakuza Kiwami (2019)

Happy gaming!
My advice is to buy these games during a Steam sale, alongside a Logitech F310 controller and enjoy the hours of entertainment ahead of you. With even more trial and error, you could add loads of games to this list too. Don't forget the Steam refund policy works in your favour to see if you can get a game running on your setup :)

*One last (boring) thing\*
This is abusing your laptop and in reality asking it to do something it wasn't built to. Be aware that you could shorten its lifespan through the constant demands of gaming and the potential risk from over-heating caused by regular gaming sessions for hours at a time is a real one.
Your plan should be to upgrade in the future... But until then I'd say treat your laptop like an emulator!!

- Aggressive Chicken
submitted by Aggressive_Chicken_ to u/Aggressive_Chicken_ [link] [comments]

AJ ALMENDINGER

glimpse into the future of Roblox

Our vision to bring the world together through play has never been more relevant than it is now. As our founder and CEO, David Baszucki (a.k.a. Builderman), mentioned in his keynote, more and more people are using Roblox to stay connected with their friends and loved ones. He hinted at a future where, with our automatic machine translation technology, Roblox will one day act as a universal translator, enabling people from different cultures and backgrounds to connect and learn from each other.
During his keynote, Builderman also elaborated upon our vision to build the Metaverse; the future of avatar creation on the platform (infinitely customizable avatars that allow any body, any clothing, and any animation to come together seamlessly); more personalized game discovery; and simulating large social gatherings (like concerts, graduations, conferences, etc.) with tens of thousands of participants all in one server. We’re still very early on in this journey, but if these past five months have shown us anything, it’s clear that there is a growing need for human co-experience platforms like Roblox that allow people to play, create, learn, work, and share experiences together in a safe, civil 3D immersive space.
Up next, our VP of Developer Relations, Matt Curtis (a.k.a. m4rrh3w), shared an update on all the things we’re doing to continue empowering developers to create innovative and exciting content through collaboration, support, and expertise. He also highlighted some of the impressive milestones our creator community has achieved since last year’s RDC. Here are a few key takeaways:
And lastly, our VP of Engineering, Technology, Adam Miller (a.k.a. rbadam), unveiled a myriad of cool and upcoming features developers will someday be able to sink their teeth into. We saw a glimpse of procedural skies, skinned meshes, more high-quality materials, new terrain types, more fonts in Studio, a new asset type for in-game videos, haptic feedback on mobile, real-time CSG operations, and many more awesome tools that will unlock the potential for even bigger, more immersive experiences on Roblox.

Vibin’

Despite the virtual setting, RDC just wouldn’t have been the same without any fun party activities and networking opportunities. So, we invited special guests DJ Hyper Potions and cyber mentalist Colin Cloud for some truly awesome, truly mind-bending entertainment. Yoga instructor Erin Gilmore also swung by to inspire attendees to get out of their chair and get their body moving. And of course, we even had virtual rooms dedicated to karaoke and head-to-head social games, like trivia and Pictionary.
Over on the networking side, Team Adopt Me, Red Manta, StyLiS Studios, and Summit Studios hosted a virtual booth for attendees to ask questions, submit resumes, and more. We also had a networking session where three participants would be randomly grouped together to get to know each other.

What does Roblox mean to you?

We all know how talented the Roblox community is from your creations. We’ve heard plenty of stories over the years about how Roblox has touched your lives, how you’ve made friendships, learned new skills, or simply found a place where you can be yourself. We wanted to hear more. So, we asked attendees: What does Roblox mean to you? How has Roblox connected you? How has Roblox changed your life? Then, over the course of RDC, we incorporated your responses into this awesome mural.
📷
Created by Alece Birnbach at Graphic Recording Studio

Knowledge is power

This year’s breakout sessions included presentations from Roblox developers and staff members on the latest game development strategies, a deep dive into the Roblox engine, learning how to animate with Blender, tools for working together in teams, building performant game worlds, and the new Creator Dashboard. Dr. Michael Rich, Associate Professor at Harvard Medical School and Physician at Boston Children’s Hospital, also led attendees through a discussion on mental health and how to best take care of you and your friends’ emotional well-being, especially now during these challenging times.
📷
Making the Dream Work with Teamwork (presented by Roblox developer Myzta)
In addition to our traditional Q&A panel with top product and engineering leaders at Roblox, we also held a special session with Builderman himself to answer the community’s biggest questions.
📷
Roblox Product and Engineering Q&A Panel

2020 Game Jam

The Game Jam is always one of our favorite events of RDC. It’s a chance for folks to come together, flex their development skills, and come up with wildly inventive game ideas that really push the boundaries of what’s possible on Roblox. We had over 60 submissions this year—a new RDC record.
Once again, teams of up to six people from around the world had less than 24 hours to conceptualize, design, and publish a game based on the theme “2020 Vision,” all while working remotely no less! To achieve such a feat is nothing short of awe-inspiring, but as always, our dev community was more than up for the challenge. I’ve got to say, these were some of the finest creations we’ve seen.
WINNERS
Best in Show: Shapescape Created By: GhettoMilkMan, dayzeedog, maplestick, theloudscream, Brick_man, ilyannna You awaken in a strange laboratory, seemingly with no way out. Using a pair of special glasses, players must solve a series of anamorphic puzzles and optical illusions to make their escape.
Excellence in Visual Art: agn●sia Created By: boatbomber, thisfall, Elttob An obby experience unlike any other, this game is all about seeing the world through a different lens. Reveal platforms by switching between different colored lenses and make your way to the end.
Most Creative Gameplay: Visions of a perspective reality Created By: Noble_Draconian and Spathi Sometimes all it takes is a change in perspective to solve challenges. By switching between 2D and 3D perspectives, players can maneuver around obstacles or find new ways to reach the end of each level.
Outstanding Use of Tech: The Eyes of Providence Created By: Quenty, Arch_Mage, AlgyLacey, xJennyBeanx, Zomebody, Crykee This action/strategy game comes with a unique VR twist. While teams fight to construct the superior monument, two VR players can support their minions by collecting resources and manipulating the map.
Best Use of Theme: Sticker Situation Created By: dragonfrosting and Yozoh Set in a mysterious art gallery, players must solve puzzles by manipulating the environment using a magic camera and stickers. Snap a photograph, place down a sticker, and see how it changes the world.
OTHER TOP PICKS
HONORABLE MENTIONS
For the rest of the 2020 Game Jam submissions, check out the list below:
20-20 Vision | 20/20 Vision | 2020 Vision, A Crazy Perspective | 2020 Vision: Nyon | A Wild Trip! | Acuity | Best Year Ever | Better Half | Bloxlabs | Climb Stairs to 2021 | Double Vision (Team hey apple) | Eyebrawl | Eyeworm Exam | FIRE 2020 | HACKED | Hyperspective | Lucid Scream | Mystery Mansion | New Years at the Museum | New Year’s Bash | Poor Vision | Predict 2020 | RBC News | Retrovertigo | Second Wave | see no evil | Sight Fight | Sight Stealers | Spectacles Struggle | Specter Spectrum | Survive 2020 | The Lost Chicken Leg | The Outbreak | The Spyglass | Time Heist | Tunnel Vision | Virtual RDC – The Story | Vision (Team Freepunk) | Vision (Team VIP People ####) | Vision Developers Conference 2020 | Vision Is Key | Vision Perspective | Vision Racer | Visions | Zepto
And last but not least, we wanted to give a special shout out to Starboard Studios. Though they didn’t quite make it on time for our judges, we just had to include Dave’s Vision for good measure. 📷
Thanks to everyone who participated in the Game Jam, and congrats to all those who took home the dub in each of our categories this year. As the winners of Best in Show, the developers of Shapescape will have their names forever engraved on the RDC Game Jam trophy back at Roblox HQ. Great work!

‘Til next year

And that about wraps up our coverage of the first-ever digital RDC. Thanks to all who attended! Before we go, we wanted to share a special “behind the scenes” video from the 2020 RDC photoshoot.
Check it out:
It was absolutely bonkers. Getting 350 of us all in one server was so much fun and really brought back the feeling of being together with everyone again. That being said, we can’t wait to see you all—for real this time—at RDC next year. It’s going to be well worth the wait. ‘Til we meet again, my friends.
© 2020 Roblox Corporation. All Rights Reserved.

Improving Simulation and Performance with an Advanced Physics Solver

August

05, 2020

by chefdeletat
PRODUCT & TECH
📷In mid-2015, Roblox unveiled a major upgrade to its physics engine: the Projected Gauss-Seidel (PGS) physics solver. For the first year, the new solver was optional and provided improved fidelity and greater performance compared to the previously used spring solver.
In 2016, we added support for a diverse set of new physics constraints, incentivizing developers to migrate to the new solver and extending the creative capabilities of the physics engine. Any new places used the PGS solver by default, with the option of reverting back to the classic solver.
We ironed out some stability issues associated with high mass differences and complex mechanisms by the introduction of the hybrid LDL-PGS solver in mid-2018. This made the old solver obsolete, and it was completely disabled in 2019, automatically migrating all places to the PGS.
In 2019, the performance was further improved using multi-threading that splits the simulation into jobs consisting of connected islands of simulating parts. We still had performance issues related to the LDL that we finally resolved in early 2020.
The physics engine is still being improved and optimized for performance, and we plan on adding new features for the foreseeable future.

Implementing the Laws of Physics

📷
The main objective of a physics engine is to simulate the motion of bodies in a virtual environment. In our physics engine, we care about bodies that are rigid, that collide and have constraints with each other.
A physics engine is organized into two phases: collision detection and solving. Collision detection finds intersections between geometries associated with the rigid bodies, generating appropriate collision information such as collision points, normals and penetration depths. Then a solver updates the motion of rigid bodies under the influence of the collisions that were detected and constraints that were provided by the user.
📷
The motion is the result of the solver interpreting the laws of physics, such as conservation of energy and momentum. But doing this 100% accurately is prohibitively expensive, and the trick to simulating it in real-time is to approximate to increase performance, as long as the result is physically realistic. As long as the basic laws of motion are maintained within a reasonable tolerance, this tradeoff is completely acceptable for a computer game simulation.

Taking Small Steps

The main idea of the physics engine is to discretize the motion using time-stepping. The equations of motion of constrained and unconstrained rigid bodies are very difficult to integrate directly and accurately. The discretization subdivides the motion into small time increments, where the equations are simplified and linearized making it possible to solve them approximately. This means that during each time step the motion of the relevant parts of rigid bodies that are involved in a constraint is linearly approximated.
📷📷
Although a linearized problem is easier to solve, it produces drift in a simulation containing non-linear behaviors, like rotational motion. Later we’ll see mitigation methods that help reduce the drift and make the simulation more plausible.

Solving

📷
Having linearized the equations of motion for a time step, we end up needing to solve a linear system or linear complementarity problem (LCP). These systems can be arbitrarily large and can still be quite expensive to solve exactly. Again the trick is to find an approximate solution using a faster method. A modern method to approximately solve an LCP with good convergence properties is the Projected Gauss-Seidel (PGS). It is an iterative method, meaning that with each iteration the approximate solution is brought closer to the true solution, and its final accuracy depends on the number of iterations.
📷
This animation shows how a PGS solver changes the positions of the bodies at each step of the iteration process, the objective being to find the positions that respect the ball and socket constraints while preserving the center of mass at each step (this is a type of positional solver used by the IK dragger). Although this example has a simple analytical solution, it’s a good demonstration of the idea behind the PGS. At each step, the solver fixes one of the constraints and lets the other be violated. After a few iterations, the bodies are very close to their correct positions. A characteristic of this method is how some rigid bodies seem to vibrate around their final position, especially when coupling interactions with heavier bodies. If we don’t do enough iterations, the yellow part might be left in a visibly invalid state where one of its two constraints is dramatically violated. This is called the high mass ratio problem, and it has been the bane of physics engines as it causes instabilities and explosions. If we do too many iterations, the solver becomes too slow, if we don’t it becomes unstable. Balancing the two sides has been a painful and long process.

Mitigation Strategies

📷A solver has two major sources of inaccuracies: time-stepping and iterative solving (there is also floating point drift but it’s minor compared to the first two). These inaccuracies introduce errors in the simulation causing it to drift from the correct path. Some of this drift is tolerable like slightly different velocities or energy loss, but some are not like instabilities, large energy gains or dislocated constraints.
Therefore a lot of the complexity in the solver comes from the implementation of methods to minimize the impact of computational inaccuracies. Our final implementation uses some traditional and some novel mitigation strategies:
  1. Warm starting: starting with the solution from a previous time-step to increase the convergence rate of the iterative solver
  2. Post-stabilization: reprojecting the system back to the constraint manifold to prevent constraint drift
  3. Regularization: adding compliance to the constraints ensuring a solution exists and is unique
  4. Pre-conditioning: using an exact solution to a linear subsystem, improving the stability of complex mechanisms
Strategies 1, 2 and 3 are pretty traditional, but 3 has been improved and perfected by us. Also, although 4 is not unheard of, we haven’t seen any practical implementation of it. We use an original factorization method for large sparse constraint matrices and a new efficient way of combining it with the PGS. The resulting implementation is only slightly slower compared to pure PGS but ensures that the linear system coming from equality constraints is solved exactly. Consequently, the equality constraints suffer only from drift coming from the time discretization. Details on our methods are contained in my GDC 2020 presentation. Currently, we are investigating direct methods applied to inequality constraints and collisions.

Getting More Details

Traditionally there are two mathematical models for articulated mechanisms: there are reduced coordinate methods spearheaded by Featherstone, that parametrize the degrees of freedom at each joint, and there are full coordinate methods that use a Lagrangian formulation.
We use the second formulation as it is less restrictive and requires much simpler mathematics and implementation.
The Roblox engine uses analytical methods to compute the dynamic response of constraints, as opposed to penalty methods that were used before. Analytics methods were initially introduced in Baraff 1989, where they are used to treat both equality and non-equality constraints in a consistent manner. Baraff observed that the contact model can be formulated using quadratic programming, and he provided a heuristic solution method (which is not the method we use in our solver).
Instead of using force-based formulation, we use an impulse-based formulation in velocity space, originally introduced by Mirtich-Canny 1995 and further improved by Stewart-Trinkle 1996, which unifies the treatment of different contact types and guarantees the existence of a solution for contacts with friction. At each timestep, the constraints and collisions are maintained by applying instantaneous changes in velocities due to constraint impulses. An excellent explanation of why impulse-based simulation is superior is contained in the GDC presentation of Catto 2014.
The frictionless contacts are modeled using a linear complementarity problem (LCP) as described in Baraff 1994. Friction is added as a non-linear projection onto the friction cone, interleaved with the iterations of the Projected Gauss-Seidel.
The numerical drift that introduces positional errors in the constraints is resolved using a post-stabilization technique using pseudo-velocities introduced by Cline-Pai 2003. It involves solving a second LCP in the position space, which projects the system back to the constraint manifold.
The LCPs are solved using a PGS / Impulse Solver popularized by Catto 2005 (also see Catto 2009). This method is iterative and considers each individual constraints in sequence and resolves it independently. Over many iterations, and in ideal conditions, the system converges to a global solution.
Additionally, high mass ratio issues in equality constraints are ironed out by preconditioning the PGS using the sparse LDL decomposition of the constraint matrix of equality constraints. Dense submatrices of the constraint matrix are sparsified using a method we call Body Splitting. This is similar to the LDL decomposition used in Baraff 1996, but allows more general mechanical systems, and solves the system in constraint space. For more information, you can see my GDC 2020 presentation.
The architecture of our solver follows the idea of Guendelman-Bridson-Fedkiw, where the velocity and position stepping are separated by the constraint resolution. Our time sequencing is:
  1. Advance velocities
  2. Constraint resolution in velocity space and position space
  3. Advance positions
This scheme has the advantage of integrating only valid velocities, and limiting latency in external force application but allowing a small amount of perceived constraint violation due to numerical drift.
An excellent reference for rigid body simulation is the book Erleben 2005 that was recently made freely available. You can find online lectures about physics-based animation, a blog by Nilson Souto on building a physics engine, a very good GDC presentation by Erin Catto on modern solver methods, and forums like the Bullet Physics Forum and GameDev which are excellent places to ask questions.

In Conclusion

The field of game physics simulation presents many interesting problems that are both exciting and challenging. There are opportunities to learn a substantial amount of cool mathematics and physics and to use modern optimizations techniques. It’s an area of game development that tightly marries mathematics, physics and software engineering.
Even if Roblox has a good rigid body physics engine, there are areas where it can be improved and optimized. Also, we are working on exciting new projects like fracturing, deformation, softbody, cloth, aerodynamics and water simulation.
Neither Roblox Corporation nor this blog endorses or supports any company or service. Also, no guarantees or promises are made regarding the accuracy, reliability or completeness of the information contained in this blog.
This blog post was originally published on the Roblox Tech Blog.
© 2020 Roblox Corporation. All Rights Reserved.

Using Clang to Minimize Global Variable Use

July

23, 2020

by RandomTruffle
PRODUCT & TECH
Every non-trivial program has at least some amount of global state, but too much can be a bad thing. In C++ (which constitutes close to 100% of Roblox’s engine code) this global state is initialized before main() and destroyed after returning from main(), and this happens in a mostly non-deterministic order. In addition to leading to confusing startup and shutdown semantics that are difficult to reason about (or change), it can also lead to severe instability.
Roblox code also creates a lot of long-running detached threads (threads which are never joined and just run until they decide to stop, which might be never). These two things together have a very serious negative interaction on shutdown, because long-running threads continue accessing the global state that is being destroyed. This can lead to elevated crash rates, test suite flakiness, and just general instability.
The first step to digging yourself out of a mess like this is to understand the extent of the problem, so in this post I’m going to talk about one technique you can use to gain visibility into your global startup flow. I’m also going to discuss how we are using this to improve stability across the entire Roblox game engine platform by decreasing our use of global variables.

Introducing -finstrument-functions

Nothing excites me more than learning about a new obscure compiler option that I’ve never had a use for before, so I was pretty happy when a colleague pointed me to this option in the Clang Command Line Reference. I’d never used it before, but it sounded very cool. The idea being that if we could get the compiler to tell us every time it entered and exited a function, we could filter this information through a symbolizer of some kind and generate a report of functions that a) occur before main(), and b) are the very first function in the call-stack (indicating it’s a global).
Unfortunately, the documentation basically just tells you that the option exists with no mention of how to use it or if it even actually does what it sounds like it does. There’s also two different options that sound similar to each other (-finstrument-functions and -finstrument-functions-after-inlining), and I still wasn’t entirely sure what the difference was. So I decided to throw up a quick sample on godbolt to see what happened, which you can see here. Note there are two assembly outputs for the same source listing. One uses the first option and the other uses the second option, and we can compare the assembly output to understand the differences. We can gather a few takeaways from this sample:
  1. The compiler is injecting calls to __cyg_profile_func_enter and __cyg_profile_func_exit inside of every function, inline or not.
  2. The only difference between the two options occurs at the call-site of an inline function.
  3. With -finstrument-functions, the instrumentation for the inlined function is inserted at the call-site, whereas with -finstrument-functions-after-inlining we only have instrumentation for the outer function. This means that when using-finstrument-functions-after-inlining you won’t be able to determine which functions are inlined and where.
Of course, this sounds exactly like what the documentation said it did, but sometimes you just need to look under the hood to convince yourself.
To put all of this another way, if we want to know about calls to inline functions in this trace we need to use -finstrument-functions because otherwise their instrumentation is silently removed by the compiler. Sadly, I was never able to get -finstrument-functions to work on a real example. I would always end up with linker errors deep in the Standard C++ Library which I was unable to figure out. My best guess is that inlining is often a heuristic, and this can somehow lead to subtle ODR (one-definition rule) violations when the optimizer makes different inlining decisions from different translation units. Luckily global constructors (which is what we care about) cannot possibly be inlined anyway, so this wasn’t a problem.
I suppose I should also mention that I still got tons of linker errors with -finstrument-functions-after-inlining as well, but I did figure those out. As best as I can tell, this option seems to imply –whole-archive linker semantics. Discussion of –whole-archive is outside the scope of this blog post, but suffice it to say that I fixed it by using linker groups (e.g. -Wl,–start-group and -Wl,–end-group) on the compiler command line. I was a bit surprised that we didn’t get these same linker errors without this option and still don’t totally understand why. If you happen to know why this option would change linker semantics, please let me know in the comments!

Implementing the Callback Hooks

If you’re astute, you may be wondering what in the world __cyg_profile_func_enter and __cyg_profile_func_exit are and why the program is even successfully linking in the first without giving undefined symbol reference errors, since the compiler is apparently trying to call some function we’ve never defined. Luckily, there are some options that allow us to see inside the linker’s algorithm so we can find out where it’s getting this symbol from to begin with. Specifically, -y should tell us how the linker is resolving . We’ll try it with a dummy program first and a symbol that we’ve defined ourselves, then we’ll try it with __cyg_profile_func_enter .
[email protected]:~/src/sandbox$ cat instr.cpp int main() {} [email protected]:~/src/sandbox$ clang++-9 -fuse-ld=lld -Wl,-y -Wl,main instr.cpp /usbin/../lib/gcc/x86_64-linux-gnu/crt1.o: reference to main /tmp/instr-5b6c60.o: definition of main
No surprises here. The C Runtime Library references main(), and our object file defines it. Now let’s see what happens with __cyg_profile_func_enter and -finstrument-functions-after-inlining.
[email protected]:~/src/sandbox$ clang++-9 -fuse-ld=lld -finstrument-functions-after-inlining -Wl,-y -Wl,__cyg_profile_func_enter instr.cpp /tmp/instr-8157b3.o: reference to __cyg_profile_func_enter /lib/x86_64-linux-gnu/libc.so.6: shared definition of __cyg_profile_func_enter
Now, we see that libc provides the definition, and our object file references it. Linking works a bit differently on Unix-y platforms than it does on Windows, but basically this means that if we define this function ourselves in our cpp file, the linker will just automatically prefer it over the shared library version. Working godbolt link without runtime output is here. So now you can kind of see where this is going, however there are still a couple of problems left to solve.
  1. We don’t want to do this for a full run of the program. We want to stop as soon as we reach main.
  2. We need a way to symbolize this trace.
The first problem is easy to solve. All we need to do is compare the address of the function being called to the address of main, and set a flag indicating we should stop tracing henceforth. (Note that taking the address of main is undefined behavior[1], but for our purposes it gets the job done, and we aren’t shipping this code, so ¯\_(ツ)_/¯). The second problem probably deserves a little more discussion though.

Symbolizing the Traces

In order to symbolize these traces, we need two things. First, we need to store the trace somewhere on persistent storage. We can’t expect to symbolize in real time with any kind of reasonable performance. You can write some C code to save the trace to some magic filename, or you can do what I did and just write it to stderr (this way you can pipe stderr to some file when you run it).
Second, and perhaps more importantly, for every address we need to write out the full path to the module the address belongs to. Your program loads many shared libraries, and in order to translate an address into a symbol, we have to know which shared library or executable the address actually belongs to. In addition, we have to be careful to write out the address of the symbol in the file on disk. When your program is running, the operating system could have loaded it anywhere in memory. And if we’re going to symbolize it after the fact we need to make sure we can still reference it after the information about where it was loaded in memory is lost. The linux function dladdr() gives us both pieces of information we need. A working godbolt sample with the exact implementation of our instrumentation hooks as they appear in our codebase can be found here.

Putting it All Together

Now that we have a file in this format saved on disk, all we need to do is symbolize the addresses. addr2line is one option, but I went with llvm-symbolizer as I find it more robust. I wrote a Python script to parse the file and symbolize each address, then print it in the same “visual” hierarchical format that the original output file is in. There are various options for filtering the resulting symbol list so that you can clean up the output to include only things that are interesting for your case. For example, I filtered out any globals that have boost:: in their name, because I can’t exactly go rewrite boost to not use global variables.
The script isn’t as simple as you would think, because simply crawling each line and symbolizing it would be unacceptably slow (when I tried this, it took over 2 hours before I finally killed the process). This is because the same address might appear thousands of times, and there’s no reason to run llvm-symbolizer against the same address multiple times. So there’s a lot of smarts in there to pre-process the address list and eliminate duplicates. I won’t discuss the implementation in more detail because it isn’t super interesting. But I’ll do even better and provide the source!
So after all of this, we can run any one of our internal targets to get the call tree, run it through the script, and then get output like this (actual output from a Roblox process, source file information removed):
excluded_symbols = [‘.\boost.*’]* excluded_modules = [‘/usr.\’]* /uslib/x86_64-linux-gnu/libLLVM-9.so.1: 140 unique addresses InterestingRobloxProcess: 38928 unique addresses /uslib/x86_64-linux-gnu/libstdc++.so.6: 1 unique addresses /uslib/x86_64-linux-gnu/libc++.so.1: 3 unique addresses Printing call tree with depth 2 for 29276 global variables. __cxx_global_var_init.5 (InterestingFile1.cpp:418:22) RBX::InterestingRobloxClass2::InterestingRobloxClass2() (InterestingFile2.cpp.:415:0) __cxx_global_var_init.19 (InterestingFile2.cpp:183:34) (anonymous namespace)::InterestingRobloxClass2::InterestingRobloxClass2() (InterestingFile2.cpp:171:0) __cxx_global_var_init.274 (InterestingFile3.cpp:2364:33) RBX::InterestingRobloxClass3::InterestingRobloxClass3()
So there you have it: the first half of the battle is over. I can run this script on every platform, compare results to understand what order our globals are actually initialized in in practice, then slowly migrate this code out of global initializers and into main where it can be deterministic and explicit.

Future Work

It occurred to me sometime after implementing this that we could make a general purpose profiling hook that exposed some public symbols (dllexport’ed if you speak Windows), and allowed a plugin module to hook into this dynamically. This plugin module could filter addresses using whatever arbitrary logic that it was interested in. One interesting use case I came up for this is that it could look up the debug information, check if the current address maps to the constructor of a function local static, and write out the address if so. This effectively allows us to gain a deeper understanding of the order in which our lazy statics are initialized. The possibilities are endless here.

Further Reading

If you’re interested in this kind of thing, I’ve collected a couple of my favorite references for this kind of topic.
  1. Various: The C++ Language Standard
  2. Matt Godbolt: The Bits Between the Bits: How We Get to main()
  3. Ryan O’Neill: Learning Linux Binary Analysis
  4. Linkers and Loaders: John R. Levine
  5. https://eel.is/c++draft/basic.exec#basic.start.main-3
Neither Roblox Corporation nor this blog endorses or supports any company or service. Also, no guarantees or promises are made regarding the accuracy, reliability or completeness of the information contained in this blog.
submitted by jaydenweez to u/jaydenweez [link] [comments]

Help! Please

So I bought a new PC and installed the Space Engine 0.980 installation was successful, but whenever I run it, it shows the splash screen for a second, and boom does not launch. (BTW I tried running it with administrator and compatibility with windows 8, and 7, also Visual Studio C++ 2015 is also installed with OpenAL, also tried reinstalling several times).
Please Help me

SE log:
SpaceEngine Version 0.9.8.0e

STARTING
[MT] Scanning data directories
[MT] Data directory "data"
[MT] Data directory "addons"
[MT] Loading script "config/main-def.cfg"
[MT] Loading script "config/main-user.cfg"
[MT] Loading script "config/save-user.cfg"
[MT] Loading image "data/textures/common/splash03.jpg"
[MT] 20 localizations found
[MT] VR headset: not found
DONE

INITIALIZING OPENGL
[MT] Vendor: NVIDIA Corporation
[MT] Renderer: GeForce RTX 2060/PCIe/SSE2
[MT] Driver version: 443.19
[MT] OpenGL version: 4.6.0 NVIDIA 443.19
[MT] GLSL version: 4.60 NVIDIA
[MT] Extensions: GL_AMD_multi_draw_indirect GL_AMD_seamless_cubemap_per_texture GL_AMD_vertex_shader_viewport_index GL_AMD_vertex_shader_layer GL_ARB_arrays_of_arrays GL_ARB_base_instance GL_ARB_bindless_texture GL_ARB_blend_func_extended GL_ARB_buffer_storage GL_ARB_clear_buffer_object GL_ARB_clear_texture GL_ARB_clip_control GL_ARB_color_buffer_float GL_ARB_compatibility GL_ARB_compressed_texture_pixel_storage GL_ARB_conservative_depth GL_ARB_compute_shader GL_ARB_compute_variable_group_size GL_ARB_conditional_render_inverted GL_ARB_copy_buffer GL_ARB_copy_image GL_ARB_cull_distance GL_ARB_debug_output GL_ARB_depth_buffer_float GL_ARB_depth_clamp GL_ARB_depth_texture GL_ARB_derivative_control GL_ARB_direct_state_access GL_ARB_draw_buffers GL_ARB_draw_buffers_blend GL_ARB_draw_indirect GL_ARB_draw_elements_base_vertex GL_ARB_draw_instanced GL_ARB_enhanced_layouts GL_ARB_ES2_compatibility GL_ARB_ES3_compatibility GL_ARB_ES3_1_compatibility GL_ARB_ES3_2_compatibility GL_ARB_explicit_attrib_location GL_ARB_explicit_uniform_location GL_ARB_fragment_coord_conventions GL_ARB_fragment_layer_viewport GL_ARB_fragment_program GL_ARB_fragment_program_shadow GL_ARB_fragment_shader GL_ARB_fragment_shader_interlock GL_ARB_framebuffer_no_attachments GL_ARB_framebuffer_object GL_ARB_framebuffer_sRGB GL_ARB_geometry_shader4 GL_ARB_get_program_binary GL_ARB_get_texture_sub_image GL_ARB_gl_spirv GL_ARB_gpu_shader5 GL_ARB_gpu_shader_fp64 GL_ARB_gpu_shader_int64 GL_ARB_half_float_pixel GL_ARB_half_float_vertex GL_ARB_imaging GL_ARB_indirect_parameters GL_ARB_instanced_arrays GL_ARB_internalformat_query GL_ARB_internalformat_query2 GL_ARB_invalidate_subdata GL_ARB_map_buffer_alignment GL_ARB_map_buffer_range GL_ARB_multi_bind GL_ARB_multi_draw_indirect GL_ARB_multisample GL_ARB_multitexture GL_ARB_occlusion_query GL_ARB_occlusion_query2 GL_ARB_parallel_shader_compile GL_ARB_pipeline_statistics_query GL_ARB_pixel_buffer_object GL_ARB_point_parameters GL_ARB_point_sprite GL_ARB_polygon_offset_clamp GL_ARB_post_depth_coverage GL_ARB_program_interface_query GL_ARB_provoking_vertex GL_ARB_query_buffer_object GL_ARB_robust_buffer_access_behavior GL_ARB_robustness GL_ARB_sample_locations GL_ARB_sample_shading GL_ARB_sampler_objects GL_ARB_seamless_cube_map GL_ARB_seamless_cubemap_per_texture GL_ARB_separate_shader_objects GL_ARB_shader_atomic_counter_ops GL_ARB_shader_atomic_counters GL_ARB_shader_ballot GL_ARB_shader_bit_encoding GL_ARB_shader_clock GL_ARB_shader_draw_parameters GL_ARB_shader_group_vote GL_ARB_shader_image_load_store GL_ARB_shader_image_size GL_ARB_shader_objects GL_ARB_shader_precision GL_ARB_shader_storage_buffer_object GL_ARB_shader_subroutine GL_ARB_shader_texture_image_samples GL_ARB_shader_texture_lod GL_ARB_shading_language_100 GL_ARB_shader_viewport_layer_array GL_ARB_shading_language_420pack GL_ARB_shading_language_include GL_ARB_shading_language_packing GL_ARB_shadow GL_ARB_sparse_buffer GL_ARB_sparse_texture GL_ARB_sparse_texture2 GL_ARB_sparse_texture_clamp GL_ARB_spirv_extensions GL_ARB_stencil_texturing GL_ARB_sync GL_ARB_tessellation_shader GL_ARB_texture_barrier GL_ARB_texture_border_clamp GL_ARB_texture_buffer_object GL_ARB_texture_buffer_object_rgb32 GL_ARB_texture_buffer_range GL_ARB_texture_compression GL_ARB_texture_compression_bptc GL_ARB_texture_compression_rgtc GL_ARB_texture_cube_map GL_ARB_texture_cube_map_array GL_ARB_texture_env_add GL_ARB_texture_env_combine GL_ARB_texture_env_crossbar GL_ARB_texture_env_dot3 GL_ARB_texture_filter_anisotropic GL_ARB_texture_filter_minmax GL_ARB_texture_float GL_ARB_texture_gather GL_ARB_texture_mirror_clamp_to_edge GL_ARB_texture_mirrored_repeat GL_ARB_texture_multisample GL_ARB_texture_non_power_of_two GL_ARB_texture_query_levels GL_ARB_texture_query_lod GL_ARB_texture_rectangle GL_ARB_texture_rg GL_ARB_texture_rgb10_a2ui GL_ARB_texture_stencil8 GL_ARB_texture_storage GL_ARB_texture_storage_multisample GL_ARB_texture_swizzle GL_ARB_texture_view GL_ARB_timer_query GL_ARB_transform_feedback2 GL_ARB_transform_feedback3 GL_ARB_transform_feedback_instanced GL_ARB_transform_feedback_overflow_query GL_ARB_transpose_matrix GL_ARB_uniform_buffer_object GL_ARB_vertex_array_bgra GL_ARB_vertex_array_object GL_ARB_vertex_attrib_64bit GL_ARB_vertex_attrib_binding GL_ARB_vertex_buffer_object GL_ARB_vertex_program GL_ARB_vertex_shader GL_ARB_vertex_type_10f_11f_11f_rev GL_ARB_vertex_type_2_10_10_10_rev GL_ARB_viewport_array GL_ARB_window_pos GL_ATI_draw_buffers GL_ATI_texture_float GL_ATI_texture_mirror_once GL_S3_s3tc GL_EXT_texture_env_add GL_EXT_abgr GL_EXT_bgra GL_EXT_bindable_uniform GL_EXT_blend_color GL_EXT_blend_equation_separate GL_EXT_blend_func_separate GL_EXT_blend_minmax GL_EXT_blend_subtract GL_EXT_compiled_vertex_array GL_EXT_Cg_shader GL_EXT_depth_bounds_test GL_EXT_direct_state_access GL_EXT_draw_buffers2 GL_EXT_draw_instanced GL_EXT_draw_range_elements GL_EXT_fog_coord GL_EXT_framebuffer_blit GL_EXT_framebuffer_multisample GL_EXTX_framebuffer_mixed_formats GL_EXT_framebuffer_multisample_blit_scaled GL_EXT_framebuffer_object GL_EXT_framebuffer_sRGB GL_EXT_geometry_shader4 GL_EXT_gpu_program_parameters GL_EXT_gpu_shader4 GL_EXT_multi_draw_arrays GL_EXT_multiview_texture_multisample GL_EXT_multiview_timer_query GL_EXT_packed_depth_stencil GL_EXT_packed_float GL_EXT_packed_pixels GL_EXT_pixel_buffer_object GL_EXT_point_parameters GL_EXT_polygon_offset_clamp GL_EXT_post_depth_coverage GL_EXT_provoking_vertex GL_EXT_raster_multisample GL_EXT_rescale_normal GL_EXT_secondary_color GL_EXT_separate_shader_objects GL_EXT_separate_specular_color GL_EXT_shader_image_load_formatted GL_EXT_shader_image_load_store GL_EXT_shader_integer_mix GL_EXT_shadow_funcs GL_EXT_sparse_texture2 GL_EXT_stencil_two_side GL_EXT_stencil_wrap GL_EXT_texture3D GL_EXT_texture_array GL_EXT_texture_buffer_object GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_latc GL_EXT_texture_compression_rgtc GL_EXT_texture_compression_s3tc GL_EXT_texture_cube_map GL_EXT_texture_edge_clamp GL_EXT_texture_env_combine GL_EXT_texture_env_dot3 GL_EXT_texture_filter_anisotropic GL_EXT_texture_filter_minmax GL_EXT_texture_integer GL_EXT_texture_lod GL_EXT_texture_lod_bias GL_EXT_texture_mirror_clamp GL_EXT_texture_object GL_EXT_texture_shadow_lod GL_EXT_texture_shared_exponent GL_EXT_texture_sRGB GL_EXT_texture_sRGB_R8 GL_EXT_texture_sRGB_decode GL_EXT_texture_storage GL_EXT_texture_swizzle GL_EXT_timer_query GL_EXT_transform_feedback2 GL_EXT_vertex_array GL_EXT_vertex_array_bgra GL_EXT_vertex_attrib_64bit GL_EXT_window_rectangles GL_EXT_import_sync_object GL_IBM_rasterpos_clip GL_IBM_texture_mirrored_repeat GL_KHR_context_flush_control GL_KHR_debug GL_EXT_memory_object GL_EXT_memory_object_win32 GL_EXT_win32_keyed_mutex GL_KHR_parallel_shader_compile GL_KHR_no_error GL_KHR_robust_buffer_access_behavior GL_KHR_robustness GL_EXT_semaphore GL_EXT_semaphore_win32 GL_KHR_shader_subgroup GL_KTX_buffer_region GL_NV_alpha_to_coverage_dither_control GL_NV_bindless_multi_draw_indirect GL_NV_bindless_multi_draw_indirect_count GL_NV_bindless_texture GL_NV_blend_equation_advanced GL_NV_blend_equation_advanced_coherent GL_NVX_blend_equation_advanced_multi_draw_buffers GL_NV_blend_minmax_factor GL_NV_blend_square GL_NV_clip_space_w_scaling GL_NV_command_list GL_NV_compute_program5 GL_NV_compute_shader_derivatives GL_NV_conditional_render GL_NV_conservative_raster GL_NV_conservative_raster_dilate GL_NV_conservative_raster_pre_snap GL_NV_conservative_raster_pre_snap_triangles GL_NV_conservative_raster_underestimation GL_NV_copy_depth_to_color GL_NV_copy_image GL_NV_depth_buffer_float GL_NV_depth_clamp GL_NV_draw_texture GL_NV_draw_vulkan_image GL_NV_ES1_1_compatibility GL_NV_ES3_1_compatibility GL_NV_explicit_multisample GL_NV_feature_query GL_NV_fence GL_NV_fill_rectangle GL_NV_float_buffer GL_NV_fog_distance GL_NV_fragment_coverage_to_color GL_NV_fragment_program GL_NV_fragment_program_option GL_NV_fragment_program2 GL_NV_fragment_shader_barycentric GL_NV_fragment_shader_interlock GL_NV_framebuffer_mixed_samples GL_NV_framebuffer_multisample_coverage GL_NV_geometry_shader4 GL_NV_geometry_shader_passthrough GL_NV_gpu_program4 GL_NV_internalformat_sample_query GL_NV_gpu_program4_1 GL_NV_gpu_program5 GL_NV_gpu_program5_mem_extended GL_NV_gpu_program_fp64 GL_NV_gpu_shader5 GL_NV_half_float GL_NV_light_max_exponent GL_NV_memory_attachment GL_NV_mesh_shader GL_NV_multisample_coverage GL_NV_multisample_filter_hint GL_NV_occlusion_query GL_NV_packed_depth_stencil GL_NV_parameter_buffer_object GL_NV_parameter_buffer_object2 GL_NV_path_rendering GL_NV_path_rendering_shared_edge GL_NV_pixel_data_range GL_NV_point_sprite GL_NV_primitive_restart GL_NV_query_resource GL_NV_query_resource_tag GL_NV_register_combiners GL_NV_register_combiners2 GL_NV_representative_fragment_test GL_NV_sample_locations GL_NV_sample_mask_override_coverage GL_NV_scissor_exclusive GL_NV_shader_atomic_counters GL_NV_shader_atomic_float GL_NV_shader_atomic_float64 GL_NV_shader_atomic_fp16_vector GL_NV_shader_atomic_int64 GL_NV_shader_buffer_load GL_NV_shader_storage_buffer_object GL_NV_shader_subgroup_partitioned GL_NV_shader_texture_footprint GL_NV_shading_rate_image GL_NV_stereo_view_rendering GL_NV_texgen_reflection GL_NV_texture_barrier GL_NV_texture_compression_vtc GL_NV_texture_env_combine4 GL_NV_texture_multisample GL_NV_texture_rectangle GL_NV_texture_rectangle_compressed GL_NV_texture_shader GL_NV_texture_shader2 GL_NV_texture_shader3 GL_NV_transform_feedback GL_NV_transform_feedback2 GL_NV_uniform_buffer_unified_memory GL_NV_vertex_array_range GL_NV_vertex_array_range2 GL_NV_vertex_attrib_integer_64bit GL_NV_vertex_buffer_unified_memory GL_NV_vertex_program GL_NV_vertex_program1_1 GL_NV_vertex_program2 GL_NV_vertex_program2_option GL_NV_vertex_program3 GL_NV_viewport_array2 GL_NV_viewport_swizzle GL_NVX_conditional_render GL_NVX_linked_gpu_multicast GL_NV_gpu_multicast GL_NVX_gpu_multicast2 GL_NVX_progress_fence GL_NVX_gpu_memory_info GL_NVX_multigpu_info GL_NVX_nvenc_interop GL_NV_shader_thread_group GL_NV_shader_thread_shuffle GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_OVR_multiview GL_OVR_multiview2 GL_SGIS_generate_mipmap GL_SGIS_texture_lod GL f¨
submitted by Fearless_Guy to spaceengine [link] [comments]

1M Census Update

1M Census Results and State of the Subreddit

We’ve crossed our t’s, dotted our i’s, and crunched the numbers until there were no more to crunch. So here's a tiptoe through a soupçon of data from our most recent census!
If you’re interested, here are previous results:
We dropped the link to the census shortly after our rollover to one million and closed it after we received 2050 valid responses, which is enough for a quick check-in with the Ask Historians community. We worked through the comments carefully and will make changes where/if we can.
A few people asked if we can get rid of the 20 year rule. No. And here's why.

First, some highlights

Respondents were split between new and long-time readers: 40% of respondents have been reading AH for less than a month. 45% of respondents have been reading AH for at least a year.
Most pass us by on their way to other subreddits and spend most of their time on other subreddits. A few (3%) of users are on Reddit only for AH.
Most of the respondents are the silent type. 60% have never posted a comment and 64% have never asked a question. On the flip side, people who report they post comments tend to also post questions. (About 20% of people who have posted questions report never posting a comment.)
15% of respondents reported posting a question in the last 30 days. Of those who posted a question, 40% said their question was answered. We asked respondents to rank, on a scale of 1 (very dissatisfied) to 10 (very satisfied), how satisfied they were with the answer they got and 95% rated their answer as 5 or higher.

Opinions on the mods

How are the mods doing?
All Responses New Readers (less than one month)
I don't care 6% 29%
Too lenient 2% 0%
Much too strict 2% 2%
A bit too strict 15% 17%
Just right 75% 53%
Several "too strict" people clarified their thinking later in the census. As an example: To be clear - 'a bit too strict' above really is just a tiny amount. You are all doing a fantastic job, I just think the line could be drawn slightly more leniently in some cases.
Are you happy with the moderation style?
  • 76% of respondents think the current mod style is a happy balance.
  • 12% report they don't care.
  • 5% respondents think we should leave fewer comments.
  • 7% respondents think we should leave more comments.
Lots of people were curious about the makeup of the mod team. A quick overview:
  • there are usually between 20-30 active mods in any given week
  • most time zones are represented by at least two mods
  • most mods are native English speakers and many are bilingual or trilingual
  • mods range in age from college undergrads to retirees - we're all volunteers
  • there are more men than women and non-binary mods; most of us are cis, straight, and neurotypical but not all; and most, but not all, identify as white
  • the day job of most mods involve history in one way or another - several mods have PhDs or other advanced degrees in history, several are working on a degree, others work in museums. There are adjunct professors and college staff, teachers, authors, researchers, and even a few with desk jobs.

Demographics

Speaking of demographics, the results from this year’s census are similar to previous years. A few things to highlight.

Gender

All Responses New Readers (less than one month)
Boy/Man 81% 72%
Girl/Woman 14% 24%
non-binary 2% 3%

Location

All Responses New Readers (less than one month)
North America 62% 65%
Europe 28% 25%
Asia 4% 2%
Oceania 3% 1%
South America 2% 1%
Less than 1%
  • Africa
  • Antarctica
Edited on October 25 to update the count with all possible location options

Language

All Responses New Readers (less than one month)
English 72% 63%
Spanish 3% 7%

Are you a member of a historically marginalized group?

All Responses New Readers (less than one month)
No 76% 71%
Yes 25% 30%
The average age of AH readers is 29.

Social Media

  • 55% of respondents didn't know we have a podcast. We do!
  • 25% of respondents didn't know we're on Twitter. We are!
  • 30% didn't know we're on Facebook! We are!

Highlights from Extended Responses

Several respondents express concern about "wasting" mods' time by asking questions. Readers are always encouraged to reach out via modmail. And several respondents seemed unaware of the rules sections on Asking Questions. You can always scroll questions that have been tagged as a Great Question by a mod.
Several respondents raised concerns about the comment count. Two recent developments can help with that.
N > 100 respondents provided feedback about the status of our book recommendation wiki. We will take a look at the lists and pages in the near future.

Finally, you can see more details about the census results here. Feel free to ask any questions you have or share your thinking in the comments!

submitted by UrAccountabilibuddy to AskHistorians [link] [comments]

Wall Street Week Ahead for the trading week beginning December 9th, 2019

Good Saturday morning to all of you here on wallstreetbets. 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 December 9th, 2019.

What Trump does before trade deadline is the ‘wild card’ that will drive markets in the week ahead - (Source)

The Trump administration’s Dec. 15 deadline for new tariffs on China looms large, and while most strategists expect them to be delayed while talks continue, they don’t rule out the unexpected.
“That’s the biggest thing in the room next week. I don’t think he’s going to raise them. I think they’ll find a reason,” said James Pauslen, chief investment strategist at Leuthold Group. But Paulsen said President Donald Trump’s unpredictable nature makes it really impossible to tell what will happen as the deadline nears.
“He’s the one off you’re never sure about. It’s not just tariffs. It could be damn near anything,” Paulsen said. “I think he goes out of his way to be a wild card.”
Just in the past week, Trump said he would put new tariffs on Brazil, Argentina and France. He rattled markets when he said he could wait until after the election for a trade deal with China.
Once dubbing himself “tariff man,” Trump reminded markets that he sees tariffs as a way of getting what he wants from an opponent, and traders were reminded tariffs may be around for a long time.
Trade certainly could be the most important event for markets in the week ahead, which also includes a Fed interest rate decision Wednesday and the U.K.’s election that could set the course for Brexit. If there’s no China deal, that could beat up stocks, send Treasury yields lower and send investors into other safe havens.
When Fed officials meet this week, they are not expected to change interest rates, but they are likely to discuss whether they believe their repo operations to drive liquidity in the short-term funding market are running smoothly, ahead of year end. Economic reports in the coming week include CPI inflation Wednesday, which could be an important input for the Fed.
Punt, but no deal As of Friday, the White House did not appear any closer to striking a deal with China, though officials say talks are going fine. Back in August, Trump said if there is no deal, Dec. 15 is the date for a new wave of tariffs on $156 billion in Chinese goods, including cell phones, toys and lap top computers.
Dan Clifton, head of policy research at Strategas, said it seems like a low probability there will be a deal in the coming week. “What the market is focused on right now is whether there’s going to be tariffs that to into effect on Dec. 15, or not. It’s being rated pretty binary,” said Clifton. “I think what’s happening here and the actions by China overnight looks like we’re setting up for a kick.”
China removed some tariffs from U.S. agricultural products Friday, and administration officials have been talking about discussions going fine.
Clifton said if tariffs are put on hold, it’s unclear for how long. “Those are going to be larger questions that have to be answered. This is really now about politics. Is it a better idea for the president to cut a deal without major structural reforms, or should he walk away? That’s the larger debate that has to happen after Dec. 15,” Clifton said. “I’m getting worried that some in the administration... they’re leaning toward no deal category.”
Clifton said Trump’s approval rating falls when the trade wars heat up, so that may motivate him to complete the deal with China even if he doesn’t get everything he wants.
Michael Schumacher, director of rates strategy at Wells Fargo, said his base case is for a trade deal to be signed in the next couple of months, but even so, he said he can’t entirely rule out another outcome. It would make sense for tariffs to be put on hold while talks continue.
“The tweeter-in-chief controls that one, ” said Schumacher. “That’s anybody’s guess...I wouldn’t be at all surprised if he suspends it for a few weeks. If he doesn’t, that’s a pretty unpleasant result. That’s risk off. That’s pretty clear.”
Because the next group of tariffs would be on consumer goods, economists fear they could hit the economy through the consumer, the strongest and largest engine behind economic growth.
Fed ahead The Fed has moved to the sidelines and says it is monitoring economic data before deciding its next move. Friday’s strong November jobs report, with 266,000 jobs added, reinforces the Fed’s decision to move to neutral for now.
So the most important headlines from its meeting this week could be about the repo market, basically the plumbing for the financial system where financial institutions fund themselves. Interest rates in that somewhat obscure market spiked in September. Market pros said the issue was a cash crunch in the short term lending market, made better when the Fed started repo operations.
The Fed now has multiple operations running over year end, and Schumacher said it has latitude to do more. Strategists expect there to be more pressure on the repo market as banks rein in operations to spruce up their balance sheets at year end.
“No one is going to come to the Fed and say you did too much in the year-end funding,” said Schumacher. “If repo happens to spike somewhat on one day, the Fed is going to hammer it the next day.”
Paulsen said the markets will be attuned to this week’s inflation numbers. Consumer inflation, the CPI is reported on Wednesday and producer prices are Thursday.
A pickup in inflation of any significance is one thing that could pull the Fed from the sidelines, and prod it to consider a rate hike.
“I think the inflation reports might start to get a little attention. Given the jobs numbers, the employment rate, growth picking up a little bit and a better tone in manufacturing. I do think if you get some hot CPI number, I don’t know if the Fed can ignore it,” he said. “Core CPI is 2.3%.” He said it would get noticed if it jumped to 2.5% or better.
The Fed’s inflation target is 2% but its preferred measure is the PCE inflation, and that remains under 2%.
Stocks were sharply higher Friday but ended the past week flattish. The S&P 500 was slightly higher, up 0.2% at 3,145, and the Dow was down 0.1% at 28,015. The Nasdaq was 0.1% lower, ending the week at 8,656.

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!)

Sector Performance WTD, MTD, YTD:

(CLICK HERE FOR FRIDAY'S PERFORMANCE!)
(CLICK HERE FOR THE WEEK-TO-DATE PERFORMANCE!)
(CLICK HERE FOR THE MONTH-TO-DATE PERFORMANCE!)
(CLICK HERE FOR THE 3-MONTH PERFORMANCE!)
(CLICK HERE FOR THE YEAR-TO-DATE PERFORMANCE!)
(CLICK HERE FOR THE 52-WEEK PERFORMANCE!)

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!)

Reasons We Still Believe In December

It has been a rough start to the most wonderful month of them all, with the S&P 500 Index down each of the first two days of December. Don’t stop believing just yet, though.
Everyone knows December has usually been a good month for stocks, but what happened last year is still fresh in the minds of many investors. The S&P 500 fell 9.1% in December 2018 for the worst December since 1931. That sounds really bad, until you realize stocks fell 30% in September 1931, but we digress.
One major difference between now and last year is how well the global equities have been performing. Heading into December 2018, the S&P 500 was up 3.2% year to date, but markets outside of the United States were already firmly in the red, with many down double digits.
“We don’t think stocks are on the verge of another massive December sell off,” said LPL Financial Senior Market Strategist Ryan Detrick. “If my Cincinnati Bengals can win a game, anything is possible. However, we are quite encouraged by the overall participation we are seeing from various global stock markets this year versus last year, when the United States was about the only market in the green heading into December.”
Stocks have also overcome volatile starts to December recently. The S&P 500 was down four days in a row to start 2013 and 2017, but the gauge still managed to gain 2.4% and 1%, respectively, in those years.
As the LPL Chart of the Day shows, December has been the second-best month of the year for stocks going back to 1950. It is worth noting that it was the best month of the year before last year’s massive drop. Stocks have historically been strong in pre-election years as well, and December has never been lower two times in a row during a pre-election year. Given stocks fell in December 2015, bulls could be smiling when this month is wrapped up.
(CLICK HERE FOR THE CHART!)

Could Impeachment Be Good for Investors?

Impeaching a President with the possibility of removal from office is by no means great for the country. However, it may not be so horrible for the stock market or investors if history is any guide. We first touched on this over two years ago here on the blog and now that much has transpired and the US House of Representatives is now proceeding with drafting articles of impeachment we figured it was a good time to revisit the history (albeit limited) of market behavior during presidential impeachment proceedings. The three charts below really tell the story.
During the Watergate scandal of Nixon’s second term the market suffered a major bear market from January 1973 to OctobeDecember 1974 with the Dow down 45.1%, S&P 500 down 48.2% and NASDAQ down 59.9%. Sure there were other factors that contributed to the bear market such as the Oil Embargo, Arab-Israeli War, collapse of the Bretton Woods system, high inflation and Watergate. However, shortly after Nixon resigned on August 9, 1974 the market reached the secular bear market low on October 3 for S&P and NASDAQ and December 6 for the Dow.
Leading up to the Clinton investigations and through his subsequent impeachment and the acquittal by the Senate the market was on a tear as one of the biggest bull markets in history raged on. After the 1994 midterm elections when the Republicans took back control of both houses of Congress the market remained on a 45 degree upward trajectory except for a few blips and the shortest bear market on record that lasted 45 days and bottomed on August 31, 1998.
Clinton was impeached in December 1998 and acquitted in February 1999 as the market continued higher throughout his second term. Sure there were other factors that contributed to the late-1990s bull-run such as the Dotcom Boom, the Information Revolution, millennial fervor and a booming global economy, but Clinton’s personal scandal had little negative impact on markets.
It remains to be seen of course what will happen with President Trump’s impeachment proceeding and how the world and markets react, but the market continues to march on. If the limited history of impeachment proceedings of a US President in modern times (no offense to our 17th President Andrew Johnson) is any guide, the market has bounced back after the last two impeachment proceedings and was higher a year later. Perhaps it will be better to buy any impeachment dip rather than sell it.
(CLICK HERE FOR THE CHART LINK #1!)
(CLICK HERE FOR THE CHART LINK #2!!)
(CLICK HERE FOR THE CHART LINK #3!!)

Typical December Trading: Modest Strength Early, Choppy Middle and Solid Gains Late

Historically, the first trading day of December, today, has a slightly bearish bias with S&P 500 advancing 34 times over the last 69 years (since 1950) with an average loss of 0.02%. Tomorrow, the second trading day of December however, has been stronger, up 52.2% of the time since 1950 with an average gain of 0.08% and the third day is better still, up 59.4% of the time.
Over the more recent 21-year period, December has opened with strength and gains over its first seven trading days before beginning to drift. By mid-month all five indices have surrendered any early-month gains, but shortly thereafter Santa usually visits sending the market higher until the last day of the month and the year when last minute selling, most likely for tax reasons, briefly interrupts the market’s rally.
(CLICK HERE FOR THE CHART!)

Odds Still Favor A Gain for Rest of December Despite Rough Start

Just when it was beginning to look like trade was heading in a positive direction, the wind changed direction again. Yesterday it was steel and aluminum tariffs on Brazil and Argentina and today a deal with China may not happen as soon as previously anticipated. The result was the worst first two trading days of December since last year and the sixth worst start since 1950 for S&P 500. DJIA and NASDAQ are eighth worst since 1950 and 1971, respectively.
However, historically past weakness in early December (losses over the first two trading days combined) were still followed by average gains for the remainder of the month the majority of the time. DJIA has advanced 74.19% of the time following losses over the first two trading days with an average gain for the remainder of December of 1.39%. S&P 500 was up 67.65% of the time with an average rest of month gain of 0.84%. NASDAQ is modestly softer advancing 61.11% of the time during the remainder of December with an average advance of 0.30%.
(CLICK HERE FOR THE CHART LINK #1!)
(CLICK HERE FOR THE CHART LINK #2!)
(CLICK HERE FOR THE CHART LINK #3!)

STOCK MARKET VIDEO: Stock Market Analysis Video for Week Ending December 6th, 2019

(CLICK HERE FOR THE YOUTUBE VIDEO!)

STOCK MARKET VIDEO: ShadowTrader Video Weekly 12.8.19

([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-
  • $LULU
  • $COST
  • $THO
  • $AZO
  • $ADBE
  • $AVGO
  • $CIEN
  • $MDB
  • $CHWY
  • $SFIX
  • $AEO
  • $GME
  • $OLLI
  • $TOL
  • $PLCE
  • $UNFI
  • $PLAY
  • $ORCL
  • $HDS
  • $CONN
  • $MTN
  • $JT
  • $LOVE
  • $CMD
  • $PLAB
  • $DBI
  • $ROAD
  • $VRA
  • $CDMO
  • $LQDT
  • $TLRD
  • $TWST
  • $PHR
  • $NDSN
  • $MESA
  • $VERU
  • $DLHC
  • $BLBD
  • $OXM
  • $NX
  • $GNSS
  • $PHX
  • $GTIM
(CLICK HERE FOR NEXT WEEK'S MOST NOTABLE EARNINGS RELEASES!)
(CLICK HERE FOR NEXT WEEK'S HIGHEST VOLATILITY EARNINGS RELEASES!)
(CLICK HERE FOR MOST ANTICIPATED EARNINGS RELEASES FOR THE NEXT 5 WEEKS!)
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 12.9.19 Before Market Open:

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

Monday 12.9.19 After Market Close:

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

Tuesday 12.10.19 Before Market Open:

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

Tuesday 12.10.19 After Market Close:

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

Wednesday 12.11.19 Before Market Open:

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

Wednesday 12.11.19 After Market Close:

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

Thursday 12.12.19 Before Market Open:

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

Thursday 12.12.19 After Market Close:

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

Friday 12.13.19 Before Market Open:

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

Friday 12.13.19 After Market Close:

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

lululemon athletica inc. $229.38

lululemon athletica inc. (LULU) is confirmed to report earnings at approximately 4:05 PM ET on Wednesday, December 11, 2019. The consensus earnings estimate is $0.93 per share on revenue of $896.50 million and the Earnings Whisper ® number is $0.98 per share. Investor sentiment going into the company's earnings release has 73% expecting an earnings beat The company's guidance was for earnings of $0.90 to $0.92 per share on revenue of $880.00 million to $890.00 million. Consensus estimates are for year-over-year earnings growth of 24.00% with revenue increasing by 19.91%. Short interest has increased by 9.8% since the company's last earnings release while the stock has drifted higher by 16.0% from its open following the earnings release to be 26.0% above its 200 day moving average of $182.08. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, December 6, 2019 there was some notable buying of 927 contracts of the $260.00 call expiring on Friday, December 13, 2019. Option traders are pricing in a 8.3% move on earnings and the stock has averaged a 11.1% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Costco Wholesale Corp. $294.95

Costco Wholesale Corp. (COST) is confirmed to report earnings at approximately 4:15 PM ET on Thursday, December 12, 2019. The consensus earnings estimate is $1.70 per share on revenue of $37.43 billion and the Earnings Whisper ® number is $1.74 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 5.59% with revenue increasing by 6.73%. Short interest has increased by 19.3% since the company's last earnings release while the stock has drifted higher by 2.5% from its open following the earnings release to be 10.3% above its 200 day moving average of $267.50. Overall earnings estimates have been revised higher since the company's last earnings release. On Tuesday, November 19, 2019 there was some notable buying of 916 contracts of the $265.00 put expiring on Friday, December 27, 2019. Option traders are pricing in a 3.7% move on earnings and the stock has averaged a 3.6% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Thor Industries, Inc. $67.77

Thor Industries, Inc. (THO) is confirmed to report earnings at approximately 6:45 AM ET on Monday, December 9, 2019. The consensus earnings estimate is $1.23 per share on revenue of $2.30 billion and the Earnings Whisper ® number is $1.30 per share. Investor sentiment going into the company's earnings release has 69% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 16.89% with revenue increasing by 30.98%. Short interest has increased by 48.1% since the company's last earnings release while the stock has drifted higher by 25.5% from its open following the earnings release to be 16.0% above its 200 day moving average of $58.44. Overall earnings estimates have been revised lower since the company's last earnings release. On Tuesday, December 3, 2019 there was some notable buying of 838 contracts of the $60.00 put expiring on Friday, December 20, 2019. Option traders are pricing in a 10.0% move on earnings and the stock has averaged a 7.6% move in recent quarters.

(CLICK HERE FOR THE CHART!)

AutoZone, Inc. -

AutoZone, Inc. (AZO) is confirmed to report earnings at approximately 6:55 AM ET on Tuesday, December 10, 2019. The consensus earnings estimate is $13.69 per share on revenue of $2.76 billion and the Earnings Whisper ® number is $14.02 per share. Investor sentiment going into the company's earnings release has 76% expecting an earnings beat. Consensus estimates are for year-over-year earnings growth of 1.63% with revenue increasing by 4.48%. Short interest has decreased by 13.7% since the company's last earnings release while the stock has drifted higher by 1.1% from its open following the earnings release to be 8.9% above its 200 day moving average of $1,077.00. Overall earnings estimates have been revised lower since the company's last earnings release. Option traders are pricing in a 5.5% move on earnings and the stock has averaged a 5.6% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Adobe Inc. $306.23

Adobe Inc. (ADBE) is confirmed to report earnings at approximately 4:05 PM ET on Thursday, December 12, 2019. The consensus earnings estimate is $2.26 per share on revenue of $2.97 billion and the Earnings Whisper ® number is $2.30 per share. Investor sentiment going into the company's earnings release has 74% expecting an earnings beat The company's guidance was for earnings of approximately $2.25 per share. Consensus estimates are for year-over-year earnings growth of 23.50% with revenue increasing by 20.51%. Short interest has increased by 44.6% since the company's last earnings release while the stock has drifted higher by 11.2% from its open following the earnings release to be 9.1% above its 200 day moving average of $280.60. Overall earnings estimates have been revised higher since the company's last earnings release. On Monday, November 25, 2019 there was some notable buying of 505 contracts of the $340.00 call expiring on Friday, December 20, 2019. Option traders are pricing in a 3.9% move on earnings and the stock has averaged a 3.8% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Broadcom Limited $316.05

Broadcom Limited (AVGO) is confirmed to report earnings at approximately 4:15 PM ET on Thursday, December 12, 2019. The consensus earnings estimate is $5.36 per share on revenue of $5.76 billion and the Earnings Whisper ® number is $5.47 per share. Investor sentiment going into the company's earnings release has 69% expecting an earnings beat. Consensus estimates are for earnings to decline year-over-year by 7.27% with revenue increasing by 5.80%. Short interest has increased by 22.8% since the company's last earnings release while the stock has drifted higher by 6.2% from its open following the earnings release to be 9.7% above its 200 day moving average of $288.21. Overall earnings estimates have been revised lower since the company's last earnings release. On Thursday, December 5, 2019 there was some notable buying of 625 contracts of the $135.00 call expiring on Friday, January 15, 2021. Option traders are pricing in a 5.2% move on earnings and the stock has averaged a 4.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Ciena Corporation $35.00

Ciena Corporation (CIEN) is confirmed to report earnings at approximately 7:00 AM ET on Thursday, December 12, 2019. The consensus earnings estimate is $0.66 per share on revenue of $964.80 million and the Earnings Whisper ® number is $0.67 per share. Investor sentiment going into the company's earnings release has 72% expecting an earnings beat The company's guidance was for revenue of $945.00 million to $975.00 million. Consensus estimates are for year-over-year earnings growth of 26.92% with revenue increasing by 7.28%. Short interest has increased by 66.6% since the company's last earnings release while the stock has drifted lower by 9.5% from its open following the earnings release to be 11.0% below its 200 day moving average of $39.32. Overall earnings estimates have been revised higher since the company's last earnings release. On Friday, December 6, 2019 there was some notable buying of 1,156 contracts of the $36.00 put expiring on Friday, December 13, 2019. Option traders are pricing in a 9.0% move on earnings and the stock has averaged a 10.1% move in recent quarters.

(CLICK HERE FOR THE CHART!)

MongoDB, Inc. $131.17

MongoDB, Inc. (MDB) is confirmed to report earnings at approximately 4:05 PM ET on Monday, December 9, 2019. The consensus estimate is for a loss of $0.28 per share on revenue of $99.73 million and the Earnings Whisper ® number is ($0.26) per share. Investor sentiment going into the company's earnings release has 63% expecting an earnings beat The company's guidance was for a loss of $0.29 to $0.27 per share on revenue of $98.00 million to $100.00 million. Consensus estimates are for year-over-year earnings growth of 15.15% with revenue increasing by 53.47%. Short interest has increased by 15.2% since the company's last earnings release while the stock has drifted lower by 16.3% from its open following the earnings release to be 5.1% below its 200 day moving average of $138.19. Overall earnings estimates have been revised lower since the company's last earnings release. On Tuesday, November 19, 2019 there was some notable buying of 970 contracts of the $210.00 call expiring on Friday, December 20, 2019. Option traders are pricing in a 10.1% move on earnings and the stock has averaged a 8.7% move in recent quarters.

(CLICK HERE FOR THE CHART!)

Chewy, Inc. $24.95

Chewy, Inc. (CHWY) is confirmed to report earnings at approximately 4:10 PM ET on Monday, December 9, 2019. The consensus estimate is for a loss of $0.16 per share on revenue of $1.21 billion and the Earnings Whisper ® number is ($0.15) per share. Investor sentiment going into the company's earnings release has 57% expecting an earnings beat. Short interest has increased by 40.7% since the company's last earnings release while the stock has drifted lower by 14.6% from its open following the earnings release. Overall earnings estimates have been revised lower since the company's last earnings release. The stock has averaged a 6.4% move on earnings in recent quarters.

(CLICK HERE FOR THE CHART!)

Stitch Fix, Inc. $24.09

Stitch Fix, Inc. (SFIX) is confirmed to report earnings at approximately 4:05 PM ET on Monday, December 9, 2019. The consensus estimate is for a loss of $0.06 per share on revenue of $441.04 million and the Earnings Whisper ® number is ($0.04) per share. Investor sentiment going into the company's earnings release has 69% expecting an earnings beat The company's guidance was for revenue of $438.00 million to $442.00 million. Consensus estimates are for earnings to decline year-over-year by 160.00% with revenue increasing by 20.43%. Short interest has increased by 30.9% since the company's last earnings release while the stock has drifted higher by 41.7% from its open following the earnings release to be 2.4% below its 200 day moving average of $24.69. Overall earnings estimates have been revised lower since the company's last earnings release. On Thursday, November 21, 2019 there was some notable buying of 1,000 contracts of the $13.00 put expiring on Friday, January 17, 2020. Option traders are pricing in a 20.0% move on earnings and the stock has averaged a 18.9% 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 wallstreetbets.
submitted by bigbear0083 to wallstreetbets [link] [comments]

60 second Binary Options Trading Strategy 2015 / 5 minute Binary Trading Strategy 60 Seconds Binary Options Trading - YouTube 1-minute (“60-second”) Binary Options Strategy - YouTube Insights To Trade 60 Second Binary Options Successfully 2015 60 Second Binary Options 10 Minute Trend Trading Strategy ... Binary Options 60 Seconds Indicator 99% Winning Live ...

60 second binary options review. This makes it one of the most preferred option income tax on binary options in india due to many reasons like its popularity in brokers – almost each broker offers it – as well as its easiness to be understood 60 Second Binary Options Pros. 60 Second Binary Options Review SpotOption is First to Offer 60 Second Binary Options 60 Second Binary Options has ... Trend following BO – 60 second binary options trend following strategy is fast paced, momentum and trend following strategy. While the strategy makes use of just one indicator, the key to success with this strategy is how fast you can execute a trade when the indicator gives a signal. 60 Second Binary Option Trading Strategy Cash Every 60 Seconds With Binary Options. Angela Fabiola. 14:00. Binary Option 60 Seconds Strategy 11 08 2015 [Binary Options Trading] Binary Options Boom Trade. 22:03. Binary Options Strategy: Trading 60 Seconds Options. BeckieMacklin Videogames. 7:42. Binary Wealth System Review - Binary Wealth System By David Williams New 60 Seconds Binary Options ... 60-Second Binary Options are like standard binary alternatives in addition to the very fact that the selection expires right after sixty seconds. There may be an established capped degree of payout, generally something all-around 70%. The reduction is capped with the volume you paid to buy the option. Some brokers give another early-expiring option at the same time, including the just one that ... The Truth About 60 Second Binary Options 60 SECOND BINARY OPTIONS- MAKE 75% A MINUTEWelcome to the exciting world of 60 Second Binary Optionswhere you can earn up to 75% on your money in just oneminute.We will provide you with everything you need to know to besuccessful trading 60 Second Binary Options including threeproven trading strategies.As will be revealed to you in this all inclusive ... 60 Second Binary Options Strategy Learn how to trade binary options for a profit [Binary Options Trading 2016] Minecraft Game. 15:27. Binary Options Trading Making Money With 60 Second Profits System . Minecraft Game. 8:35. Binary Options Price Action Trading 2016 Profitable Binary Options Trading System for Big Profits. Minecraft Mods. 5:39. 122k Profit in 32mins w Print My ATM Binary ... 60 Second binary options software suite CCI v1.0 has been released by ITM Financial this week and has received a record number of downloads from binary options traders. We are binary options trading website with a gamblers edge. We focus on the short term options like the 30 second, 60 seconds options and the other fast binary options that expire in 5 minutes or less. These are known as the short term binary options or fast expiry options. The hottest trend in finance is binary options trading. I talk about the binary options trading system and strategies I have been using to accomplish a job replacing income and fire my boss!I have tried various strategies that I have found online in trading binary options all of wich failed and I lost the money that I started out with. So I finnaly decided to go and try a paid system and hoped for the best. I found this website who created by a ... The 60 Second Binary Options Strategy aims to increase the effectiveness of trading decisions, improve the profit-to-loss ratio, as well as grow the overall account balance. This post is aimed to explain key factors to select the right trading system, show the pros and cons of this type of trading approach and show several examples of profitable trading methods. This way of trading could ...

[index] [392] [17335] [11668] [28956] [22235] [4954] [21184] [14775] [11601] [2515]

60 second Binary Options Trading Strategy 2015 / 5 minute Binary Trading Strategy

USA Friendly Broker: http://porterfinancecapital.com EU Broker: http://bosscapitaloptions.com CandlestickTrend Charts: http://www.fxempire.com/charts/live-fo... This video is unavailable. Watch Queue Queue. Watch Queue Queue Skip navigation Sign in. Search 1-minute (“60-second”) Binary Options Strategy Download App... https://app.appsflyer.com/com.iqoptio... https://affiliate.iqoption.com/redir/... Hi Friends I will Show This Video Binary Options 60 Seconds Indicator Signal 99% Winning Live Trading Proof -----... 60 second binary options strategy. binary options, binary software, binary trading, binary options brokers, binary options strategy, binary option, binary options trading, binary options signals ... Ways To Trade Binary Options Online For Beginners To Learn More Visit http://businesspromagazine.com/Anna There are various reasons why brokers new and old a...

http://binary-optiontrade.wilrebitvihobu.tk