Skip to content

Instantly share code, notes, and snippets.

@ChadThackray
ChadThackray / coinbase-bars.py
Last active October 22, 2024 07:39
Get OHLC/Candlestick data from Coinbase pro historical API in Python
# Licensed under the MIT License. See comment below for full licence information.
import requests
import pandas as pd
import time
from datetime import datetime,timedelta
apiUrl = "https://api.pro.coinbase.com"
sym = "ETH-USD"
@ChadThackray
ChadThackray / mplfinance.py
Created June 21, 2024 08:06
Candlestick charts in python with mplfinance
# Licensed under the MIT License. See comment below for full licence information.
import yfinance as yf
import pandas as pd
import mplfinance as mpf
df = yf.Ticker("BTC-USD").history(period="max")
df["50ma"] = (df["Open"].rolling(window=50).mean() ) / 1.5
df["ma"] = (df["Open"].rolling(window=50).mean() ) * 1.5
@ChadThackray
ChadThackray / coingecko.py
Created June 21, 2024 08:01
Take a Crypto Market Snapshot with Python and Coingecko
# Licensed under the MIT License. See comment below for full licence information.
import pandas as pd
import requests
r = requests.get("https://www.coingecko.com/en?page=2")
df = pd.read_html(r.text)[0]
df = df[["Coin","Price","Mkt Cap"]]
@ChadThackray
ChadThackray / matplotlib-dollar-ticks.py
Last active June 21, 2024 08:02
Matplotlib currency label formatting guide
# Licensed under the MIT License. See comment below for full licence information.
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import ticker
df = pd.read_csv("bitcoin-historical-price.csv")[["Date","Value"]]
df["Date"] = pd.to_datetime(df.Date)
plt.style.use("fivethirtyeight")
@ChadThackray
ChadThackray / ta-library.py
Last active May 31, 2025 19:19
TA library tutorial in python
# Licensed under the MIT License. See comment below for full licence information.
import pandas as pd
import matplotlib.pyplot as plt
import yfinance as yf
import ta
df = yf.Ticker("BTC-USD").history(period='max').reset_index()[["Date","Close"]]
plt.style.use("dark_background")
@ChadThackray
ChadThackray / coinmarketcap-simple.py
Created June 21, 2024 07:50
Get Crypto Price Data from CoinMarketCap in python
# Licensed under the MIT License. See comment below for full licence information.
from requests import Request, Session
import json
import pprint
import time
url = 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest'
parameters = {
'slug':'bitcoin',
# Licensed under the MIT License. See comment below for full licence information.
from datetime import datetime
import backtrader as bt
class SmaCross(bt.SignalStrategy):
def __init__(self):
sma = bt.ind.SMA(period=50)
price = self.data
crossover = bt.ind.CrossOver(price, sma)
@ChadThackray
ChadThackray / portfolio-backtesting.py
Created June 21, 2024 07:34
Portfolio allocation backtesting in Python from scratch
# Licensed under the MIT License. See comment below for full licence information.
import yfinance as yf
import matplotlib.pyplot as plt
import pandas as pd
weightings1 = {"SPY":"100"}
weightings2 = {"SPY":"95","BTC-USD":"5"}
@ChadThackray
ChadThackray / candlesticks.py
Created June 21, 2024 07:26
Candlestick charts in python from scratch with Plotly
# Licensed under the MIT License. See comment below for full licence information.
import plotly.graph_objects as go
import pandas as pd
df = pd.read_csv("Kraken_BTCUSD_d.csv")
df = df.iloc[::-1]
df['date'] = pd.to_datetime(df['date'])
@ChadThackray
ChadThackray / 200wma.py
Last active May 31, 2025 19:22
Bitcoin 200wk moving average heatmap in python from scratch
# Licensed under the MIT License. See comment below for full licence information.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
## data processing
df = pd.read_csv("data.csv")
df = df.iloc[::-1]