Skip to content

Instantly share code, notes, and snippets.

View oreilm49's full-sized avatar

Mark O'Reilly oreilm49

View GitHub Profile
@oreilm49
oreilm49 / btc_strategy_algorithm.py
Created November 22, 2022 06:16
BTC strategy - algorithm
class CryptoMomentum(QCAlgorithm):
def Initialize(self):
resolution = Resolution.Daily
self.SetBrokerageModel(BrokerageName.Binance, AccountType.Cash)
self.SetStartDate(2018, 1, 1)
self.SetCash('USDT', 9000)
self.SetWarmUp(timedelta(200), resolution)
self.EQUITY_RISK_PC = 0.01
tickers = [
@oreilm49
oreilm49 / btc_strategy_initialize.py
Created November 22, 2022 04:48
BTC strategy - initialize
class CryptoMomentum(QCAlgorithm):
def Initialize(self):
resolution = Resolution.Daily
self.SetBrokerageModel(BrokerageName.Binance, AccountType.Cash)
self.SetStartDate(2018, 1, 1)
self.SetCash('USDT', 9000)
self.SetWarmUp(timedelta(200), resolution)
self.EQUITY_RISK_PC = 0.01
tickers = [
@oreilm49
oreilm49 / btc_strategy_symbol_indicators.py
Last active November 22, 2022 04:46
BTC strategy - symbol indicators
class SymbolIndicators:
def __init__(self) -> None:
self.ma = SimpleMovingAverage(50)
self.ma_long = SimpleMovingAverage(200)
self.atr = AverageTrueRange(21)
self.closed_below_window = RollingWindow[bool](2)
def update(self, trade_bar):
self.ma.Update(trade_bar.EndTime, trade_bar.Close)
self.ma_long.Update(trade_bar.EndTime, trade_bar.Close)
@oreilm49
oreilm49 / trend_template.py
Created November 16, 2022 05:24
Coding the Mark Minervini Trend Template
import datetime
import yfinance as yf
import pandas as pd
from typing import Optional;
def ticker_in_uptrend(ticker: str) -> tuple[bool, Optional[str]]:
now = datetime.datetime.now()
price_data = yf.download(
ticker,
now - datetime.timedelta(days=365),