Skip to content

Instantly share code, notes, and snippets.

View lmh132's full-sized avatar

Leo Hu lmh132

View GitHub Profile
@lmh132
lmh132 / bsbacktest.py
Created October 6, 2025 22:49
Blakc-Scholes Backtesting
# ===============================================================
# Imports
# ===============================================================
# Core Libraries
import pandas as pd
import matplotlib.pyplot as plt
import yfinance as yf
from scipy.stats import norm, linregress
import numpy as np
import plotly.graph_objects as go
@lmh132
lmh132 / cryptorecorder.py
Created October 6, 2025 22:47
Crypto Data Recorder
# ===============================================================
# Imports
# ===============================================================
from datacollection.DataListeners import EventListener
from utils.util import get_month_day, Webscraper
from utils.KalshiClient import ExchangeClient
import asyncio
from datetime import datetime
from pandas import DataFrame
import pandas as pd
@lmh132
lmh132 / bsmstrat.py
Created October 5, 2025 20:09
Strategy Development - Black Scholes
# ===============================================================
# Imports
# ===============================================================
from base_strategy import BaseStrategy
from datacollection.DataListeners import EventListener
import asyncio
import time
from utils.util import calc_fees, get_digits
from utils.KalshiClientV3 import ExchangeClient
import yfinance as yf
@lmh132
lmh132 / cryptoarb.py
Last active October 6, 2025 23:08
Strategy Development - Crypto Arbitrage
import asyncio
import uuid
import math
import time
from utils.KalshiClient import ExchangeClient
from datacollection.DataListeners import EventListener
from utils.util import filter_digits, get_month_day, get_hour
from datetime import datetime
import traceback
@lmh132
lmh132 / abstractstrat.py
Last active October 5, 2025 19:14
Base Strategy Class
# =========================================
# IMPORTS
# =========================================
import uuid, time, asyncio
from abc import ABC, abstractmethod
from utils.util import filter_digits, calc_fees, cut_down
from utils.KalshiClientV3 import ExchangeClient
from datacollection.DataListeners import EventListener, MarketListener
# =========================================
@lmh132
lmh132 / events.py
Last active October 5, 2025 02:22
Engine Infrastructure - Events Class
# =========================================
# IMPORTS & CONFIG
# =========================================
import json, asyncio, websockets, base64
from datetime import datetime
from cryptography.hazmat.primitives import hashes, serialization
from cryptography.hazmat.primitives.asymmetric import padding, rsa
from cryptography.exceptions import InvalidSignature
from utils.KalshiClient import ExchangeClient
from config import WEBSOCKET_ENDPOINT
@lmh132
lmh132 / webscraper.py
Created October 5, 2025 01:11
Data collection - Bitcoin Data
class Webscraper:
def __init__(self):
options = webdriver.ChromeOptions()
options.add_argument('--headless')
self.driver = webdriver.Chrome(options=options)
def get_BTC_price(self):
endpoint = "https://www.cfbenchmarks.com/data/indices/BRTI?ref=blog.cfbenchmarks.com"
self.driver.get(endpoint)
return filter_digits(self.driver.find_element(By.CSS_SELECTOR, r'span.text-sm.font-semibold.tabular-nums.md\:text-2xl').text)
@lmh132
lmh132 / popvotemargin.py
Last active October 5, 2025 01:07
Data collection – popular vote margins
# =========================================
# IMPORTS & SETUP
# =========================================
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from bs4 import BeautifulSoup
from selenium.webdriver.common.action_chains import ActionChains
import re