Want $300 for free?

I remember back in 2000 during the dot com bubble all of these companies would pay you just to surf the internet using their browser or plugin. We may be in another bubble of some sort but that’s not my purpose of this article.

Recently I received a pop up on Facebook for SoFi. A free $350 just for funding a loan. Interesting, so for kicks I applied. My application is still pending but I can’t imagine I won’t get funded. They had a minimum loan amount of $10,001.

They indicate that they will give you the $300 within 30 days of funding your loan. The interest rate is 9.25% which is about $77/month in interest. So you’ll want to pay the loan off with the money you receive as soon as the bonus funds are received. Technically you’re probably only going to net $223. But hey that’s almost 40% of what the government is giving out for stimulus.

What’s interesting is this company is also giving away a free $50 in stocks just for opening an investment account. Another free $25 in Bitcoin just for opening a crypto currency account and buying at least $10 worth of crypto.

Seems like they’re pretty desperate to boost their sales for their upcoming IPO and inflate their valuation. You might as well take advantage of it.

Facebook Comments

Cannabis Grow journal


You always want to make sure your water is at a pH of 5.8. I calibrated my pH meter and then measured my tap and RO water. You can always then measure these two as a baseline to make sure your meter doesn’t need to be recalibrated.

Tap water pH: 6.1 / RO water pH: 6.6

1.16.21-Tap water pH: 7.3 / RO water pH: 8.2

Here is a list of things you will need to calibrate your water.

2021.1.3 2100

First step is to simply drop your seeds into RO water. I would recommend a max of 5 per cup for 15 hours.

2 green crack seeds in RO water. 4 Jack Herer in RO water.

2021.1.4 1300

Seeds have been soaking for 16 hours moving to napkin in Ziplock, black bag, and box. Placed on Ether Miner for heat.


Checked the seeds no growth yet.


Two green crack seeds have sprouted so I’m going to move these to root riot plugs.

The four Jack Herer seeds have not yet sprouted so I’m going to stick them back in a ziplock covered in a paper towel, black bag, and box.


Jack Herer seeds still don’t seem to be germinating that quick. I’m going to leave them another day.

Also no sprouting in the humidity dome from the Green Crack plants.

One of the Green Crack plants popped through in the pm.


So I probably let this Green Crack plant go for too long in the dark. I’m going to move it into the grow tent where it can get a ton of blue spectrum light. This will promote bushy growth vs. the red spectrum which will cause growth in length and is better for flowering.

I’m going to move all the Jack Herer seeds to the humidity dome with the exception of one which doesn’t appear to have popped open. One of them appears to have broke when I moved it. I feel like I may have left my paper towel too wet.

Here is the placement of the seeds in the humidity dome.


You’re going to want a humid environment for your plants. I would recommend something like this.



Any of these smaller lights will work for the seedling phase.

Powerful LED’s

You are eventually going to need something more powerful. This is what I use.


Looks like all of the seedlings popped except one. Haven’t added any water since the original move from the plastic bag. Also the last Jack Herer seed is refusing to germinate. I left it in the bag but typically when it takes this long they’re duds.



Pretty sure that bottom left Jack Herer is shot. Plus the last seed doesn’t appear to be germinating.


Looks like roots are starting to appear. I’ll probably move these to a hydroponic setup soon.

First nutrients

Now that these seedlings are getting a little older I’m going to add some Clonex nutrients. I’m going to mix up 1 gallon of water and 18mL of Clonex.


So I definitely got lazy and waited too long to move these into my hydroponic box in my window seal. You can see some of the leaves are in bad shape.

I’m going to put these in my south facing window seal for light. I’m going to supplement it with a florescent light 18 hours on and 6 hours off.

Facebook Comments

Hacking your SRP time-of-use bill with a DIY Tesla Powerwall made from recycled scooter batteries

I’ve always been fascinated by technology. I love building all types of electronic projects and automating things. Recently I ran across a guy who discussed building a battery backup using recycled scooter batteries that contained 18650 rechargeable batteries. The same ones that you find in Tesla cars and Powerwalls.

I started thinking. I wonder if it would be possible to trickle charge a battery during low-cost energy hours (6PM-3PM) and then dump it back into the grid when the electricity was expensive(3PM-6PM). Or at least offset your peak hour usage with battery power. So I created some formulas and crunched some numbers. Before you read any further I want to say this is a complete hypothetical experiment. I would never connect this to my SRP system and risk them terminating my services.

Here is a list of SRP’s different electricity rates. You can see the greatest offset is in the months of May, June, July, August, September, and October. The variance in winter is not that great and you really can’t save that much using this method.

Ok, let’s compile a spreadsheet using these formulas.


Analyzing the ROI this setup using a simple 3kWh battery and a 1kW inverter we can yield 18.27% with a completely paid for system in 5.47 years. Not a bad return for someone with a little bit of money to invest.


