Трейдинговый бот
на вашем личном ПК или VPS-сервере

для запуска текстовых алго-стратегий и #VibeTrading'а

Запуск бота на вашем личном VPS-сервере
Торговля 24/7 вне зависимости от внешних условий: спите ли вы, или у вас отключили электричество, или пропала связь с интернетом?
Это не важно - бот всегда будет в работе.
Составитель стратегий на GPT-5.2
Уметь писать JavaScript не обязательно. Всю логику, даже самую сложную, можно описать обычным текстом на вашем языке. Внутри бота есть AI помошник на основе GPT-5.2, заточенный для составления стратегий именно под этого бота.
Бесплатный тестер стратегий
Прежде чем запускать стратегию на живом рынке, можно сначала узнать её эффективность, и совершенно бесплатно.
Личный VPS сервер с выделенным CPU
1 CPU / 1 Гб Ram / 20Гб диска - более чем достаточно для бесперебойной торговли.
Ваши API ключи не где-то в облаке, а у вас на диске
Это автоматически исключает попадание под массовый взлом сервиса.
Всё под вашим полным контролем
Полная передача прав владения сервером. SSH доступ.
Торговля без эмоций
Эмоции зачастую одна из основных проблем в трейдинге. Нет эмоций - нет проблем.
Ещё 3

Мои результаты

Я работаю по двум направлениям: ловля тренда и ловля отскоков во флэте/консолидации.
Скоро кстати в инструменты добавится и ловля пробоев, то есть будет возможен алгоритмический скальпинг.
Ловля тренда
1% 0% -1% -2% -3% 0 мес 1 мес 2 мес 3 мес
Ловля отскоков
0.5% 0% -2.5% -5% -7.5% 0 мес 1 мес 2 мес 3 мес
На протяжении трёх месяцев ежедневных сделок мои стратегии не потеряли деньги, что по сути уже отличный результат для новичка, но они и не сделали прибыли.
#VibeTrading

Как бот работает?

Эта иллюстрация максимально упрощает реальный процесс работы бота,
но отлично передаёт концепцию к которой я стремлюсь: Prompt → Code → Cash

01. Промпт

Текстовый запрос с описанием логики
вашей стратегии торговли.

02. Код

ИИ выдаёт скрипт с вашей
логикой торговли.

03. Кэш*

Бот использует ваш скрипт логики
для входа и выхода по рынку.
Бесплатно

Создать и имитировать
свою стратегию на живом рынке

Для гостей, тех кто ещё не приобрёл бота, у нас есть тестер стратегий - отдельное от бота веб-приложение, где вы можите бесплатно сгенерировать свои JS логики текстом, протестировать их на живом графике и узнать их эффективность .*

Скопировать готовую логику

скопировать
Промпт
Нужно собрать JS логику для трендовых сделок на основе текста ниже:
- Есть индикатор Colorizer, который красит свечи в три цвета: красный - сильный шорт тренд, синий - сильный лонг тренд, и серый - нейтраяльная свеча.
- Так же есть индикатор Боллинджера Bollinger Bands.

