Избранное трейдера Holod_Dmitry
Показывает акции на которых идут большие объемы на покупку/продажу.
Делаем сортировку по капитализации и смотрим акции в топе, далее заходим в терминал и принимаем решение входить в лонг или шорт по акции.
Приветствуем!
Статья можно сказать пишется прямо онлайн в процессе создания скрипта. Логика входа — как было в предыдущей статье, локализуем объем в свече и входим. Но изменение только в значимости объема и отсутствие первоначального паттерна свечного. Значимость определяем как перевес верхнего объема от нижнего в полтора раза. Из дополнительной логики добавили условие что объем на свече должен быть хотя бы 5000 для ри, иначе у нас получался «мега» скальпер с большим количеством сделок.
Картинка в качестве пруфа
Возможно вы скажете, не ну вон как доход растет — оставляй так, но естественно что мы постараемся представить хоть в каком либо юзабельном виде, а не скрипт ради скрипта. Подобный «скальпер» во-первых, случайный, во-вторых, средний доход меньше комисса потому в реальности будет сливать))
Потому ставим фильтр 5000 минимально приемлемый объем на свече и получаем такое развитие алгоритма.
Если кого вдохновило сообщение smart-lab.ru/blog/680086.php, тому не обойтись без книги «NUMERICAL RECIPES. The Art of Scientific Computing. Third Edition». Качайте, пока дают
www.e-maxx-ru.1gb.ru/bookz/files/numerical_recipes.pdf
Бесплатные исходники к ней github.com/blackstonep/Numerical-Recipes
Программа svd.h из этого набора решает задачу наименьших квадратов для построения индикатора полиномиальной регрессии вместо примитивных скользящих средних.
Хорошее объяснение математической подоплёки в книге «Машинные методы математических вычислений. Форсайт, Малькольм, Моулер» en.booksee.org/book/445129
Ещё лучше — «Линейная алгебра и её применения» Гилберт Стренг
fileskachat.com/download/20151_887581203f10b39b3d7f6b84caf48a63.html
«Linear Algebra and Its Applications 4ed»
www.astronomia.edu.uy/progs/algebra/Strang- Linear_algebra_and_its_applications.pdf
Для использования программы svd.h из «NUMERICAL RECIPES» нужны тривиальные дополнения — транспонирование и перемножение матриц. Набор программ можно дополнить самодельным файлом utils.h и разместить в нём такой код:
#include <assert.h>
template <class T>
class NRdiagonal: public NRvector<T> { using NRvector<T>::NRvector; };
template <typename T>
void Multiply (const NRdiagonal<T>& a, const NRvector<T>& b
,NRvector<T>& c) {
int m = a.size();
assert (m == b.size());
c.resize (m);
for (int i = 0; i < m; ++i)
c[i] = a[i] * b[i];
}
template <typename T>
void Multiply (const NRmatrix<T>& a, const NRvector<T>& b
,NRvector<T>& c) {
int m = a.nrows(); int n = a.ncols();
assert (n == b.size());
c.resize (m);
for (int i = 0; i < m; ++i) {
c[i] = 0;
for (int j = 0; j < n; ++j)
c[i] += a[i][j] * b[j];
}
}
template <typename T>
void Transpose (const NRmatrix<T>& a, NRmatrix<T>& b) {
int m = a.nrows(); int n = a.ncols();
b.resize (n, m);
for (int i = 0; i < n; ++i)
for (int j = 0; j < m; ++j)
b[i][j] = a[j][i];
}
template <typename T>
void PrintVector (char* hdr, const NRvector<T>& vec) {
cout << hdr << '\n';
for (int i = 0; i < vec.size(); ++i)
cout << " " << vec[i];
cout << '\n';
}