So I started buying parts.

6 – Scooter batteries

1 – Inverter

1 – Charge/Discharge monitor

1 – Smart switch

1 – Battery Charger

1 – AC auto transfer switch

1 – Distribution block

1 – Arduino Nano

1 – Buck converter

Part 2

I’ll be assembling and testing over the next week. To be continued…

Facebook Comments

How to invest like a hedge fund manager with almost a 1,400% return in the last 14 years

A popular strategy that I have followed in my investments is crowdsourcing hedge fund manager investments. Many people don’t know this but any hedge fund that manages over $100 million dollars must report their stock holdings on a form called a 13f. This is filed with the SEC. There is a website that conveniently maps all of these filings so you can scan through your favorite investment manager and see what stocks they are buying and selling.

For instance, if you’re a fan of Warren Buffett and Charlie Munger you can take a look at Berkshire Hathaway’s holdings – https://whalewisdom.com/filer/berkshire-hathaway-inc Here is a list of their holdings which are over 1% of their portfolio

Or may be you’re a fan of Ray Dalio and you want to see what Bridgewater is holding? Here is a list of all their holdings that represent more than 1% of their portfolio.

Let’s take a look at Jim Simon’s fund Renaissance Technologies.

You get the point. You are able to get some pretty good insight as to what massive hedge funds are buying.


What I like about Whale Wisdom is they categorize the most successful hedge fund managers using what they refer to as a WhaleIndex.They then put together a list of 30 stocks based on successful fund managers. Some of their requirements are as follows.

  • Between 5 and 750 holdings in their 13F filing
  • At least 3 consecutive years of quarterly 13F filings
  • Hold no fewer than five stocks in its portfolio
  • Manage more than $100 million in marketable securities
  • Hold at least 20% of its portfolio in its top 20 stocks
  • Managers considered to be a bank, trust, pension, or insurance company are excluded

The top 40 managers who have maintained an average WhaleScore over the past 5-years higher than the five-year average WhaleScore of the S&P 500 is used in the WhaleIndex. Based on the holdings disclosed on their SEC filings, WhaleWisdom identifies the 100 stocks most commonly held among the respective managers’ 13F holdings.

The Whale Fund 2.0 is the one I follow. Since 2006 this strategy has yielded 1,345% – https://whalewisdom.com/whaleindex/portfolio_2_0

A few words of caution

13f filings come out 45 days after the quarter ends. This means the data is somewhat stale. It should also be noted that the fund could have purchased that stock at any time during the quarter. Meaning the data could be as old as 135 days. Secondly, funds are not required to report short positions or hedged positions. So you should not assume you know exactly what their portfolio consists of.


You’ll want to find a broker that allows for fractional investing if you don’t have enough money to buy full shares. Here are a couple for reference.

Firstrade – 4 free stocks with $100 deposit

Robinhood – Sign up link your bank account and get a free stock.

In Conclusion

Despite its downfalls, Whale Wisdom’s returns are still solid. While I wouldn’t recommend this strategy for your entire portfolio this is a good strategy to deploy a fixed percentage of your portfolio. There is also a book that written about this concept which you can find here – https://www.amazon.com/Invest-With-The-House-Hacking-ebook/dp/B01A3L1VEO and also an ETF that was created named VIP ETF

Facebook Comments

Getting St. Louis FRED Data in Google Colab for Python Analysis

At times when creating trading strategies using big data you need access to historical economic data. One of the best sources of data is the Economic Research branch of the St. Louis Federal Reserve or FRED. Today I’m going to show you how to pull that data into a dataframe so that you can analyze it using machine learning or AI.

The first step is to import Pandas datareader. What this piece of code does is it downloads all the data for Corporate AAA bond yields. Every dataset in FRED has a symobl. In this case it’s DAAA.

import pandas_datareader.data as web
import datetime

today = pd.to_datetime("today")
start = datetime.datetime(1900, 1, 1)
end = today

df_Corp_AAA_yield = web.DataReader(['DAAA'], 'fred', start, end)

# not working - Corp_AAA_yield = web.DataReader(['DAAA'], 'fred', start, end)

We can now visualize our dataframe by plotting it.

Facebook Comments

Normalizing Stock data for Machine Learning

When analyzing historical time frame data in machine learning it needs to be normalized. In this code example I will show how to get S&P data then convert it to a percent of daily increase/decrease as well as a logarithmic daily increase/decrease.

Colab can be found here – https://colab.research.google.com/drive/1Wvh7mRX0PUthBhXw1HD5tJAC8mQr6DYH?usp=sharing

The first part of this code will use yfinance as our datasource.

#we're going to use yfinance as our data source
!pip install yfinance --upgrade --no-cache-dir

