initial commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# John Carter TTM TradingView Project
|
||||
|
||||
This repository contains Pine Script implementations of John Carter’s **TTM Trend** and **TTM Squeeze** indicators, adapted for TradingView.
|
||||
It also includes crossover logic (8/18 SMA) and long-term trend filters (100 SMA).
|
||||
|
||||
---
|
||||
|
||||
## 📂 Project Structure
|
||||
- `ttm_trend.pine` → Solid candle coloring (blue/red/gray) + SMA crossover signals.
|
||||
- `ttm_squeeze.pine` → Momentum histogram + squeeze dots (with adjustable size).
|
||||
- `ttm_strategy.pine` → Combined signals for backtesting entries/exits.
|
||||
- `README.md` → Documentation and usage notes.
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Default Settings (John Carter)
|
||||
- **TTM Squeeze**
|
||||
- Bollinger Bands: 20-period SMA, 2.0 StdDev
|
||||
- Keltner Channels: 20-period SMA, 1.5 × ATR
|
||||
- Histogram: 20-period linear regression
|
||||
- **TTM Trend**
|
||||
- Trend baseline: 20 SMA
|
||||
- Candle colors: Blue (uptrend), Red (downtrend), Gray (neutral)
|
||||
- **Crossover**
|
||||
- Fast SMA: 8
|
||||
- Slow SMA: 18
|
||||
- Long-term SMA: 100 (white)
|
||||
|
||||
---
|
||||
|
||||
## 🚀 Usage
|
||||
1. Copy `.pine` files into TradingView’s Pine Editor.
|
||||
2. Add indicators to your chart:
|
||||
- Overlay `ttm_trend.pine` on price.
|
||||
- Add `ttm_squeeze.pine` in a separate panel.
|
||||
3. Adjust inputs (lengths, multipliers) in the settings panel to match your trading style.
|
||||
|
||||
---
|
||||
|
||||
## 📈 Strategy Notes
|
||||
- **Buy Signal**: 8 SMA crosses above 18 SMA, candles blue, squeeze fires.
|
||||
- **Sell Signal**: 8 SMA crosses below 18 SMA, candles red, squeeze fires.
|
||||
- **Filter**: Optional — only take signals aligned with the 100 SMA trend.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Next Steps
|
||||
- Add alerts for squeeze releases.
|
||||
- Backtest combined signals in `ttm_strategy.pine`.
|
||||
- Experiment with different lengths (e.g., 21, 30) for volatility adaptation.
|
||||
@@ -0,0 +1,29 @@
|
||||
//@version=5
|
||||
indicator("TTM Squeeze", overlay=false)
|
||||
|
||||
squeezeLen = input.int(20, "Squeeze Length")
|
||||
mult = input.float(2.0, "StdDev Multiplier")
|
||||
|
||||
// Bollinger Bands
|
||||
basis = ta.sma(close, squeezeLen)
|
||||
dev = mult * ta.stdev(close, squeezeLen)
|
||||
upperBB = basis + dev
|
||||
lowerBB = basis - dev
|
||||
|
||||
// Keltner Channels
|
||||
atr = ta.atr(squeezeLen)
|
||||
upperKC = basis + atr * 1.5
|
||||
lowerKC = basis - atr * 1.5
|
||||
|
||||
// Squeeze condition
|
||||
squeezeOn = (upperBB < upperKC) and (lowerBB > lowerKC)
|
||||
|
||||
// Momentum histogram
|
||||
mom = ta.linreg(close - basis, squeezeLen, 0)
|
||||
|
||||
// Bigger squeeze dots
|
||||
plot(squeezeOn ? 0 : na, style=plot.style_circles, color=color.red, linewidth=4, title="Squeeze On")
|
||||
plot(not squeezeOn ? 0 : na, style=plot.style_circles, color=color.green, linewidth=4, title="Squeeze Off")
|
||||
|
||||
// Momentum histogram
|
||||
plot(mom, style=plot.style_histogram, color=mom >= 0 ? color.lime : color.orange, title="Momentum")
|
||||
@@ -0,0 +1,39 @@
|
||||
//@version=5
|
||||
indicator("TTM Trend + SMA Crossover + 100 SMA", overlay=true)
|
||||
|
||||
// Trend baseline
|
||||
length = input.int(20, "Trend Length")
|
||||
ma = ta.sma(close, length)
|
||||
|
||||
// Candle colors (TTM Trend)
|
||||
trendColor = close > ma ? color.blue : close < ma ? color.red : color.gray
|
||||
plotcandle(open, high, low, close,
|
||||
color=trendColor,
|
||||
wickcolor=trendColor,
|
||||
bordercolor=trendColor,
|
||||
title="TTM Trend Candles")
|
||||
|
||||
// SMA crossover logic
|
||||
fastLen = input.int(8, "Fast SMA")
|
||||
slowLen = input.int(18, "Slow SMA")
|
||||
|
||||
fastMA = ta.sma(close, fastLen)
|
||||
slowMA = ta.sma(close, slowLen)
|
||||
|
||||
plot(fastMA, color=color.yellow, title="8 SMA")
|
||||
plot(slowMA, color=color.purple, title="18 SMA")
|
||||
|
||||
// Add 100 SMA in white
|
||||
sma100 = ta.sma(close, 100)
|
||||
plot(sma100, color=color.white, title="100 SMA")
|
||||
|
||||
// Detect crossovers
|
||||
bullCross = ta.crossover(fastMA, slowMA)
|
||||
bearCross = ta.crossunder(fastMA, slowMA)
|
||||
|
||||
// Print buy/sell labels
|
||||
plotshape(bullCross, title="Buy Signal", text="BUY", style=shape.labelup,
|
||||
location=location.belowbar, color=color.green, textcolor=color.white, size=size.tiny)
|
||||
|
||||
plotshape(bearCross, title="Sell Signal", text="SELL", style=shape.labeldown,
|
||||
location=location.abovebar, color=color.red, textcolor=color.white, size=size.tiny)
|
||||
Reference in New Issue
Block a user