Python Algo Trading: Build a Momentum Screener with Market Masters AI
Retail traders chase headlines and FOMO into tops. Institutions screen thousands of assets systematically. You can do the same with Python and Market Masters AI's REST API.
This script pulls real-time screeners for crypto and stocks, filters for momentum setups with conviction scores above 80, and sends Telegram alerts. No PhD required. Run it on a VPS for 24/7 operation.
Why Momentum in 2026?
Bitcoin hit $120K last cycle on momentum rotations into alts. Stocks like NVDA ran 10x on AI hype. Catch these early: volume spike plus technical confirmation.
Market Masters AI scans 2,500 cryptos and S&P 500 stocks every minute. Orion AI rates conviction from -100 to +100 across 15 indicators: RSI, MACD, Elliott Wave, order flow.
Prerequisites
pip install requests python-dotenv
Get API key from marketmasters.ai (free tier: 5 alerts/day).
# .env
MM_API_KEY=your_key_here
TELEGRAM_TOKEN=your_bot_token
TELEGRAM_CHAT_ID=your_chat_id
Core Script
Load env, hit screener endpoint, filter setups.
import requests
import os
from dotenv import load_dotenv
load_dotenv()
API_KEY = os.getenv('MM_API_KEY')
BASE_URL = 'https://api.marketmasters.ai/v1'
def get_momentum_screeners():
headers = {'Authorization': f'Bearer {API_KEY}'}
# Crypto screener: high volume movers
crypto = requests.get(f'{BASE_URL}/screener/crypto?min_volume=10m&conviction_gt=80', headers=headers).json()
# Stocks: momentum with pattern confirm
stocks = requests.get(f'{BASE_URL}/screener/equity?sector=tech&conviction_gt=80&patterns=momentum', headers=headers).json()
return crypto['results'], stocks['results']
def filter_setups(results):
setups = []
for asset in results:
if (asset['conviction'] > 85 and
asset['volume_ratio'] > 2 and
asset['wave_phase'] in ['impulse_3', 'impulse_5']):
setups.append(asset)
return setups
# Main loop
while True:
crypto_setups, stock_setups = get_momentum_screeners()
alerts = filter_setups(crypto_setups + stock_setups)
for setup in alerts[:3]: # Top 3
msg = f"{setup['symbol']}: Conv {setup['conviction']}, Vol x{setup['volume_ratio']:.1f}, Wave: {setup['wave_phase']}"
send_telegram(msg)
time.sleep(300) # 5min
Telegram Alerts
Add this function:
import requests
def send_telegram(msg):
url = f"https://api.telegram.org/bot{os.getenv('TELEGRAM_TOKEN')}/sendMessage"
data = {
'chat_id': os.getenv('TELEGRAM_CHAT_ID'),
'text': msg,
'parse_mode': 'Markdown'
}
requests.post(url, data=data)
Example Output
On April 21, 2026, at market open:
SOL: Conv 92, Vol x3.2, Wave: impulse_3
NVDA: Conv 87, Vol x2.1, Wave: impulse_5
ETH: Conv 89, Vol x2.8, Wave: impulse_3
Link to charts: append https://app.marketmasters.ai/chart/{symbol}.
Backtesting the Strategy
Test on historical data. MM API has /backtest endpoint.
def backtest_momentum(start='2025-01-01'):
params = {'strategy': 'momentum', 'conviction_gt': 80, 'start': start}
results = requests.get(f'{BASE_URL}/backtest', params=params, headers=headers).json()
print(f'Sharpe: {results["sharpe"]:.2f}, Winrate: {results["winrate"]:.1%}')
Sample: 2025 bull run returned Sharpe 1.8, 62% winrate on crypto.
Risk Management
Position size: 1% risk per trade. Stop at -2% or wave breakdown.
risk_per_trade = 0.01
stop_distance = 0.02
size = (account_balance * risk_per_trade) / stop_distance
Scale out: 50% at +2R, trail rest.
Deploy on VPS
nohup python momentum_bot.py &
Or Docker:
FROM python:3.12-slim
COPY . /app
RUN pip install -r requirements.txt
CMD ['python', 'momentum_bot.py']
Common Pitfalls
- API rate limits: Free tier 100 calls/hour. Cache results.
- Slippage: Use limit orders on Binance/Bybit.
- Overfitting: Test out-of-sample.
- Black swans: Keep dry powder.
Scaling Up
Add ML: Train on MM's pattern data.
from sklearn.ensemble import RandomForestClassifier
# Load MM historical setups, predict conviction
Premium unlocks 125x leverage paper trading.
Try It Yourself
Free tier at marketmasters.ai: screeners + Orion chat. Upgrade for API + unlimited alerts ($39.99/mo).
Fork this on GitHub, tweak filters. Questions? Reply below.
Top comments (0)