import pandas as pd
import numpy as np
import yfinance as yf

Next we’re going to create a dataframe called df and download SPY data from 2000 to it. Finally we’ll print the result of df so you can get an idea of what is inside of it.

#Here we're creating a dataframe for spy data from 2000-current
df = yf.download('spy',
  #actions='inline',) #adjust for stock splits and dividends
#print the dataframe to see what lives in it

We’re going to drop all the columns except Adj Close. Then we’ll rename it adj_close. Next we’ll create a column labeled simple_rtn. This is the daily simple return or percent increase/decrease. The next line of code creates a logarithmic increase/decrease. Logarithmic gives equal bearing to the Y axis and can be defined as follows, “A logarithmic price scale uses the percentage of change to plot data points, so, the scale prices are not positioned equidistantly. A linear price scale uses an equal value between price scales providing an equal distance between values.”

#only keep adj close
df = df.loc[:, ['Adj Close']]
df.rename(columns={'Adj Close':'adj_close'}, inplace=True)
#create column simple return
df['simple_rtn'] = df.adj_close.pct_change()
#create column logrithmic returns
df['log_rtn'] = np.log(df.adj_close/df.adj_close.shift(1))

This next command just analyzes the data so you can spot check what you’ve created.

#here we can analyze our data

This next section describes what the daily increase/decrease of the SPY looks like. You can see didn’t statistically relevant information about S&P here.

#get statistical data on the data frame

Next we can see a distribution of adjustable close, logarithmic return, and simple return.

#view chart of data to get an overview of what lives in the data
import matplotlib.pyplot as plt
df.hist(bins=50, figsize=(20,15))

This is all for data normalization. You can now apply different algorithmic analysis to the data.

Facebook Comments

Predict S&P Using Google Colab & Facebook Prophet

A few years ago Facebook decided to open source Prophet. This is their analytics algorithm that uses an additive model to fit non-linear data with seasonality. I started to wonder, “If this algorithm were in place in March when the stock market’s crashed what would it have advised?” So I decided to give it a spin.

Let’s assume you had a significant amount of money invested in S&P index funds on March 23, 2020. Since the beginning of the year, you would have lost 31% of your money. At this point you might be thinking, “Oh shit, what do I do, sell, buy, hold?”. A lot of investors would panic and sell. The market thrives and two psychologies, fear and greed.

But let’s take an analytics approach to this problem. What would Facebook’s Prophet algorithm advise you do to? Here is how you can approach that problem.

The first thing I did was fire up Google Colab. The entire notebook can be found here.

The first part of this code uses a Python DataReader to pull SPY from Yahoo Finance. I created an end date of 3/23/2020. This only gives Facebook’s Prophet access to data up until this point. We are then going to have it predict where it thinks the price would be today 8/20/2020 without feeding it any future data.

# Python
import pandas as pd
from fbprophet import Prophet

from pandas_datareader import data as web
import datetime

import pandas as pd
import matplotlib.pyplot as plt

stock = 'spy'
endDate = datetime.datetime(2020, 3, 23)
#start_date = (datetime.datetime.now() - datetime.timedelta(days=2000)).strftime("%m-%d-%Y")
start_date = (endDate - datetime.timedelta(days=2000)).strftime("%m-%d-%Y")
df = web.DataReader(stock, data_source='yahoo', start=start_date,end=endDate)
#date is the index so you need to make it a column
df["Date"] = df.index

import matplotlib.pyplot as plt


The next part of code renames the imported columns from “Date” to “ds” and “Close” to “y”. DS and Y are the two variables that Prophet will be looking for.

# Python
df = df.rename(columns={"Date": "ds", "Close": "y"}, errors="raise")

This next part of the code starts to set up Prophet. The only variable you should be concerned with is 151. This is telling the algorithm to look out 151 days. Then it forecasts three variables yhat, yhat_lower, and yhat_upper. Yhat is the predicted price with upper and lower being the bounds in which it assumes the price will fall in.

# Python
m = Prophet()
future = m.make_future_dataframe(periods=151)
forecast = m.predict(future)
forecast[['ds', 'yhat', 'yhat_lower', 'yhat_upper']].tail()

You can see that it predicts the closing price for tomorrow will be 331.52. Remember it is only using data from March 23rd to make this calculation. Given the wild gyrations in the market, this is extremely close to being accurate. The SPY closed today at 338. Prophet predicted it would close at 331. It was off by 2%. This is using a 5-month look ahead forecasting model.

Here is the visual representation of what that looks like.

from fbprophet.plot import plot_plotly, plot_components_plotly

plot_plotly(m, forecast)

And more charts…

plot_components_plotly(m, forecast)

Finally here is the visualization of the predicted price vs. the actual price chart.

Facebook Comments