Избранное трейдера Karim
Поделюсь алгоритмом первичного отбора акций компаний российского фондового рынка для формирования долгосрочного портфеля частного инвестора. Способ достаточно прост и всем по карману, ибо ничего не стоит в плане существенных энергозатрат. Несколько упражнений, и первичный перечень акций для покупки готов. Либо поработать с ним дальше, проведя более глубокие исследования выбранных эмитентов.
Итак,
В продолжении первой статьи
Не каждый заказчик может написать техническое задание по ГОСТу, но всегда можно написать своими словами, либо скриншотами или привести примеры с помощью цифр, чтоб разработчику стало понятно, что нужно от торгового робота.
Какие основные моменты нужно отразить в техническом задании по созданию торгового робота:
Наверняка, любой трейдер, пытавшийся протестировать свои стратегии в 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 не дает открывать позиции размер которых превышает размер капитала
Работаем с площадью. Алгоритм на WelathLab
Когда на графике куча скользяшек, складывается впечатление, что система держится на соплях и долго не протянет. Поэтому давно начал думать о каких-то универсальных индикаторах, которые бы измеряли сразу много параметров рынка.
Первое, что пришло в голову – это использовать площади на графике. Изначально идея была такой:
По задумке получившееся значение должно было отражать глубину рынка, то есть насколько сильно ходит рынок от локального хая/лоя до хая/лоя внутри дня. Если же мы добавим сюда время (за сколько рынок сходил), то получим индикатор флэта (маленькое значение + большой временной промежуток). По ходу построения индикатора возникали мысли о том, что всё это можно реализовать гораздо проще, и действительно – можно.
Когда передо мной встала задача удаления поставленного стоп-ордера, наткнулся в интернете на скудность информации по данной тематике.
Самая распространенная ошибка начинающего программиста отправка в SendTransaction в STOP_ORDER_KEY trans_id стоп-ордера
Робот выставляет стоп-заявку на покупку по определенной цене, затем через 2 секунды снимает её.
Также в коде имеются следующие фишки: