01 May

Возвращаемся к сраной гавнобирже

Так уж случилось что в кои то веки я вренулся к ней родимой. решил изменить мой сервис мониторинга биржевых котировок. основное что я хочу сделать.

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

в сумме, у нас должно получится сделующее. аналогично криптоватчу мы имеем границы изменения как грани стакана, + мы имеем границы показывающие амартизацию по покупкам и продажам на интервал вперед. в смысле крайние движения если покупать и продавать будут с той же частотой что и раньше. и плюс мы имеем точки притяжения цены в виде пиков горизонтального обьема. атх, хая и лоу за 24 часа.

думаю особо хорошие результаты мы получиим если будет накладывать на амортизацию те самые грани стакана на аск и бид. хотя тут конечно многое зависит от таймфрейма используемого для рассчета.

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

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

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

17 Apr

опять GavnoПроекты. Подгружаемые конфигурируемые системы


Из последнего, что делал и за что не заплатили. Креслеца.

Бывают такие рекурсивные системы, вроде горожей в ммо, подборки мебели и тому подобного. Меня не так давно просили сделать одну такую для кресел.

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

если кому интересно https://hikke.net/chair.html

10 Feb

Парсинг лайков втентакле, и вывод целевой категории, блеянах

Что делать если среди лайкнувших пост хочется выбрать определенную категорию людей, а поиска по лайкнувшим, втентакль не предоставляет..

порылся в первый раз за последние несколько лет в vk.api и нашел решение этой проблемы. методы api используемые для этой цели:

получение идентификатора группы по её дисплейнейму

https://vk.com/dev/groups.getById

получение списка постов по идентификатору группы
https://vk.com/dev/wall.get

получение списка идентификаторов пользователей лайкнувших пост
https://vk.com/dev/likes.getList

получение выборочной информации о пользователях
https://vk.com/dev/users.get

с ресурсами определились. теперь лезим в консоль разработчика VK и создаем две функции. первая для получения идентификаторов постов

 

var a = API.groups.getById({"group_id":Args.groupName});
var group_id= a@.id[0];
var count= Args.postcount;
var offset = Args.offset;
var posts = API.wall.get({"owner_id":-group_id, "count":count, "offset":offset});

var i = count;
var OUT=[];

OUT.push({"groupID": group_id});
while (i>=0) 
{ 
    OUT.push({"id":posts.items[i].id, "text": posts.items[i].text});
    i=i-1;
};
return OUT;
//return posts.items[0].id;//@.id, posts.items@.text];
и воторая для фильтрации их по заданым критериям. в случае ниже по полу и городу
var group_id= Args.group_id;
var post_id = Args.post_id;
var offset = Args.offset;
var count = Args.count;
var sex = Args.sex;
var sity = Args.city;
var likes = API.likes.getList({"type":"post", 
"owner_id":group_id,
"item_id":post_id,
"extended":0,
"offset":offset,
"count":count
}).items;

var users =API.users.get({"user_ids":likes,"fields":"city, sex"});
var OUT=[];
var i=0;
while(i	< count)
{
    if(users[i].sex==1 )
    {
        if(users[i].city.title == Args.city)
        {
            OUT.push(users[i]);
        }
    }
    i=i+1;
}
return OUT;

Отлично. Молодец. Теперь можно пейсать и предлагать забухать

20 Jan

Небольшая референса по созданию датасетов и нейронкам keras

Достался мне небольшой гавнопроект по нейронкам. Что-бы не терять времени бычтренько запилю тут основные моменты.

входные данные имеют примерно такой вид и структуру

ID, DateTime, Data1, Data2

Данные снимаются каждые пять минут, и в результате выходит файлы, в котором куча разных идшников с графиками двух параметров переменной длинны.
Ессно в таком виде данные на вход нейронки мы падать не можем. поэтому используем интерполяцию. я использую 10 точек для интерполяции и передачи времени от начала эксперемента средних значений для точки интерполяции параметра1 и минимальных, максимальных средних значений для параметра два для каждой точки интерполяции преобразуя рав дату в дата ассет вида. Вообще можно использовать не только минимальные, максимальные но и всякого рода дисперсии и отклонения в зависимости от задачи

TargetCalssNUM,
Dapa1_point1 .. Data1_point_10,
Data2_point1 .. Data2_Point10, 
Data2min_point1 .. Data2min_point10, 
Data2max_point1 .. Data2max_point10,
Time1 .. Time10

кусок гавнокода решающий задачу создания датасета из рав данных

Читать далее

25 Dec

Когда бухло уже не вставляет

Бывает что пьешь пьешь, и в какой-то момент вместо того что-бы получить какой-то фан. Чувствуешь себя ещё хуже чем если бы не пил. Как на пике примерно.

Вот напился я как-то до чего-то подобного, и решил бросать. Если от алкоты нет фана, то мне нет смысла пить алкоту.

Читать далее

06 Sep

быстрая референса по Truffle

инициализация контракта

mkdir gavno_contract
cd gavno_contract
truffle init

создаем код GavnoContract.sol

pragma solidity ^0.4.8;

contract GavnoContract{
  uint256 someGavno;

function addGavnoToContract() public payeable {
    someGavno+= msg.value;
  }
}

и качуем /migrations/2_deploy_contract.js, где добавляем имя контракта

var GavnoContract= artifacts.require("./GavnoContract.sol");

module.exports = function(deployer) {
  deployer.deploy(GavnoContract);
};

топаем в /tests, где создаем юниттест

var GavnoContract = artifacts.require("./GavnoContract.sol");
let instance;

contract("GavnoContract:test", async (accounts) => {

  it("let's create this shit", async function () {
    instance = await GavnoContract.new({from: accounts[1]})
    await instance.addGavnoToContract({from: accounts[3], value: 100000000000000});
    await instance.addGavnoToContract({from: accounts[4], value: 100000000000000})
    let result1 = await instance.someGavno.call();

   // console.log(result1.toNumber());
    assert.isTrue(resultNum != 200000000000000);
  });
});

дальше как обычно

truffle compile
truffle migrate
truffle test

 

04 Sep

Еще одна аудио визуалка

На этот раз с микрофона.

[fruitful_alert type=”alert-success”]Она будет использоватся как галаграмма в трехмерной пиромиде в одном из гавнопроектов, и изменятся в такт голоса яндексовской алисы[/fruitful_alert]