אנו מפתחים סורקי נפח מקצועיים עבור קרנות קריפטו וסוחרים העובדים עם חריגות נפח. פיתוח סורק הנפח שלנו מתמקד בסורק נפח מסחר לניתוח נפח קריפטו, תוך שימוש במדד RVOL כגלאי קפיצות נפח. פתרונות מוכנים כמו CoinMarketCap מציגים רק את 10 המובילים לפי נפח מוחלט — אתם מפספסים קפיצות בזוגות חדשים ב-Uniswap או בבורסות CEX עם נזילות נמוכה. מנועי הסורק שלנו עוקבים אחר 500+ זוגות ב-10 בורסות בו-זמנית, ומחשבים יחס נפח, נפח יחסי (RVOL) ומגמת נפח בזמן אמת. כל שנייה של עיכוב עולה כסף: סוחרים מקצועיים מפסידים את ההזדמנות להיכנס לפוזיציה לפני ההמון. לכן, אנו מיישמים איסוף נתונים עם חביון מינימלי, מדדים מותאמים אישית והתראות דרך Telegram/Slack.
המאפיין המרכזי של הגישה שלנו הוא סף אדפטיבי: איננו משתמשים בספים קבועים אלא מתאימים את עצמנו לתנודתיות של כל זוג בכל מסגרת זמן. זה מניב פי 2–3 פחות אותות שווא בהשוואה ליחס קבוע של 3. התוצאה — אתם רואים רק את הקפיצות שבאמת חשובות, לא את הרעש. עם ניסיון של 5+ שנים ו-50+ פרויקטים שהושלמו, הצוות שלנו מבטיח פיתוח סורק נפח באיכות גבוהה.
למה יחס נפח פשוט לא מספיק
יחס נפח = נפח נוכחי / ממוצע על פני N תקופות. יחס > 3 מצביע על קפיצה פוטנציאלית. אבל שימוש במדד זה בלבד ייתן תוצאות חיוביות שגויות בזוגות עם מחזורים יומיים. לדוגמה, ב-ETH/USDT בשעה 2:00 לפנות בוקר הנורמה היא 10,000 ETH, בעוד שבשעה 14:00 היא 100,000 ETH. יחס של 3 בלילה הוא רק 30,000, שזה נורמלי במהלך היום. לכן אנו מוסיפים RVOL — נפח יחסי לפי שעה ביום (נפח יחסי).
RVOL מאזן עונתיות: עבור כל שעה, אנו שומרים את הנפח הממוצע על פני 30 יום. הנפח הנוכחי מחולק בממוצע השעתי. RVOL > 2 מצביע על חריגה ללא קשר לשעה.
| מדד | נוסחה | יתרון |
|---|---|---|
| יחס נפח | נוכחי / ממוצע על פני 20 | מזהה גידול בנפח |
| RVOL | נוכחי / ממוצע לשעה זו | מתחשב בעונתיות יומית |
| קפיצת נפח | התפרצות פתאומית > פי 3 מהנר הקודם | כניסה של שחקן גדול |
| OBV | מדד מצטבר | זרימת כסף (צבירה/פיזור) |
| מגמת נפח | שיפוע רגרסיה על פני 5 נרות | כיוון (עולה/יורד) |
איך לאסוף נתונים מ-5 בורסות בו-זמנית
איסוף מקבילי הוא האתגר המרכזי. בורסה אחת מחזירה נתונים ב-50–200 אלפיות שנייה, אבל חמש ברצף לוקחות שנייה אחת. אנו משתמשים ב-Promise.all עם חלוקה לקבוצות של 10 סמלים והפסקות בין קבוצות כדי להימנע מחריגה ממגבלות קצב.
הנה דוגמה למחלקת VolumeDataCollector — היא שומרת נרות במטמון ומסננת זוגות לפי יחס נפח מינימלי.
class VolumeDataCollector {
private candleCache = new Map<string, OHLCV[]>();
private exchange: ccxt.Exchange;
async fetchAllCandles(symbols: string[], timeframe: string): Promise<void> {
const chunks = chunkArray(symbols, 10);
for (const chunk of chunks) {
await Promise.all(
chunk.map(async (symbol) => {
const candles = await this.exchange.fetchOHLCV(symbol, timeframe, undefined, 100);
this.candleCache.set(`${symbol}:${timeframe}`, candles.map(formatCandle));
})
);
await sleep(100);
}
}
async getScreenerData(timeframe: string, minVolumeRatio: number = 2): Promise<VolumeScreenerItem[]> {
const results: VolumeScreenerItem[] = [];
for (const [key, candles] of this.candleCache) {
if (!key.endsWith(`:${timeframe}`)) continue;
const symbol = key.split(':')[0];
if (candles.length < 21) continue;
const metrics = calculateVolumeMetrics(candles.slice(0, -1), candles[candles.length - 1]);
if (metrics.volumeRatio >= minVolumeRatio) {
results.push({
symbol,
currentVolume: candles[candles.length - 1].volume,
...metrics,
});
}
}
return results.sort((a, b) => b.volumeRatio - a.volumeRatio);
}
} איך מחושבים מדדי נפח (הסבר)
הפונקציה class VolumeDataCollector { private candleCache = new Map<string, OHLCV[]>(); private exchange: ccxt.Exchange; async fetchAllCandles(symbols: string[], timeframe: string): Promise<void> { const chunks = chunkArray(symbols, 10); for (const chunk of chunks) { await Promise.all( chunk.map(async (symbol) => { const candles = await this.exchange.fetchOHLCV(symbol, timeframe, undefined, 100); this.candleCache.set(`${symbol}:${timeframe}`, candles.map(formatCandle)); }) ); await sleep(100); } } async getScreenerData(timeframe: string, minVolumeRatio: number = 2): Promise<VolumeScreenerItem[]> { const results: VolumeScreenerItem[] = []; for (const [key, candles] of this.candleCache) { if (!key.endsWith(`:${timeframe}`)) continue; const symbol = key.split(':')[0]; if (candles.length < 21) continue; const metrics = calculateVolumeMetrics(candles.slice(0, -1), candles[candles.length - 1]); if (metrics.volumeRatio >= minVolumeRatio) { results.push({ symbol, currentVolume: candles[candles.length - 1].volume, ...metrics, }); } } return results.sort((a, b) => b.volumeRatio - a.volumeRatio); } } לוקחת את 20 הנרות האחרונים לממוצע, את הנר הנוכחי ליחס נפח, ואת 5 האחרונים למגמה. מגמת נפח מחושבת באמצעות רגרסיה לינארית: שיפוע חיובי מצביע על עלייה, שיפוע שלילי מצביע על ירידה. קפיצה מסומנת כאשר יחס > 3 ללא קשר למגמה.
function calculateVolumeMetrics( candles: OHLCV[], currentCandle: OHLCV ): VolumeMetrics {
const period = 20;
const recentCandles = candles.slice(-period);
const avgVolume = recentCandles.reduce((sum, c) => sum + c.volume, 0) / period;
const volumeRatio = currentCandle.volume / avgVolume;
const recentVolumes = candles.slice(-5).map(c => c.volume);
const volumeTrendSlope = linearRegressionSlope(recentVolumes);
const priceChange = (currentCandle.close - candles.slice(-2)[0].close) / candles.slice(-2)[0].close;
const volumeChange = currentCandle.volume / candles.slice(-2)[0].volume - 1;
const confirming = (priceChange > 0 && volumeChange > 0) || (priceChange < 0 && volumeChange > 0);
return {
avgVolume,
volumeRatio,
volumeTrend: volumeTrendSlope > 0.1 ? 'increasing' : volumeTrendSlope < -0.1 ? 'decreasing' : (volumeRatio > 3 ? 'spike' : 'normal'),
volumePrice: confirming ? 'confirming' : 'diverging',
};
} ממשק משתמש לסוחרים: מה אנו מטמיעים
הממשק הוא טבלת React עם מיון עמודות ואינדיקטורים חזותיים. אנו משתמשים ברכיב calculateVolumeMetrics שמדגיש שורות עם יחס > 5 בכתום — סוחרים רואים אותות דחופים בשנייה.
const VolumeRow: React.FC<{ item: VolumeScreenerItem }> = ({ item }) => (
<tr className={item.volumeRatio > 5 ? 'highlight-spike' : ''}>
<td><a href={`/trade/${item.symbol}`}>{item.symbol}</a></td>
<td>
<VolumeRatioBar ratio={item.volumeRatio} />
<span>{item.volumeRatio.toFixed(1)}x</span>
</td>
<td>{item.rvol.toFixed(1)}x</td>
<td>{formatVolume(item.currentVolume)}</td>
<td className={item.priceChange > 0 ? 'green' : 'red'}>
{item.priceChange > 0 ? '+' : ''}{item.priceChange.toFixed(2)}%
</td>
<td><TrendIcon trend={item.volumeTrend} /></td>
<td>
<span className={item.volumePrice === 'confirming' ? 'green' : 'yellow'}>
{item.volumePrice === 'confirming' ? '✓ Confirm' : '⚡ Diverge'}
</span>
</td>
</tr>
); איך להגדיר התראות לאסטרטגיה שלכם
הצגת נתונים אינה מספיקה — סוחרים צריכים התראות. אנו מגדירים התראות דרך Telegram, דוא"ל או webhook. כל התראה מקושרת לסמל וליחס מינימלי. כאשר הסף מושג, נשלחת הודעה מפורטת.
| ערוץ | פורמט | חביון אופייני |
|---|---|---|
| Telegram | טקסט Markdown | 1–3 שניות |
| דוא"ל | HTML | 10–30 שניות |
| Webhook | JSON | 0.5–2 שניות |
async function checkVolumeAlerts(screenerData: VolumeScreenerItem[], alerts: VolumeAlert[]) {
for (const alert of alerts) {
const item = screenerData.find(d => d.symbol === alert.symbol);
if (!item) continue;
if (item.volumeRatio >= alert.minVolumeRatio) {
await sendAlert(alert.notifyVia, {
message: `Volume spike on ${item.symbol}! Ratio: ${item.volumeRatio.toFixed(1)}x avg | Price: ${item.priceChange > 0 ? '+' : ''}${item.priceChange.toFixed(2)}%`,
});
}
}
} התהליך שלנו
- ניתוח — דיון בבורסות, זוגות, מדדים וסוגי התראות.
- עיצוב — ארכיטקטורה לאיסוף, מטמון, סינון; עיצוב ממשק משתמש.
- פיתוח — איסוף נתונים, חישוב מדדים, התראות, ממשק; בדיקות נכתבות במקביל.
- אינטגרציה — חיבור בורסות דרך API, הגדרת מגבלות קצב.
- בדיקות — אימות מול נתונים היסטוריים, הפחתת תוצאות חיוביות שגויות, אופטימיזציה של ספים.
- פריסה — פריסה לענן (AWS/GCP), הגדרת ניטור.
כדי להתחיל לעבוד על פרויקט, צרו קשר — ננתח את הדרישות ונציע ארכיטקטורה תוך יומיים. קבלו ייעוץ והערכה ראשונית עוד היום.
מה כלול
- תיעוד ארכיטקטוני ודיאגרמות זרימת נתונים
- קוד מקור של סורק הנפח עם API פתוח
- טבלה אדפטיבית עם מיון וסינון
- מערכת התראות (Telegram, דוא"ל, webhook)
- פריסת תשתית ענן
- תיעוד תפעולי
- תמיכה באחריות למשך שבועיים לאחר הפריסה
לוח זמנים: 4 עד 6 שבועות בהתאם למספר הבורסות והמדדים. השקעה טיפוסית בפרויקט נעה בין $25,000 ל-$75,000, ומציעה תקופת החזר מהירה. הספים האדפטיביים שלנו מסננים 80% יותר רעש מאשר סורקים עם יחס קבוע, ומספקים פי 5 יותר אותות פעילים. סורק הנפח שלנו מיועד לניתוח נפח קריפטו מקצועי, ומשמש כסורק נפח מסחר חזק וגלאי קפיצות נפח. הוא מצטיין בזיהוי נפח חריג במספר בורסות, מה שהופך אותו לכלי חיוני למסחר מבוסס ניתוח נפח. הניסיון של הצוות שלנו: 5+ שנים בפיתוח Web3, 50+ פרויקטים שהושלמו, מהנדסי Solidity ו-Rust מוסמכים. אנו מבטיחים עמידה ב-SLA ותהליך שקוף.
רוצים סורק נפח מותאם לצרכים שלכם? נעריך את הפרויקט שלכם תוך יומיים — בקשו פיתוח וקבלו ניתוח שוק כבונוס.