1) Правило "трендовые сделки":
- Помимо цвета свечи от скрипта Colorizer (красный/серый/синий) нам так же теперь надо учитывать: стандартные цвета свечей (красный/зелёный, так есть бычий/медвежий) и изменение средней линии Боллинджера.
- Если свеча фиксируется над средней линией Болл-а с синим цветом от Colorizer + стандартный цвет тут не учитываем + изменение средней линии тоже не учитываем = то индикатор BUY на старте следующей свечи с продолжением выставления того же сигнала на всех последующих свечах.
- Однако теперь в последующих свечах мы должны учитывать: приоритет 1 синий цвет от Colorizer + приоритет 2 изменение средней линии Болл-а больше чем на const FLAT_MID_PCT (сейчас это 0.0007; // 0.07%) + приоритет 3 стандартный цвет свечей.
- Если приоритет 3 против, а приоритет 2 сопутствует то игнорируем приоритет 3.
- Если приоритет 2 меньше const FLAT_MID_PCT, так есть не сопутствует то это правило флэта, и все сделки отменяются.
- То есть, если встретили (в последующих свечах): синий (Colorizer) + стандартный красный + изменение средней Болл-а больше чем const FLAT_MID_PCT (сейчас это 0.0007; // 0.07%) - то продолжение выставления того же сигнала.
- А если встретили (в последующих): синий (Colorizer) + стандартный зелёный + изменение средней Болл-а меньше const FLAT_MID_PCT - то со старта новой свечи сигналы отменяются, так как включается правило флэта. То же самое и для: серый + стандартный красный, красный + стандартный красный.
- Но сигналы возобновляются вновь при получении синей (Colorizer) + зелёный стандартный или даже красный стандартный + средняя Болл-а больше чем const FLAT_MID_PCT, на той же стороне от средней Болл-а.
- По сути всё тоже самое только теперь мы внедрили приоритет 2.
- И те же самые правила для сигнала SELL, только наборот.

Дополнение: Если свеча открылась и закрылась в одном и том же месте (Doji), так есть по одной и той же цене, то такую свечу считать продолжением тренда если до неё была свеча с сильным трендом. То есть эта "нулевая" свеча должна пропустить на старт следующей свечи тот же индикатор который был на ней самой, вне зависимости от её цвета.

2) Теперь правило "флэта/исключение"
- Это правило главнее правила "трендовые сделки"
Индикаторы BUY/SELL блокируются/не выставляются если скрипт определил флэт. Флэт определяется так:
Если на предыдущей свече (первая от последней свечи) средняя линия Болл-а изменилась (в любую сторону) по отношению к той же средней линии Болл-а на предыдущей себе (вторая от последней свечи) меньше чем const FLAT_MID_PCT то это флэт.
- Однако флэтом так же считается и сужение корридора Боллинджера, поэтому даже если средняя линия Боллинджера делает изменения больше чем const FLAT_MID_PCT, прии этом распознано сужение корридора Боллинджера то это флэт. Если средняя линия Боллинджера делает изменения меньше чем в const FLAT_MID_PCT, то на сужение корридора Боллинджера можно и не смотреть, так есть это всё равно будет флэт.
- Как определить сужение корридора Боллинджера? Для начала нужно смягчить/сгладить крайние линии Боллинджера и затем измерять расстояние между ними на каждой предыдущей свече от последней, и если происходит уменьшение расстояния то это есть сужение а значит и флэт.
Тут очень важно именно сгладить крайние линии Боллинджера, чтобы не брать во внимание любую маленькую "кочку/яму". Параметр сглаживания так же должен быть выведен в начале кода для изменения/корректировок.
Готовый JS скрипт
(() => {
  const BB_PERIOD = 20;
  const PAC_PERIOD = 10;
  const FLAT_BAND_SMOOTH_PERIOD = 6; // smoothing for BB bands in flat calc
  const FLAT_MID_PCT = 0.0007; // 0.07% midline change threshold
  const TOL = 1e-8;
  const isNum = Number.isFinite;

  const series = [open, high, low, close].map((arr) =>
    Array.isArray(arr) ? arr : []
  );
  const total = Math.min(...series.map((arr) => arr.length));
  if (!Number.isFinite(total) || total <= 1) return null;

  const closed = total - 1;
  const last = closed - 1; // last closed candle
  const minBars = Math.max(BB_PERIOD + FLAT_BAND_SMOOTH_PERIOD, PAC_PERIOD);
  if (last < minBars - 1) return null;

  const sanitize = (arr) =>
    arr.slice(0, closed).map((value) => {
      const num = Number(value);
      return isNum(num) ? num : null;
    });

  const O = sanitize(series[0]);
  const H = sanitize(series[1]);
  const L = sanitize(series[2]);
  const C = sanitize(series[3]);

  const sma = (arr, period) => {
    const n = arr.length;
    const out = new Array(n).fill(null);
    if (period <= 0 || n < period) return out;
    for (let i = period - 1; i < n; i++) {
      let sum = 0;
      let count = 0;
      for (let j = i - period + 1; j <= i; j++) {
        const v = arr[j];
        if (!isNum(v)) {
          count = 0;
          break;
        }
        sum += v;
        count++;
      }
      if (count === period) out[i] = sum / period;
    }
    return out;
  };

  const ema = (arr, period) => {
    const n = arr.length;
    const out = new Array(n).fill(null);
    if (period <= 0 || n < period) return out;
    let seed = 0;
    for (let i = 0; i < period; i++) {
      const v = arr[i];
      if (!isNum(v)) return out;
      seed += v;
    }
    seed /= period;
    out[period - 1] = seed;
    let emaVal = seed;
    const alpha = 2 / (period + 1);
    for (let i = period; i < n; i++) {
      const v = arr[i];
      if (!isNum(v)) {
        out[i] = emaVal;
        continue;
      }
      emaVal = alpha * v + (1 - alpha) * emaVal;
      out[i] = emaVal;
    }
    return out;
  };

  const stdev = (arr, period) => {
    const n = arr.length;
    const out = new Array(n).fill(null);
    if (period <= 0 || n < period) return out;
    for (let i = period - 1; i < n; i++) {
      let sum = 0;
      let sumSq = 0;
      let count = 0;
      for (let j = i - period + 1; j <= i; j++) {
        const v = arr[j];
        if (!isNum(v)) {
          count = 0;
          break;
        }
        sum += v;
        sumSq += v * v;
        count++;
      }
      if (count !== period) continue;
      const mean = sum / period;
      const variance = Math.max(0, sumSq / period - mean * mean);
      out[i] = Math.sqrt(variance);
    }
    return out;
  };

  const midline = sma(C, BB_PERIOD);
  const dev = stdev(C, BB_PERIOD);
  const bbUpper = midline.map((mid, idx) =>
    isNum(mid) && isNum(dev[idx]) ? mid + 2 * dev[idx] : null
  );
  const bbLower = midline.map((mid, idx) =>
    isNum(mid) && isNum(dev[idx]) ? mid - 2 * dev[idx] : null
  );
  const bbUpperSmooth = sma(bbUpper, FLAT_BAND_SMOOTH_PERIOD);
  const bbLowerSmooth = sma(bbLower, FLAT_BAND_SMOOTH_PERIOD);
  const bandWidthSmooth = bbUpperSmooth.map((upper, idx) =>
    isNum(upper) && isNum(bbLowerSmooth[idx]) ? upper - bbLowerSmooth[idx] : null
  );

  const upperPac = ema(H, PAC_PERIOD);
  const lowerPac = ema(L, PAC_PERIOD);

  const isBandNarrowing = (idx) => {
    const prevIdx = idx - 1;
    if (prevIdx < 0) return false;
    const currWidth = bandWidthSmooth[idx];
    const prevWidth = bandWidthSmooth[prevIdx];
    if (![currWidth, prevWidth].every(isNum)) return false;
    return currWidth < prevWidth - TOL;
  };

  const isFlat = (idx) => {
    const prevIdx = idx - 1;
    if (prevIdx < 0) return false;
    const currMid = midline[idx];
    const prevMid = midline[prevIdx];
    if (![currMid, prevMid].every(isNum)) return false;
    const denom = Math.abs(prevMid);
    if (denom <= TOL) return false;
    const pct = Math.abs(currMid - prevMid) / denom;
    if (pct <= FLAT_MID_PCT + TOL) return true;
    return isBandNarrowing(idx);
  };

  if (isFlat(last)) return null;

  const colorAt = (idx) => {
    const closeVal = C[idx];
    const upper = upperPac[idx];
    const lower = lowerPac[idx];
    if (![closeVal, upper, lower].every(isNum)) return 'NEUTRAL';
    if (closeVal >= upper - TOL) return 'BLUE';
    if (closeVal <= lower + TOL) return 'RED';
    return 'NEUTRAL';
  };

  const isDoji = (idx) => {
    const openVal = O[idx];
    const closeVal = C[idx];
    return isNum(openVal) && isNum(closeVal) && Math.abs(closeVal - openVal) <= TOL;
  };

  const hasTwoDojiBefore = (idx) => {
    const prev = idx - 1;
    if (prev < 0) return false;
    return isDoji(idx) && isDoji(prev);
  };

  const standardColorAt = (idx) => {
    const openVal = O[idx];
    const closeVal = C[idx];
    if (![openVal, closeVal].every(isNum)) return 'NEUTRAL';
    if (closeVal > openVal + TOL) return 'BULL';
    if (closeVal < openVal - TOL) return 'BEAR';
    return 'DOJI';
  };

  const midlineSupports = (idx) => {
    const prevIdx = idx - 1;
    if (prevIdx < 0) return false;
    const currMid = midline[idx];
    const prevMid = midline[prevIdx];
    if (![currMid, prevMid].every(isNum)) return false;
    const denom = Math.abs(prevMid);
    if (denom <= TOL) return false;
    const pct = Math.abs(currMid - prevMid) / denom;
    if (pct <= FLAT_MID_PCT + TOL) return false;
    if (isBandNarrowing(idx)) return false;
    return true;
  };

  const signalFrom = (idx) => {
    if (idx < 0) return null;
    let signal = null;

    for (let i = 0; i <= idx; i++) {
      const closeVal = C[i];
      const midVal = midline[i];
      if (![closeVal, midVal].every(isNum)) {
        signal = null;
        continue;
      }

      if (hasTwoDojiBefore(i)) {
        signal = null;
        continue;
      }

      if (!midlineSupports(i)) {
        signal = null;
        continue;
      }

      if (isDoji(i)) {
        if (signal) {
          continue;
        }
        const prevIdx = i - 1;
        if (prevIdx < 0) {
          signal = null;
          continue;
        }
        const prevClose = C[prevIdx];
        const prevMid = midline[prevIdx];
        const prevColor = colorAt(prevIdx);
        if (![prevClose, prevMid].every(isNum)) {
          signal = null;
          continue;
        }
        if (prevColor === 'BLUE' && prevClose > prevMid + TOL) {
          signal = 'BUY';
        } else if (prevColor === 'RED' && prevClose < prevMid - TOL) {
          signal = 'SELL';
        } else {
          signal = null;
        }
        continue;
      }

      const standardColor = standardColorAt(i);
      const color = colorAt(i);
      const buyStart = color === 'BLUE' && closeVal > midVal + TOL;
      const sellStart = color === 'RED' && closeVal < midVal - TOL;

      if (signal === 'BUY' && !buyStart) {
        signal = null;
      } else if (signal === 'SELL' && !sellStart) {
        signal = null;
      } else if (signal === 'BUY' && standardColor === 'BEAR') {
        // Priority 2 (midline change) supports, so ignore standard color.
      } else if (signal === 'SELL' && standardColor === 'BULL') {
        // Priority 2 (midline change) supports, so ignore standard color.
      }

      if (!signal) {
        if (buyStart) {
          signal = 'BUY';
        } else if (sellStart) {
          signal = 'SELL';
        }
      }
    }

    return signal;
  };

  return signalFrom(last);
})();

Сообщество алго-трейдеров

Форум алго-трейдеров

для всех заинтересованных
Тут накапливается опыт и
аккумулируются в знания.
100+ участников / без ограничений

Telegram канал

только для подписчиков
Тут обсуждаем торгового бота и
вместе улучшаем стратегии.
10+ участников / из 5.000
0 100 500 1.000 5.000 10.000

Будьте в курсе нашего развития

Тарифные планы

коротко
развёрнуто

Free

Free версия бота пожизненно бесплатно

$0

Free версия бота
$0
Бесплатная версия, без PRO функций.
Обновления бота
Не входит
Автоматическая выкладка новой версии бота в один клик (после обновления кода) на сервер/в прод: сборка → тесты → релиз без ручных действий или “в один клик”.
Стакан заявок
Не входит
Подключение Order Book, что даёт при создании алгоритмических стратегий учитывать данные из "стакана" - большое преимущество.
Тестер стратегий
$0
Вы можите составить свою стратегию вне тестера, через любой свой ИИ.
И протестировать её на реальном рынке до 5000 свечей, выяснив её эффективность до реальных торгов.
Состваитель алгоритмов
Не входит
Для текстового составления алгоритмов мы берём мощности GPT-5.2-codex у OpenAI, через их API. Поэтому есть окно ограничений как за день, так и за неделю. Подробнее тут.
VPS сервер
Не входит
VPS сервер и его ежемесячное обслуживание + инструкция по установке бота на него.
Развёртывание бота на VPS
Не входит
Прямая связь с ИИ агентом по любым вопросам, заточенным под всю нашу Wiki базу. В особых случаях связь с живым оператором и дистанционным управлением вашим десктопом.
Приоритетная поддержка
Не входит
Прямая связь с ИИ агентом по любым вопросам, заточенным под всю нашу Wiki базу. В особых случаях связь с живым оператором и дистанционным управлением вашим десктопом.
Приватный чат для подписчиков
$0
Закрытый чат, где участники имеют возможность общаться только в кмоментариях к записям автора чата. Дабы не было флуда.
Алерты
Не входит
Это уведомления, которые автоматически приходят, когда что-то пошло не так или достигнут порог (например, бот остановился, ошибка API, просадка выше X, нет связи с биржей).
Мониторинг здоровья бота
Не входит
Постоянное наблюдение за “здоровьем” бота: работает ли он, не падает ли, какая задержка, ошибки, нагрузка, состояние подключений к биржам и т.д.
Расширенные риски
Не входит
Position sizing — бот ограничивает размер позиции (сколько денег/лота в одну сделку).
Max drawdown limit — лимит на максимальную просадку (если достигнута — бот тормозит/выключается).
Daily loss limit / “circuit breaker” — дневной стоп по убытку: при достижении порога торговля останавливается.
Расширенные ордера
Не входит
Trailing Stops - переставление стопов, уменьшая потери, вплоть до входа в безубыточный Stop Loss.
OCO / Iceberg / TWAP и т.п. — продвинутые заявки для лучшего исполнения (меньше проскальзывания, меньше “палить” объём, дробить крупный ордер по времени).

Trial PRO

PRO версия бота бесплатно
на 90 дней.
$0/90 дней
1x лицензия на бота
$0
$3/пожизненно
PRO версия бота на 90 дней бесплатно.
Обновления бота
$0
$5/месяц
Автоматическая выкладка новой версии бота в один клик (после обновления кода) на сервер/в прод: сборка → тесты → релиз без ручных действий или “в один клик”.
Стакан заявок
$0
$10/пожизненно
Подключение Order Book, что даёт при создании алгоритмических стратегий учитывать данные из "стакана" - большое преимущество.
Тестер стратегий
$0
Вы можите составить свою стратегию внутри тестера, до 20 составлений в неделю.
И протестировать её на реальном рынке до 5000 свечей, выяснив её эффективность до реальных торгов.
Состваитель алгоритмов
Не входит
Для текстового составления алгоритмов мы берём мощности GPT-5.2-codex у OpenAI, через их API. Поэтому есть окно ограничений как за день, так и за неделю. Подробнее тут.
VPS сервер
Не входит
VPS сервер и его ежемесячное обслуживание + инструкция по установке бота на него.
Развёртывание бота на VPS
Не входит
Прямая связь с ИИ агентом по любым вопросам, заточенным под всю нашу Wiki базу. В особых случаях связь с живым оператором и дистанционным управлением вашим десктопом.
Приоритетная поддержка
Не входит
Прямая связь с ИИ агентом по любым вопросам, заточенным под всю нашу Wiki базу. В особых случаях связь с живым оператором и дистанционным управлением вашим десктопом.
Приватный чат для подписчиков
$0
Закрытый чат, где участники имеют возможность общаться только в кмоментариях к записям автора чата. Дабы не было флуда.
Алерты
$0
Это уведомления, которые автоматически приходят, когда что-то пошло не так или достигнут порог (например, бот остановился, ошибка API, просадка выше X, нет связи с биржей).
Мониторинг здоровья бота
$0
Постоянное наблюдение за “здоровьем” бота: работает ли он, не падает ли, какая задержка, ошибки, нагрузка, состояние подключений к биржам и т.д.
Расширенные риски
$0
Position sizing — бот ограничивает размер позиции (сколько денег/лота в одну сделку).
Max drawdown limit — лимит на максимальную просадку (если достигнута — бот тормозит/выключается).
Daily loss limit / “circuit breaker” — дневной стоп по убытку: при достижении порога торговля останавливается.
Расширенные ордера
$0
Trailing Stops - переставление стопов, уменьшая потери, вплоть до входа в безубыточный Stop Loss.
OCO / Iceberg / TWAP и т.п. — продвинутые заявки для лучшего исполнения (меньше проскальзывания, меньше “палить” объём, дробить крупный ордер по времени).

Starter PRO

От $5usd до $12usd.
Редактируемый тариф.
от $5/месяц
1x лицензия на бота
$3/пожизненно
PRO версия бота на 90 дней бесплатно.
Обновления бота
$5/месяц
Автоматическая выкладка новой версии бота в один клик (после обновления кода) на сервер/в прод: сборка → тесты → релиз без ручных действий или “в один клик”.
Стакан заявок
$10/пожизненно
$10/пожизненно
Подключение Order Book, что даёт при создании алгоритмических стратегий учитывать данные из "стакана" - большое преимущество.
Тестер стратегий
$0
Вы можите составить свою стратегию внутри тестера, через составитель алгоритмов (Есть окно ограничений на неделю*).
И протестировать её на реальном рынке до 5000 свечей, выяснив её эффективность до реальных торгов.
Состваитель алгоритмов
$7/месяц
Для текстового составления алгоритмов мы берём мощности GPT-5.2-codex у OpenAI, через их API. Поэтому есть окно ограничений как за день, так и за неделю. Подробнее тут.
VPS сервер
$9/месяц
VPS сервер и его ежемесячное обслуживание + инструкция по установке бота на него.
Развёртывание бота на VPS
Не входит
Прямая связь с ИИ агентом по любым вопросам, заточенным под всю нашу Wiki базу. В особых случаях связь с живым оператором и дистанционным управлением вашим десктопом.
Приоритетная поддержка
Не входит
Прямая связь с ИИ агентом по любым вопросам, заточенным под всю нашу Wiki базу. В особых случаях связь с живым оператором и дистанционным управлением вашим десктопом.
Приватный чат для подписчиков
$0
Закрытый чат, где участники имеют возможность общаться только в кмоментариях к записям автора чата. Дабы не было флуда.
Алерты
$0
Это уведомления, которые автоматически приходят, когда что-то пошло не так или достигнут порог (например, бот остановился, ошибка API, просадка выше X, нет связи с биржей).
Мониторинг здоровья бота
$0
Постоянное наблюдение за “здоровьем” бота: работает ли он, не падает ли, какая задержка, ошибки, нагрузка, состояние подключений к биржам и т.д.
Расширенные риски
$0
Position sizing — бот ограничивает размер позиции (сколько денег/лота в одну сделку).
Max drawdown limit — лимит на максимальную просадку (если достигнута — бот тормозит/выключается).
Daily loss limit / “circuit breaker” — дневной стоп по убытку: при достижении порога торговля останавливается.
Расширенные ордера
$0
Trailing Stops - переставление стопов, уменьшая потери, вплоть до входа в безубыточный Stop Loss.
OCO / Iceberg / TWAP и т.п. — продвинутые заявки для лучшего исполнения (меньше проскальзывания, меньше “палить” объём, дробить крупный ордер по времени).

PRO

От ~$20usd до $70usd. Редактируемый тариф.
от $21/месяц
1x лицензия на бота
$3/пожизненно
PRO версия бота на 90 дней бесплатно.
Обновления бота
$5/месяц
Автоматическая выкладка новой версии бота в один клик (после обновления кода) на сервер/в прод: сборка → тесты → релиз без ручных действий или “в один клик”.
Стакан заявок
$10/пожизненно
$10/пожизненно
Подключение Order Book, что даёт при создании алгоритмических стратегий учитывать данные из "стакана" - большое преимущество.
Тестер стратегий
от $200/по запросу
Вы можите составить свою стратегию внутри тестера (без ограничений*) на основе больших исторических данных.
И протестировать её на реальном рынке, выяснив её эффективность до реальных торгов.
Состваитель алгоритмов
$15/месяц
Для текстового составления алгоритмов мы берём мощности GPT-5.2-codex у OpenAI, через их API. Окно почти не имеет ограничений. Подробнее тут.
VPS сервер
$9/месяц
VPS сервер и его ежемесячное обслуживание + инструкция по установке бота на него.
Развёртывание бота на VPS
$15/пожизненно
Прямая связь с ИИ агентом по любым вопросам, заточенным под всю нашу Wiki базу. В особых случаях связь с живым оператором и дистанционным управлением вашим десктопом.
Приоритетная поддержка
$50/месяц
Прямая связь с ИИ агентом по любым вопросам, заточенным под всю нашу Wiki базу. В особых случаях связь с живым оператором и дистанционным управлением вашим десктопом.
Приватный чат для подписчиков
$0
Закрытый чат, где участники имеют возможность общаться только в кмоментариях к записям автора чата. Дабы не было флуда.
Алерты
$0
Это уведомления, которые автоматически приходят, когда что-то пошло не так или достигнут порог (например, бот остановился, ошибка API, просадка выше X, нет связи с биржей).
Мониторинг здоровья бота
$0
Постоянное наблюдение за “здоровьем” бота: работает ли он, не падает ли, какая задержка, ошибки, нагрузка, состояние подключений к биржам и т.д.
Расширенные риски
$0
Position sizing — бот ограничивает размер позиции (сколько денег/лота в одну сделку).
Max drawdown limit — лимит на максимальную просадку (если достигнута — бот тормозит/выключается).
Daily loss limit / “circuit breaker” — дневной стоп по убытку: при достижении порога торговля останавливается.
Расширенные ордера
$0
Trailing Stops - переставление стопов, уменьшая потери, вплоть до входа в безубыточный Stop Loss.
OCO / Iceberg / TWAP и т.п. — продвинутые заявки для лучшего исполнения (меньше проскальзывания, меньше “палить” объём, дробить крупный ордер по времени).

Какие биржи можно подключить?

Binance

Roadmap проекта

Планы на будущее / Будущие функции торгового бота

Над чем идёт работа сейчас

Что уже сделано / Какие функции готовы