Термин «листинг» хорошо знаком всем на фондовом рынке. Заранее подать заявку на получение акций, а затем дождаться официального размещения, чтобы получить прибыль от ценового открытия — в этом основная логика листинга. В криптовалюте также есть возможности для листинга, и частота их появления гораздо выше, чем на фондовом рынке. Крупные централизованные биржи почти каждые несколько дней запускают новые бессрочные контракты, и эти возможности открыты для всех на равных условиях.
На начальном этапе запуска контракта рынок ещё не полностью определил цену данной монеты, ценовая эластичность крайне высока, и за короткое время часто наблюдаются движения, значительно превышающие обычные колебания. Заранее определить направление и войти в момент открытия — в этом и заключается возможность листинга бессрочных контрактов. Но здесь есть и проблема: до запуска нового контракта мы практически ничего не знаем о данной монете. Состав команды, токеномика, рыночные настроения, ставки финансирования… Вся эта информация требует значительного времени для сбора и анализа. Входить без достаточного понимания — это почти то же самое, что азартная игра. Изучать каждую новую монету вручную просто не получится.
Поэтому представленный сегодня рабочий процесс призван решить эту проблему: система автоматически начинает сбор данных сразу после выхода объявления, проводит непрерывный AI-анализ и помогает нам создать достаточную основу знаний до открытия торгов. Весь рабочий процесс работает круглосуточно, без необходимости ручного мониторинга: объявления о новых монетах, сбор данных, AI-анализ и вход на открытии — всё автоматизировано.
Общая архитектура: две параллельные линии выполнения
Архитектура этой стратегии делится на две линии выполнения.
Линия анализа работает циклически с длинным интервалом, отвечая за непрерывный мониторинг объявлений о новых монетах, сбор многомерных данных, вызов AI для анализа и накопление каждого результата анализа в истории. Линия исполнения работает с высокочастотным циклом с очень коротким интервалом, отвечая за обнаружение в реальном времени того, появилась ли монета на бирже. Как только обнаружен запуск, она немедленно считывает результаты анализа, принимает решение о входе и непрерывно контролирует тейк-профит и стоп-лосс по открытой позиции.
Две линии имеют чёткое разделение: линия анализа даёт направление, линия исполнения отвечает за реализацию.
Линия анализа: Шаг 1 — Обнаружение новых монет и создание очереди отслеживания
При запуске линии анализа сначала инициализируется глобальное состояние, записываются начальные данные, такие как начальный капитал, количество запусков и т.д.:
javascript
if (_G('nl_initialized') === null) {
_G('nl_initialized', true);
_G('nl_trackingList', JSON.stringify([]));
_G('nl_STARTTIME', Date.now());
const initAccount = exchange.GetAccount();
_G('nl_initmoney', $vars.initmoney || initAccount.Balance);
}
Затем извлекаются официальные объявления Binance, чтобы определить новые монеты, скоро запускающие бессрочные контракты:
javascript
const raw = HttpQuery(
'https://www.binance.com/bapi/composite/v1/public/cms/article/list/query?type=1&pageNo=1&pageSize=10',
{ method: 'GET', headers: { 'User-Agent': 'Mozilla/5.0', 'clienttype': 'web' } }
);
После обнаружения новой монеты система помещает её в очередь отслеживания и присваивает статус: до листинга — PRE_LISTING (предварительное отслеживание), в день листинга — LAUNCH_DAY (день открытия), после входа — TRADING (в торговле), после завершения — DONE и автоматически удаляет из очереди.
javascript
trackingList.push({
symbol,
launchDate,
status: isLaunchDay ? 'LAUNCH_DAY' : 'PRE_LISTING',
discoveredAt: now.toISOString(),
hoursToLaunch: isLaunchDay ? '今日发行' : hoursToLaunch,
analysisCount: 0,
lastAnalyzedAt: null
});
Таким образом система всегда фокусируется только на действительно актуальных целях и не тратит усилия на уже устаревшие возможности.
Линия анализа: Шаг 2 — Многомерный сбор данных
После обнаружения новой монеты система немедленно начинает сбор данных по трём направлениям.
Фундаментальные данные получаются через API CoinMarketCap: рыночная капитализация, доля в обращении, рейтинг CMC и т.д.:
javascript
function fetchCMC(coin) {
const key = $vars.cmcApiKey || '';
const raw = HttpQuery(
'https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=' + coin + '&convert=USD',
{ method: 'GET', headers: { 'X-CMC_PRO_API_KEY': key, 'Accept': 'application/json' } }
);
const c = JSON.parse(raw).data[coin];
const q = c.quote.USD;
const supply = c.max_supply || c.total_supply;
return {
name: c.name, rank: c.cmc_rank,
circulatingSupply: c.circulating_supply,
circulationRatio: supply
? parseFloat((c.circulating_supply / supply * 100).toFixed(2))
: null,
spotPrice: q.price,
change1h: q.percent_change_1h,
change24h: q.percent_change_24h,
change7d: q.percent_change_7d,
volume24h: q.volume_24h,
marketCap: q.market_cap,
fullyDilutedMarketCap: q.fully_diluted_market_cap
};
}
Общественное мнение собирается через Brave Search: извлекаются недавние новости, связанные с фондированием, действиями команды, графиками разблокировки и т.д. по этой монете. Используются три разные комбинации ключевых слов для отдельных запросов:
javascript
function fetchBraveNews(coin) {
const key = $vars.braveKey || '';
const queries = [
'"' + coin + '" token funding team',
'"' + coin + '" vesting unlock schedule',
'"' + coin + '" binance futures listing'
];
// Для каждого запроса вызывается Brave Search API, результаты фильтруются по вхождению имени монеты, дубли удаляются и возвращаются
}
Рыночные данные одновременно собираются с четырёх бирж: Bybit, OKX, Gate, HTX. Включаются ключевые показатели, такие как ставки финансирования, открытый интерес, спред и т.д. На примере OKX:
javascript
function fetchOKX(coin) {
try {
const instId = coin + '-USDT-SWAP';
const tkRaw = HttpQuery('https://www.okx.com/api/v5/market/ticker?instId=' + instId,
{ method: 'GET', headers: { 'Accept': 'application/json' } });
const tk = JSON.parse(tkRaw).data && JSON.parse(tkRaw).data[0];
if (!tk) return null;
Sleep(150);
let fundingRate = null, nextFundingRate = null, fundingTime = null, nextFundingTime = null;
try {
const frRaw = HttpQuery('https://www.okx.com/api/v5/public/funding-rate?instId=' + instId,
{ method: 'GET', headers: { 'Accept': 'application/json' } });
const fr = JSON.parse(frRaw).data && JSON.parse(frRaw).data[0];
if (fr) {
fundingRate = parseFloat(fr.fundingRate);
nextFundingRate = fr.nextFundingRate !== '' ? parseFloat(fr.nextFundingRate) : null;
fundingTime = fr.fundingTime;
nextFundingTime = fr.nextFundingTime;
}
} catch(e) {}
Sleep(150);
let openInterest = null;
try {
const oiRaw = HttpQuery('https://www.okx.com/api/v5/public/open-interest?instType=SWAP&instId=' + instId,
{ method: 'GET', headers: { 'Accept': 'application/json' } });
const oiData = JSON.parse(oiRaw).data && JSON.parse(oiRaw).data[0];
if (oiData) openInterest = parseFloat(oiData.oiUsd);
} catch(e) {}
const last = parseFloat(tk.last);
const sodUtc0 = parseFloat(tk.sodUtc0);
return {
price: last,
bid1: parseFloat(tk.bidPx), bid1Size: parseFloat(tk.bidSz),
ask1: parseFloat(tk.askPx), ask1Size: parseFloat(tk.askSz),
spread: parseFloat((parseFloat(tk.askPx) - parseFloat(tk.bidPx)).toFixed(8)),
change24h: parseFloat(((last - sodUtc0) / sodUtc0 * 100).toFixed(4)),
high24h: parseFloat(tk.high24h), low24h: parseFloat(tk.low24h), open24h: parseFloat(tk.open24h),
volume24h: parseFloat(tk.vol24h), volCcy24h: parseFloat(tk.volCcy24h),
openInterest,
fundingRate, nextFundingRate, fundingTime, nextFundingTime
};
} catch(e) { Log('Сбой OKX:', e.message); return null; }
}
Перекрёстная проверка по нескольким биржам эффективно устраняет искажения, связанные с единственным источником данных, и обеспечивает более объёмное понимание нового токена.
Линия анализа: шаг 3 — анализ ИИ с исторической памятью
Это самая важная конструкция всего рабочего процесса.
С момента публикации объявления до официального запуска нового токена обычно проходит несколько дней. За это время система многократно собирает данные и многократно вызывает ИИ для анализа. Ключевой момент: каждый раз все предыдущие выводы передаются ИИ вместе с новыми данными, что позволяет ему делать новые умозаключения на основе предыдущих оценок.
Чтение исторических записей и внедрение их в подсказку:
javascript
const historyKey = 'nl_history_' + symbol;
const history = JSON.parse(_G(historyKey) || '[]');
const orderNum = history.length + 1;
function buildHistorySection(history) {
if (history.length === 0) return '(Это первый анализ данного токена, история отсутствует)';
return history.map(h => {
const ai = h.aiConclusion;
return [
'### Анализ №' + h.order,
'- Время: ' + h.timestamp + ' | До запуска: ' + h.hoursToLaunch + ' | Этап: ' + h.phase,
'- Вывод: ' + ai.direction + ', уверенность: ' + ai.confidence + '%, риск: ' + ai.riskLevel,
'- Тренд: ' + (ai.trendConsistency || 'начальный'),
'- Момент входа: ' + (ai.entryTiming || '-'),
'- Общая оценка: ' + ai.summary
].join('\n');
}).join('\n\n');
}
Анализ ИИ следует нескольким ключевым принципам: при согласованности направления с историей уверенность увеличивается с каждым разом; при возникновении разворота направления необходимо чётко указать, является ли это реальным сигналом или краткосрочным шумом; при колебаниях исторических суждений уверенность должна быть консервативной и не должна завышаться безосновательно. ИИ в итоге выводит структурированное заключение:
javascript
// Структура JSON, которую выдаёт ИИ
{
"order": 3,
"direction": "long|short|hold",
"confidence": 76, // целое число от 0 до 100
"trendConsistency": "начальный|усиление|поддержание|ослабление|разворот",
"reversalType": "реальный сигнал|краткосрочный шум|null",
"entryTiming": "immediate|drawdown_N", // drawdown_5 означает ожидание отката на 5%
"priceRange": { "low": 128, "high": 130 },
"leverage": 10,
"stopLoss": 5, // процент стоп-лосса
"takeProfit": 15, // процент тейк-профита
"riskLevel": "высокий|средний|низкий",
"riskPoints": ["Риск 1", "Риск 2"],
"keyChanges": "Наиболее значимые изменения данных по сравнению с предыдущим анализом",
"summary": "Комплексная оценка до 100 символов"
}
После завершения анализа вывод сохраняется в историю, а также обновляется финальная стратегия для данного токена, которая будет использоваться исполнительной линией.
javascript
const record = {
order: item.orderNum,
timestamp: new Date().toISOString(),
phase: item.status,
hoursToLaunch: item.hoursToLaunch,
currentData: item.currentData,
aiConclusion: aiResult
};
history.push(record);
_G('nl_history_' + symbol, JSON.stringify(history));
_G('nl_strategy_' + symbol, JSON.stringify({
symbol,
updatedAt: new Date().toISOString(),
phase: item.status,
historyCount: history.length,
aiResult
}));
Если направление всегда одинаково, уверенность будет увеличиваться с каждым анализом; если происходит смена направления, ИИ должен дать четкое обоснование. Накопленные таким образом суждения гораздо надежнее, чем однократный независимый анализ.
Линия исполнения: Шаг четвертый — Мониторинг листинга и безопасный вход
Высокочастотный цикл линии исполнения через exchange.GetMarkets() проверяет, появилась ли новая монета в списке контрактов биржи. Как только листинг обнаружен, сначала выполняется проверка безопасности:
javascript
if (ai.direction === '观望') { updateStatus(symbol, 'DONE'); continue; }
if (ai.riskLevel === '高') { updateStatus(symbol, 'DONE'); continue; }
if (ai.confidence < CONFIG.MIN_CONFIDENCE) { updateStatus(symbol, 'DONE'); continue; }
if (hasPosition(coin)) { updateStatus(symbol, 'TRADING'); continue; }
После прохождения всех проверок выполняется действие в зависимости от времени входа, указанного ИИ. Если вход немедленный, рассчитывается количество контрактов и размещается ордер:
javascript
const leverage = Math.min(ai.leverage || 5, CONFIG.MAX_LEVERAGE);
exchange.SetMarginLevel(leverage);
const allocAmount = Math.min(CONFIG.POSITION_AMOUNT, account.Balance * 0.3);
const qty = calcContractAmount(allocAmount, price, market);
if (ai.direction === '做多') {
exchange.SetDirection('buy');
orderId = exchange.Buy(-1, qty);
} else if (ai.direction === '做空') {
exchange.SetDirection('sell');
orderId = exchange.Sell(-1, qty);
}
Если ИИ считает, что премия при открытии слишком высока, и выбирает ожидание коррекции для входа, система записывает целевую цену и продолжает циклический опрос:
javascript
const targetPrice = ai.direction === '做多'
? openPrice * (1 - pct / 100)
: openPrice * (1 + pct / 100);
_G(coin + '_nl_waitEntry', JSON.stringify({
type: 'drawdown',
waitStartTime: Date.now(),
openPrice, targetPrice, drawdownPct: pct, ai
}));
updateStatus(symbol, 'TRADING_WAIT');
Если ожидание превышает 2 часа и цель не достигнута, возможность считается упущенной, и вход автоматически отменяется.
Линия исполнения: Шаг пятый — Мониторинг позиции и тейк-профит / стоп-лосс
После входа линия исполнения непрерывно отслеживает состояние позиции. Тейк-профит и стоп-лосс работают параллельно по двум механизмам:
javascript
const TP_SL = {
DEFAULT_SL: 10, // Стоп-лосс по умолчанию 10%
DEFAULT_TP: 25, // Фиксированный тейк-профит по умолчанию 25%
TRAILING_TRIGGER: 30, // Активация трейлинг-стопа при плавающей прибыли 30%
TRAILING_DRAWDOWN: 8 // Процент просадки для трейлинг-стопа 8%
};
// Обновление максимальной плавающей прибыли
if (pnlPct / 100 > maxProfit) {
maxProfit = pnlPct / 100;
_G(maxProfitKey, maxProfit);
}
// При достижении порога плавающей прибыли автоматически включается трейлинг-стоп
if (tpDrawdown === 0 && maxPnlPct >= TP_SL.TRAILING_TRIGGER) {
tpDrawdown = TP_SL.TRAILING_DRAWDOWN;
_G(tpDrawKey, tpDrawdown);
}
// Последовательная проверка трех условий закрытия: срабатывает первое
let closeReason = null;
if (tpDrawdown > 0 && drawdown >= tpDrawdown) closeReason = 'Трейлинг-стоп';
if (!closeReason && pnlPct <= -maxSL) closeReason = 'Стоп-лосс';
if (!closeReason && pnlPct >= entry.takeProfit) closeReason = 'Фиксированный тейк-профит';
if (closeReason) {
if (isLong) { exchange.SetDirection('closebuy'); exchange.Sell(-1, amount); }
else { exchange.SetDirection('closesell'); exchange.Buy(-1, amount); }
_G(maxProfitKey, null); _G(slKey, null); _G(tpDrawKey, null);
}
Трейлинг-стоп позволяет прибыли расти как можно дольше, фиксированный тейк-профит и стоп-лосс обеспечивают базовую защиту. Все три механизма активны одновременно, срабатывает тот, который достигнут первым.
Демонстрация реальной работы
После запуска стратегии панель управления в реальном времени отображает четыре таблицы: Обзор счета показывает время работы, текущий капитал и общую доходность; Очередь отслеживания показывает статус каждой отслеживаемой монеты, обратный отсчет до листинга и количество анализов; Сводка анализа ИИ показывает последний полный вывод по каждой монете; Мониторинг текущих позиций показывает плавающую прибыль, максимальную прибыль и активацию трейлинг-стопа, поддерживает ручное закрытие и изменение параметров стоп-лосса онлайн.
На примере EWYUSDT, готовящегося к листингу, система с момента обнаружения объявления провела несколько последовательных анализов. Каждый раз ИИ давал направление «лонг», тренд помечался как «устойчивое усиление» — это срабатывает механизм исторической памяти: если несколько анализов совпадают по направлению, сигнал является стабильным, а не случайным колебанием данных. Последний комплексный вывод: ставки финансирования на OKX и HTX стабильно положительные, новости о листинге бессрочного контракта на корейский ETF в целом позитивные. ИИ дает направление «лонг» с уверенностью 76%, рекомендует вход сразу при открытии в ценовом диапазоне 128–130, плечо 10, стоп-лосс 5%, тейк-профит 15%, риск средний.
Границы стратегии и предупреждение о рисках
Основная проблема, которую решает данная стратегия: перед листингом новой монеты систематическим способом заменить ручной анализ для формирования понимания об этой монете и преобразовать выводы в исполняемые сигналы входа. Однако необходимо четко осознавать ее ограничения:
Волатильность новых монет чрезвычайно высока, стоп-лосс может сработать в первую же минуту после открытия. Качество анализа ИИ зависит от полноты данных; чем меньше данных до листинга, тем консервативнее суждения. Кредитное плечо усиливает как прибыль, так и убытки. Никакая стратегия не может гарантировать стабильную доходность.
Контроль размера позиции — это самое важное условие использования данной стратегии.
В настоящее время эта система является скорее отправной точкой. Торговля новыми монетами — это глубокое направление, в котором сигнальные измерения, оценка времени входа и детали управления позицией имеют большой потенциал для оптимизации. Если у вас есть собственный опыт и знания в этой области, добро пожаловать в комментарии — совместный обмен идеями поможет продвинуться дальше. Любая стратегия несет риск убытков, перед использованием обязательно доработайте логику стратегии в соответствии с вашими условиями.
Исходный код стратегии: Стратегия Binance New Listing Smart AI
- 1



