Crypto Screener
Complete guide to screening cryptocurrency data with the Crypto Screener.
Overview
The CryptoScreener provides access to cryptocurrency market data from TradingView with over 3,108 technical fields including candlestick patterns, technical indicators across multiple timeframes, pivot points, and fundamental data. This implementation provides full parity with the Python tvscreener library.
import { CryptoScreener, CryptoField } from 'tradingview-screener';
const screener = new CryptoScreener();Basic Usage
screener
.where(CryptoField.MARKET_CAP.gt(1_000_000_000))
.where(CryptoField.VOLUME_24H_IN_USD.gte(100_000_000))
.select(
CryptoField.NAME,
CryptoField.PRICE,
CryptoField.CHANGE_PERCENT,
CryptoField.MARKET_CAP
)
.sortBy(CryptoField.MARKET_CAP, false);
const results = await screener.get();
console.table(results.data);Available Fields
The Crypto Screener provides access to 3,108 fields across multiple categories, with support for 9 different timeframes (1min, 5min, 15min, 30min, 1hr, 2hr, 4hr, 1day, 1week, 1month).
Field Categories
- Basic Data: Price, volume, market cap, OHLC values
- Technical Indicators: RSI, MACD, Stochastic, ADX, CCI, momentum indicators
- Moving Averages: SMA, EMA, WMA, VWMA, Hull MA with various periods
- Volatility Indicators: ATR, Bollinger Bands, Keltner Channels, Donchian Channels
- Oscillators: Awesome Oscillator, Williams %R, Ultimate Oscillator, Chaikin Money Flow
- Trend Analysis: Ichimoku, Aroon, Parabolic SAR, ADX
- Candlestick Patterns: 17 different patterns (Doji, Engulfing, Hammer, etc.)
- Pivot Points: Fibonacci, Camarilla, Woodie, Classic, DM pivots
- Recommendations: Technical ratings based on various indicators
Basic Fields
CryptoField.NAME // Cryptocurrency name
CryptoField.PRICE // Current price (close)
CryptoField.OPEN // Open price
CryptoField.HIGH // High price
CryptoField.LOW // Low price
CryptoField.VOLUME // Trading volume
CryptoField.CHANGE_PERCENT // 24h change percentage
CryptoField.VOLUME_24H_IN_USD // 24-hour trading volume in USD
CryptoField.MARKET_CAP // Market capitalization
CryptoField.VOLUME_24H_CHANGE_PERCENT // 24h volume change percentageTechnical Indicators
RSI (Relative Strength Index)
CryptoField.RELATIVE_STRENGTH_INDEX_14 // RSI(14) - default timeframe
CryptoField.RSI10 // RSI(10)
CryptoField.RSI10_1 // RSI(10) - 1 minute
CryptoField.RSI10_5 // RSI(10) - 5 minutes
CryptoField.RSI10_15 // RSI(10) - 15 minutes
CryptoField.RSI10_30 // RSI(10) - 30 minutes
CryptoField.RSI10_60 // RSI(10) - 1 hour
CryptoField.RSI10_120 // RSI(10) - 2 hours
CryptoField.RSI10_240 // RSI(10) - 4 hours
CryptoField.RSI10_1W // RSI(10) - 1 week
CryptoField.RSI10_1M // RSI(10) - 1 monthMACD
CryptoField.MACD_LEVEL_12_26 // MACD line (12, 26, 9)
CryptoField.MACD_SIGNAL_12_26 // MACD signal line
CryptoField.MACD_HIST // MACD histogram - default
CryptoField.MACD_HIST_1 // MACD histogram - 1 minute
CryptoField.MACD_HIST_5 // MACD histogram - 5 minutes
CryptoField.MACD_HIST_15 // MACD histogram - 15 minutes
CryptoField.MACD_HIST_60 // MACD histogram - 1 hourStochastic
CryptoField.STOCHASTIC_PERCENTD_14_3_3 // Stochastic %D (14, 3, 3)
CryptoField.STOCH_D_14_1_3 // Stochastic D line
CryptoField.STOCH_K_14_1_3 // Stochastic K lineADX (Average Directional Index)
CryptoField.AVERAGE_DIRECTIONAL_INDEX_14 // ADX(14)
CryptoField.POSITIVE_DIRECTIONAL_INDICATOR_14 // +DI(14)
CryptoField.NEGATIVE_DIRECTIONAL_INDICATOR_14 // -DI(14)
CryptoField.ADX_PLUS_DI_1 // +DI[1] - previous value
CryptoField.ADX_MINUS_DI_1 // -DI[1] - previous valueCCI (Commodity Channel Index)
CryptoField.COMMODITY_CHANNEL_INDEX_20 // CCI(20)
CryptoField.CCI20_1 // CCI(20)[1] - previous valueMoving Averages
Exponential Moving Average (EMA)
CryptoField.EXPONENTIAL_MOVING_AVERAGE_10 // EMA(10)
CryptoField.EXPONENTIAL_MOVING_AVERAGE_20 // EMA(20)
CryptoField.EXPONENTIAL_MOVING_AVERAGE_30 // EMA(30)
CryptoField.EXPONENTIAL_MOVING_AVERAGE_50 // EMA(50)
CryptoField.EXPONENTIAL_MOVING_AVERAGE_100 // EMA(100)
CryptoField.EXPONENTIAL_MOVING_AVERAGE_200 // EMA(200)
CryptoField.EMA12 // EMA(12)
CryptoField.EMA26 // EMA(26)
// With timeframes
CryptoField.EMA100_1 // EMA(100) - 1 minute
CryptoField.EMA100_5 // EMA(100) - 5 minutes
CryptoField.EMA100_15 // EMA(100) - 15 minutes
CryptoField.EMA100_60 // EMA(100) - 1 hour
CryptoField.EMA100_1W // EMA(100) - 1 weekSimple Moving Average (SMA)
CryptoField.SIMPLE_MOVING_AVERAGE_10 // SMA(10)
CryptoField.SIMPLE_MOVING_AVERAGE_20 // SMA(20)
CryptoField.SIMPLE_MOVING_AVERAGE_50 // SMA(50)
CryptoField.SIMPLE_MOVING_AVERAGE_100 // SMA(100)
CryptoField.SIMPLE_MOVING_AVERAGE_200 // SMA(200)Other Moving Averages
CryptoField.VOLUME_WEIGHTED_MOVING_AVERAGE_20 // VWMA(20)
CryptoField.HULL_MOVING_AVERAGE_9 // Hull MA(9)
CryptoField.HULLMA20 // Hull MA(20)
CryptoField.HULLMA200 // Hull MA(200)Volatility Indicators
Bollinger Bands
CryptoField.BOLLINGER_UPPER_BAND_20 // BB Upper (20, 2)
CryptoField.BOLLINGER_LOWER_BAND_20 // BB Lower (20, 2)
CryptoField.BB_BASIS // BB Middle line
CryptoField.BB_UPPER_50 // BB Upper (50, 2)
CryptoField.BB_LOWER_50 // BB Lower (50, 2)ATR (Average True Range)
CryptoField.AVERAGE_TRUE_RANGE_14 // ATR(14)
CryptoField.ATRP // ATR as percentage - default
CryptoField.ATRP_1 // ATR% - 1 minute
CryptoField.ATRP_5 // ATR% - 5 minutes
CryptoField.ATRP_15 // ATR% - 15 minutes
CryptoField.ATRP_60 // ATR% - 1 hourOther Volatility Indicators
CryptoField.DONCHIAN_CHANNELS_LOWER_BAND_20 // Donchian Channel Lower (20)
CryptoField.AVERAGE_DAY_RANGE_14 // ADR(14)Oscillators
CryptoField.AWESOME_OSCILLATOR // Awesome Oscillator
CryptoField.AO_1 // AO[1] - previous value
CryptoField.WILLIAMS_PERCENT_RANGE_14 // Williams %R(14)
CryptoField.W_R_1 // Williams %R - 1 minute
CryptoField.MOMENTUM_10 // Momentum(10)
CryptoField.MOM_1 // Momentum - 1 minute
CryptoField.CHAIKINMONEYFLOW // Chaikin Money Flow
CryptoField.BULL_BEAR_POWER // Bull Bear PowerIchimoku Cloud
CryptoField.ICHIMOKU_BASE_LINE_9_26_52_26 // Kijun-sen (Base Line)
CryptoField.ICHIMOKU_CONVERSION_LINE_9_26_52_26 // Tenkan-sen (Conversion Line)
CryptoField.ICHIMOKU_LEADING_SPAN_A_9_26_52_26 // Senkou Span A
CryptoField.ICHIMOKU_BLINE_20_60_120_30 // Alternative base lineCandlestick Patterns
The screener includes 17 candlestick pattern recognition fields, available across all timeframes:
// Available patterns (all with timeframe variants):
CryptoField.CANDLE_3BLACKCROWS // Three Black Crows - default
CryptoField.CANDLE_3BLACKCROWS_1 // Three Black Crows - 1 minute
CryptoField.CANDLE_3BLACKCROWS_5 // Three Black Crows - 5 minutes
CryptoField.CANDLE_3BLACKCROWS_15 // Three Black Crows - 15 minutes
CryptoField.CANDLE_3BLACKCROWS_60 // Three Black Crows - 1 hour
CryptoField.CANDLE_3BLACKCROWS_1W // Three Black Crows - 1 week
// Other patterns (each available with all timeframes):
// - 3WhiteSoldiers (Three White Soldiers)
// - AbandonedBaby
// - Doji
// - Engulfing (Bullish/Bearish Engulfing)
// - EveningStar
// - Hammer
// - HangingMan
// - Harami
// - InvertedHammer
// - Kicking
// - LongShadow
// - Marubozu
// - MorningStar
// - ShootingStar
// - SpinningTop
// - TriStarPivot Points
Multiple pivot point calculation methods with support levels (S1, S2, S3) and resistance levels (R1, R2, R3):
// Camarilla Pivots
CryptoField.PIVOT_CAMARILLA_P // Camarilla Pivot Point
CryptoField.PIVOT_M_CAMARILLA_MIDDLE_1 // Camarilla Middle - 1 min
CryptoField.PIVOT_M_CAMARILLA_MIDDLE_5 // Camarilla Middle - 5 min
// Also available: Fibonacci, Woodie, Classic, and DM pivot methodsTechnical Recommendations
CryptoField.TECHNICAL_RATING // Overall technical rating
CryptoField.REC_BBPOWER // Recommendation: Bull Bear Power
CryptoField.REC_ICHIMOKU // Recommendation: Ichimoku
CryptoField.REC_STOCH_RSI // Recommendation: Stochastic RSI
CryptoField.REC_WR // Recommendation: Williams %R
CryptoField.REC_HULLMA9 // Recommendation: Hull MA(9)
CryptoField.REC_VWMA // Recommendation: VWMACommon Use Cases
Large Cap Cryptocurrencies
screener
.where(CryptoField.MARKET_CAP.gt(1_000_000_000))
.where(CryptoField.VOLUME_24H_IN_USD.gte(100_000_000))
.select(
CryptoField.NAME,
CryptoField.PRICE,
CryptoField.MARKET_CAP,
CryptoField.VOLUME_24H_IN_USD
)
.sortBy(CryptoField.MARKET_CAP, false)
.setRange(0, 50);High Volume Cryptos
screener
.where(CryptoField.VOLUME_24H_IN_USD.gte(500_000_000))
.select(
CryptoField.NAME,
CryptoField.PRICE,
CryptoField.VOLUME_24H_IN_USD
)
.sortBy(CryptoField.VOLUME_24H_IN_USD, false);Top Gainers
screener
.where(CryptoField.CHANGE_PERCENT.gt(10))
.where(CryptoField.MARKET_CAP.gt(100_000_000))
.select(
CryptoField.NAME,
CryptoField.PRICE,
CryptoField.CHANGE_PERCENT
)
.sortBy(CryptoField.CHANGE_PERCENT, false);Market Cap Ranges
// Mid-cap cryptos
screener.where(CryptoField.MARKET_CAP.between(100_000_000, 1_000_000_000));
// Large-cap only
screener.where(CryptoField.MARKET_CAP.gt(10_000_000_000));Filtering Examples
Price Range
screener
.where(CryptoField.PRICE.between(0.01, 100))
.where(CryptoField.VOLUME_24H_IN_USD.gte(1_000_000));Volume Threshold
screener
.where(CryptoField.VOLUME_24H_IN_USD.gte(50_000_000))
.sortBy(CryptoField.VOLUME_24H_IN_USD, false);Market Cap Range
screener
.where(CryptoField.MARKET_CAP.between(1e9, 50e9))
.select(CryptoField.NAME, CryptoField.MARKET_CAP);Sorting
// Sort by market cap (largest first)
screener.sortBy(CryptoField.MARKET_CAP, false);
// Sort by volume (highest first)
screener.sortBy(CryptoField.VOLUME_24H_IN_USD, false);
// Sort by change (biggest gainers first)
screener.sortBy(CryptoField.CHANGE_PERCENT, false);
// Sort by price (lowest first)
screener.sortBy(CryptoField.PRICE, true);Real-Time Streaming
screener
.where(CryptoField.MARKET_CAP.gt(1e9))
.select(
CryptoField.NAME,
CryptoField.PRICE,
CryptoField.CHANGE_PERCENT
)
.sortBy(CryptoField.CHANGE_PERCENT, false)
.setRange(0, 10);
// Stream top 10 gainers
for await (const data of screener.stream({ interval: 5000 })) {
if (data) {
console.clear();
console.log('Top 10 Crypto Gainers');
console.table(data.data);
}
}Working with Results
const results = await screener.get();
// Access data
results.data.forEach(crypto => {
console.log(`${crypto.name}: $${crypto.close}`);
console.log(`24h Change: ${crypto.change}%`);
console.log(`Market Cap: $${crypto.market_cap_calc}`);
});
// Filter in JavaScript
const highVolume = results.data.filter(
c => c['Value.Traded'] > 100_000_000
);Complete Example
import { CryptoScreener, CryptoField } from 'tradingview-screener';
async function findTopCryptos() {
const screener = new CryptoScreener();
screener
.where(CryptoField.MARKET_CAP.gt(500_000_000))
.where(CryptoField.VOLUME_24H_IN_USD.gte(50_000_000))
.select(
CryptoField.NAME,
CryptoField.PRICE,
CryptoField.CHANGE_PERCENT,
CryptoField.VOLUME_24H_IN_USD,
CryptoField.MARKET_CAP
)
.sortBy(CryptoField.MARKET_CAP, false)
.setRange(0, 20);
const results = await screener.get();
console.log(`Found ${results.totalCount} cryptocurrencies`);
console.table(results.data);
}
findTopCryptos().catch(console.error);Next Steps
- Filter Operations - All comparison operators
- Crypto Fields Reference - All available fields
- Streaming Guide - Real-time data