Избранное трейдера Karim

по

Вот! Простой способ выбора акций в долгую

         Поделюсь алгоритмом первичного отбора акций компаний российского фондового рынка для формирования долгосрочного портфеля частного инвестора. Способ достаточно прост и всем по карману, ибо ничего не стоит в плане существенных энергозатрат. Несколько упражнений, и первичный перечень акций для покупки готов. Либо поработать с ним дальше, проведя более глубокие исследования выбранных эмитентов.
Итак,

  1. Формируем перечень      компаний, акции которым имеют наибольшую просадку (снижение стоимости) за  последний год. Такой перечень можно получить, используя доступный всем   функционал по отбору акций на сайте investfunds.ru, задав соответствующие фильтры по  доходности. По состоянию на 15.02.2018 получилось следующее:

 Вот! Простой способ выбора акций в долгую



( Читать дальше )

мой список мест откуда брались алго идеи

Всем привет.
Решил выложить все источники инфы и идей по алго и трейдингу которыми пользовался, так как недавно появлялся такой вопрос.
Мне абсолютно не жалко, и ничего не зажал, может просто не всё сразу вспомнил и лень вспоминать.
На чтение и исследования потрачено несколько лет фултайм работы и чтобы кто-то сделал роботов лучше то ему скорее всего придётся потратить времени и сил ещё больше, но и я ведь тоже на месте не сижу, поэтому конкуренции особо не боюсь.


( Читать дальше )

Что следует указать в технического задании на торгового робота

В продолжении первой статьи 

Не каждый заказчик может написать техническое задание по ГОСТу, но всегда можно написать своими словами, либо скриншотами или привести примеры с помощью цифр, чтоб разработчику стало понятно, что нужно от торгового робота.

Какие основные моменты нужно отразить в техническом задании по созданию торгового робота:

  1. Торговый терминал (квик, транзак коннектор и т.д.);
  2. Язык программирование, если есть предпочтения. В другом случае разработчик предложит вам варианты реализации торгового робота
  3. Нужен или нет графический интерфейс;
  4. Открытие и закрытие позиции, какими заявками производится:
    — Рыночные или лимитные заявки
    — Стоп-заявки, должны ли выставляться в терминал или весь расчет ведется в роботе
    — Если заявки лимитные, если не исполнились, то какие должны быть следующие действия — переставляется, сниматься, исполнятся по рынку;
    — Исполнение заявок по закрытию свечи, либо по цене закрытия при появлении новой свечи или за несколько секунд до конца формирования свечи, и в этом случае нужно учесть, что если по окончанию формировании свечи, сигнал пропадет – нужно ли будет откатывать позицию;
  5. Условия открытия и закрытия позиции, принимаются по сформированным свечам или по текущим, формирующимся значениям;
  6. Инструменты торговли. Сколько инструментов одновременно будет торговаться, возможно ли торговля по одному инструменту роботами с разными параметрами, например, один торгует на 1 минуте другой на 5 минутах;
  7. Таймфреймы работы робота;
  8. Время работы робота;
  9. Как рассчитывается объем открываемой позиции:
    -Задается фиксировано;
    -Рассчитывается роботом по формуле (необходимо привести формулу и еще лучше с цифровым примером);
    -Рассчитывается исходя из суммы;
  10. Нужно ли уведомления (телеграмм, смс, почта, звуковое оповещение или окно с сигналом), на какие события должны быть уведомления;
  11. Если робот использует индикаторы, и они взяты из другой системы (например, иностранной программы технического анализа), то необходимо сравнить его с индикатором с терминалом, в котором планируется его использование или сквиком, если таковой есть. Если есть расхождения, то предоставить формулу расчета;
  12. Нужен или нет открытый код робота;
  13. Количество рабочих мест (например, разные компьютеры или разные квики);
  14. Описать переменные, которые необходимо иметь возможность изменять, и дать им название и описание. Далее в техническом задании оперировать лучше ими;
  15. Алгоритм робота;
  16. Собственные дополнения, которые считаете важными и не отраженные в этом списке, например, возможность протестировать стратегию, время работы робота, управление рисками, эмуляция торгов (без фактической отправки транзакций на бирже) – в этом случае ведется запись сделок робота, нужны ли отчеты по работе робота и в каком виде, логирование, обучение пользованию программы, пояснению к коду робота и т.д.


( Читать дальше )

ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров


  ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

Для того, чтобы лучше понять материал, можно ознакомиться в этими статьями:
https://smart-lab.ru/blog/180975.php
https://smart-lab.ru/blog/259824.php 
Там же видео как я оптимизировал 2,5 года назад(2015 год)

+++ Спасибо за твой плюс или коммент, они важны для меня!+++
*Картинки из статьи можно смотреть тут
ЛЧИ близко. АлгоТрейдинг - устойчивость робота и подбор параметров

( Читать дальше )

Wealth-Lab.Открытие позиции, превышающей размер капитала (Плечи).

Наверняка, любой трейдер, пытавшийся протестировать свои стратегии в 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;
}
//////////////////////////////////////////////
Устанавливаю максимальный риск на сделку
Wealth-Lab.Открытие позиции, превышающей размер капитала (Плечи).
Однако проблема в том, что WealthLab не дает открывать позиции размер которых превышает размер капитала



( Читать дальше )

Работаем с площадью. Алгоритм на WelathLab

Работаем с площадью. Алгоритм на WelathLab
Работаем с площадью. Алгоритм на WelathLab


Когда на графике куча скользяшек, складывается впечатление, что система держится на соплях и долго не протянет. Поэтому давно начал думать о каких-то универсальных индикаторах, которые бы измеряли сразу много параметров рынка.

Первое, что пришло в голову – это использовать площади на графике. Изначально идея была такой:

  1. Строим кривую по хаям и по лоям
  2. С помощью интерполяции находим промежуточные значения нашей кривой для большей точности.
  3. Аппроксимировать получившуюся кривую.
  4. Взять интеграл от получившейся в третьем шаге функции.

По задумке получившееся значение должно было отражать глубину рынка, то есть насколько сильно ходит рынок от локального хая/лоя до хая/лоя внутри дня. Если же мы добавим сюда время (за сколько рынок сходил), то получим индикатор флэта (маленькое значение + большой временной промежуток).  По ходу построения индикатора возникали мысли о том, что всё это можно реализовать гораздо проще, и действительно – можно.
Работаем с площадью. Алгоритм на WelathLab



( Читать дальше )

Загрузчик с Финама

    • 17 мая 2017, 06:48
    • |
    • T-800
  • Еще
кто в курсе, какой новый адрес сервера для закачки котировок с финама? 
старый (78.41.196.47) перестал работать.

ПОСТАНОВКА И СНЯТИЕ STOP-ОРДЕРА В QLUA(LUA)

Когда передо мной встала задача удаления поставленного стоп-ордера, наткнулся в интернете на скудность информации по данной тематике.

Самая распространенная ошибка начинающего программиста отправка в SendTransaction в STOP_ORDER_KEY  trans_id стоп-ордера

Робот выставляет стоп-заявку на покупку по определенной цене, затем через 2 секунды снимает её.

Также в коде имеются следующие фишки:

  • Запись удобочитаемого лог-файла.  Записи с интервалом <=1 сек. группируются в пул. Между пулами — пустая строка. После остановки скрипта в файл добавляется двойная линия.
  • Функция преобразования числа в строку с удалением точки и нулей правее нее для отправки этой строки в SendTransaction
  • Функция, возвращающая Entry или Exit в зависимости от trans_id принадлежности транзакций к входу или выходу


( Читать дальше )

....все тэги
UPDONW
Новый дизайн