Обновить

Комментарии 9

Робот построенный на Скользящих средних работает только на хорошем тренде,

При боковике, приводит к сливу счета.

И главное не увлечься оптимизацией торгового алгоритма на исторических данных, а то только на них он и будет показывать прибыль, а в реальном времени ничего.

Вообще в этом деле самое сложное это торговый алгоритм, это как Грааль, универсальных не существует, каждый алгоритм может будет работать на определенном тире рынка.

Если бы было так просто, то у же все бы использовали их, но с другой стороны это тут же привело бы к их "самовыражению".

Удачи.

Спасибо большое.

Скользящие средние - это первый шаг в реализации сигналов.

После того как сделаю несколько разных сигналов начну думать как их объединять и использовать в различных стратегиях.

Только брокера кормите через комиссии

Им только и надо что бы мы кучу сделогв секунду делали

На самом деле я не исключаю, что всё именно так и выйдет. Вместо прибыли боты могут стабильно сливать в минус. Посмотрим позже на результат :)

Для этого я сделал небольшой хелпер-конвертер значений во float тип данных.

Гораздо интереснее обратный конвертер из units/nano в float - например, когда вы хотите вычислить целевую цену от входной - хотя бы для стоп-лосса как sourcePrice - 1%.

Например, вот тут вычисления опираются на floor, что в случае вычисленной цены типа 99.999999... даст {units : 99, nano : 999999999}, что слегка отличается от целевого ожидаемого {units : 100, nano : 0}.

Но самая большая проблема в этой реализации заключается в том, что такое представление целевой цены никак не соотносится с шагом цены инструмента (например, 0.02), и заявка с {units : 99, nano : 999999999} просто будет отклонена с ошибкой.

У меня получилось что-то типа вот такого:

const units2value = data => {
  if (!data) {
    return null;
  }
  const {units, nano} = data;
  return !nano ? units : units + nano/1e9;
};

// minPriceIncrement берется из getInstrumentBy конкретного инструмента
const precision = -Math.floor(Math.log10(units2value(minPriceIncrement)));

const value2units = (value, p = precision) => {
  if (value === undefined || value === null) {
    return undefined;
  }
  if (Number.isInteger(value)) {
    return {units : value, nano : 0};
  }
  let [
    units
  , nano
  ] = value
    .toFixed(p) // ограничиваем значение целевой точностью
    .split('.') // делим на целую и дробную части
    .map((s, i) => Number(!i ? s : s.padEnd(9, '0'))); // nano расширяем до 9 цифр
  const {
    units : _units
  , nano  : _nano
  } = minPriceIncrement;
  if (p > 0 && !Number.isInteger(Math.log10(_nano))) { // округление до ближайшего шага цены
    nano = Math.round(nano/_nano) * _nano;
    if (nano == 1e9) { // защита от .999...
      nano = 0;
      units++;
    }
  }
  return {units, nano : Math.sign(value) * nano};
};

Интересный опыт. Спасибо.
Я пока что сделал простой способ продажи где просто пишу целую часть в units и дробную в nano. Хотя сейчас уже вижу явную проблему в этом.
К следующей статье исправлюсь :)

Могу немного поделиться опытом из крипты: если кратко то все эти RSI, MACD, EMA и тд и тп - хрень полная, эдакие народные приметы для прогноза погоды, не более того. Что реально имеет значение - объёмы, а именно - резкий всплеск объёмов х50 и выше от среднего, плюс - реакция цены на это.

Я не могу называть себя экспертом в этой области, но, на мой взгляд, крипта не подчиняется классическим правилам. Но на нее очень сильно действуют события в мире. К примеру, кто то из известных запостил название новой крипты в Х и все побежали ее покупать. В таком случае и цена х10-х100 запросто, которую можно отледить по взрымному росту объемов как вы говорите.
Но в любом случае, какие то сигналы на объемы тоже будут реализованы :)

Если мы не говорим о скамкоинах, которые взлетают на 1000% за 10 минут и так же быстро падают в ноль, то я бы сказал - строго наоборот: по крипте какие-то значимые новости возникают крайне редко и крипта наиболее полно зависит от сугубо рыночных механизмов, которые поддаются какому-то алгоритмическому анализу.

Лезть торговать акции без инсайдов по компаниям акциями которых собираешься торговать видится мне так себе затеей. Ибо невозможно предвидеть что условный газпром подпишет какой-нибудь новый контракт с Китаем, если не работаешь в Газпроме и не знаешь его кухню изнутри. А это напрямую влияет на стоимость его акций.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации