Быстро сказка сказывается, да не быстро дело делается)).
Напишу немного про прогресс. Отсутствие позитивной обратной связи на мои теоретизирования и обвинения в перегибе в сторону теории охладили моё желание изливать свои теоретические рассуждения и мысли), ну ничего, оно вернётся со временем — мысли то не пропали)). Это почему я не пишу. По поводу конкретного прогресса теперь. Я искал — я нашел — нашел компаньона — теперь работаем вдвоём. Пока всё пучком, надеюсь тандем выстрелит, в любом случае опыт интересный и полезный получится. А в целом по поводу тандема — сценарий обычный — первичная эйфория сменилась более объективным отношением. Определили схемы взаимодействия, набросали роудмап со сроками, двигаемся согласно установленного плана)).
Плюсы тандема (не любого, а именно этого):
— Я закрыл те области, которые у меня проседали, могу сконцентрироваться на том, что умею и люблю — рисёч. Кроме технических вопросов кстати скомпенсировал свой перекос в теорию и пространные рассуждения, в запрягание нежели езду и т.д.
Наверняка, любой трейдер, пытавшийся протестировать свои стратегии в Wealth Lab (версия 6.4) сталкивался с необходимостью определения в стратегии своей системы управления рисками. Особенно это актуально при торговле фьючерсами.
Задать размер позиции в Wealth Lab можно создав класс, производный от класса WealthLab.PosSizers.BasicPosSizer и переопределив в нем метод SizePosition.
Что я собственно и сделал:
//////////////////////////////////////////////////////////////////////////////////
public override double SizePosition(Position currentPos, Bars bars, int bar, double basisPrice,
PositionType pt, double riskStopLevel, double equity, double cash)
{
double risksizeprecent = Math.Abs((riskStopLevel — basisPrice) / basisPrice — 1);
if (_settings == null)
_settings = new myPosSizerSettings();
this.InitializeSettings(_settings);
_maxRisk = _settings.MaxRiskSize;
double capfortrade = equity *0.99*_maxRisk/100;
capfortrade = capfortrade/Math.Abs(riskStopLevel — basisPrice);
return (int)capfortrade;
}
//////////////////////////////////////////////
Устанавливаю максимальный риск на сделку
Однако проблема в том, что WealthLab не дает открывать позиции размер которых превышает размер капитала
Только сегодня и только для вас!: дочитай пост до конца — и ты услышишь увлекательную историю о рисовании графика ликвидного фьючерса.
Но по порядку. Вообще-то те, процессы, которыми я занимался для создания первой работающей схемы, я не очень люблю. Я больше люблю неторопливо исследовать, чем это. А собственно, что «это»?
Я как человек, любящий долго запрягать, когда речь зашла об алготрейдинге — долго запрягал)). Долго выбирал стек-технологий, тыкался-мыкался и остановился на некоторой связке, а именно Wealth-Lab (тестирование стратегий и всяческий рисёч) + Transaq connector (получение маркет данных, отправка ордеров) + готовый коннектор (для того, чтобы связать два предыдущих товарища между собой). Как я сказал, я долго выбирал, и когда выбрал подумал: ну всё, понеслась, запускаю и погнали алготрейдить)). Нифигаа..
Как оказалось парень, которого я назвал «готовый коннектор» не так прост. У меня нет его исходного кода (хотя кого я обманываю, даже если бы был, мой C# пока не так хорош, чтобы ломаться при слове delegate или чем-то подобном, что скорее всего я в коде встречу). А работать с чем-то, что не работает идеально, или вообще не очень хорошо (или даже вообще не работает), не имея возможности посмотреть внутрь, ну очень не комфортно. Развитые аналитические способности, конечно, в некоторой степени позволяют заглянуть внутрь сквозь черноту черного ящика, но это совсем не то же самое что реально видеть, как оно работает. Ну короче, коннектор не отправлял корректно заявки — часть отправлял, а часть упорно игнорил — мне такое не подходит)). Общался с разрабом — не помогло. Сам исследовал — не помогло (строил гипотезы, проверял, строил новые — проверял, конкретизировал гипотезы — проверял, факторный анализ проводил, чего только не делал, успехи были, но остались области полностью черные когда ты тупо не видишь никакой закономерности в том, почему оно вот сейчас работает, а вот сейчас не работает). После этих заглядываний через черноту черного ящика я собственно и решил форсировать апгрейдинг своего C# — никто тебе не помешает заглянуть внутрь того, что ты сам написал и сам понимаешь)).
I’m back!
Было сложно? – было. Сделал ли я так, как хотел бы чтобы выглядело исполнение приказов, и получение маркет даты в идеале? – даже близко нет. Рад ли я, что оно хоть в каком-то виде, но заработало? – очень!
В общем первая связка — done. Здесь всё как я люблю (сарказм) – и тебе необходимость последовательного выполнения набора ручных действий чтобы стартануть механизм (нарушишь порядок или что-то пропустишь и твоя шарманка не заработает) и шаткость конструкции – чуть сильнее дунет ветер — и оно развалится. Но блин всё равно приятно. Это как в B2B секторе приходят бизнесмены-клиенты с копеечными оборотами – для компании они – больше убытки чем прибыль, но они сами очень горды собой и своими оборотами, я их понимаю, и всегда понимал.
Когда приступал к настройке-построению системы, думал: настрою, сконцентрируюсь на рисёче)). Ну да, наивный). Теперь скорректированный план такой:
Решил пересчитать риски по срочному рынку, для этого желательно было соединить системы в один портфель, 2 дня и 2 ночи и готово.
Получилось лучше, чем по отдельности каждая система, риски снизились на 10-13%.
Так как в портфеле теперь 12 систем, то каждой даю по 100 000, итого минимальная сумма на портфель 1 200 000.
В итоге получилось:
На доллар/рубле
Всем, наверное, хочется найти единомышленников. Ну такая внутренняя потребность у человека. Как и у других поведенческих паттернов, у этого наверняка тоже есть глубинные предпосылки, которые идут от наших далеких предков, обусловлены инстинктами и т. д., можно попытаться проанализировать, но не буду)).
Забавен такой момент, когда ты не крутишься в трейдинговой среде-тусовке (да, буду говорить о трейдинге родимом), тебе кажется, что когда ты встречаешь трейдера (на просторах ли интернета или оффлайн) — ты сразу: вау, земеля, братан, мы с тобой одной крови, возможно, так и происходит. Когда же ты начинаешь обращаться в трейдинговой среде, голод общения снижается, ты становишься более привередливым, не каждый трейдер уже братан). И тут ты понимаешь, что чтобы найти настоящего единомышленника надо очень постараться, должно совпасть слишком много моментов.
Чувак обсуждает конкретных эмитентов, какие-то по ним новости, разводит трехэтажные индуктивные абстрактные рассуждения — нам не по пути. Чувак алготрейдер, ммм, уже интересней. Но да, совсем не каждый алготрейдер твой друг — ты видишь, что перед тобой матёрый кёрвфиттер, не планирующий изменяться — видимо, нам не по пути. И вот когда ты видишь человека с похожими взглядами на трейдинг, на риски, на анализ, на создание систем, ты думаешь, вау, вот оно, случилось, возможно, ты уже распланировал как вы поженитесь и будете воспитывать совместных детей как вы создадите совместный фонд и тут как обухом по голове: и такого совпадения взглядов, оказывается, тоже не достаточно! Что такое? Чё за херня? Как так? Что ещё-то надо?? Человеческие качества никто не отменял, оказывается. Ты гибкий, лёгкий оптимист с чувством юмора, открытыми взглядами, спокойно относящийся к критике, впитывающий информацию как губка, способный мыслить открыто, гибко и свободно, а человек — пессимист, с зашитыми в голову догмами, пусть и неплохими, но не гибкий в мышлении? — Фак, похоже, вам опять не по пути!