Skip to content

Instantly share code, notes, and snippets.

@kireal
kireal / NoZeros
Last active August 29, 2015 14:19 — forked from shivallan/NoZeros
#include <vector>
#include <cstdlib>
#include <algorithm>
#include <iostream>
#include <sys/time.h> // for gettimeofday()
//#include <cstdint> C++11 Standart only
using namespace std;
void nozero (std::vector<long long> &v)
{
@kireal
kireal / LagNonZeroCVector
Last active August 29, 2015 14:19
LagNonZeroCVector
#include <xmmintrin.h>
#include <emmintrin.h>
#include <immintrin.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>
int lag(int32_t *a, int32_t size)
{
@kireal
kireal / maxdrawdown.m
Created April 26, 2015 15:50
Compute maxdrawdown statistics on equity, Matlab Financial Toolbox (c)
function [MaxDD, MaxDDIndex] = maxdrawdown(Data, Format)
%MAXDRAWDOWN Calculate maximum drawdown for one or more price series.
% Given a T x N matrix of Data with T observations of N total return price series (also known as
% total equity), compute maximum drawdown for each series in an N vector MaxDD and identify start
% and end indexes of maximum drawdown period for each series in a 2 x N matrix MaxDDIndex.
%
% MaxDD = maxdrawdown(Data);
% MaxDD = maxdrawdown(Data, Format);
% [MaxDD, MaxDDIndex] = maxdrawdown(Data, Format);
%
@kireal
kireal / StartEndPosition.md
Last active August 29, 2015 14:20
Начало серии / конец серии

Задача

Разработать функцию по следующим условиям:

На вход, подяется вектор со значениями: -1 / 0 / 1 (сакральный смысл False / Null / True)

Задача найти начало и окончание серсии событий (последовательного действия одного из значений в векторе), для трех разных алгоритмов (Привидены ниже в порядке приоритета).

Результатом функции является два вектор, в которых сохраненены индекс (номера позиций) для начала серии события и для окончания. Примеры см. ниже.

@kireal
kireal / ABPeriods.md
Last active August 29, 2015 14:20
Периоды выше / ниже нуля

Задача

Написать C++ функцию, которая реализует сл. алгоритм (см. ниже). Данная функция использует функцию StartEndPosition.

На вход, подается:

  • invector - vector of byte ? входной вектор, с сериями событий, см StartEndPosition
  • traectory - vector of double траектория (кол. элементов как и в invector)
  • penalty - scalar штраф за изменение серии
  • vectortype - text тип входного вектора, с сериями событий, см StartEndPosition
#include <vector>
#include <algorithm>
#include <iterator>
#include <iostream>
#include <sys/time.h>
void event(std::vector<char> &v, std::vector<unsigned long long> &sp, std::vector<unsigned long long> &ep)
{
char pre_val(0), cur_val(0);
unsigned long long pos(0);
@kireal
kireal / docker_inspect
Created June 19, 2015 09:29
Docker show command
docker inspect -f "{{.Name}} {{.Config.Cmd}}" $(docker ps -a -q)
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
@kireal
kireal / code_lines
Created August 30, 2015 14:01
Count code lines
find . -name '*.m' | xargs wc -l
@kireal
kireal / install_docker
Created September 8, 2015 18:56
Install last docker script
wget -qO- https://get.docker.com/ | sh