Photo by Worldspectrum from Pexels

Крипта, критпто биржы и крипто игры

Интернет пестрит новостями посвящёнными криптовалюте: “Bitcoin достиг нового максимума“, “Тесла купила Bitcoin” и т.д. и т.п. ну и меня затянула вся эта движуха. Столько нового всего появилось с того момента когда я последний раз интересовался: Proof of Stake, yield farming, dapps… чёрт ногу сломит.

Зарегался везде где только можно: Crypto.com, coinbase, nexo.io, BlockFi, webull, robinhood… и что хочу сказать… Все они говно.

  • Coinbase – пожалуй самое нормальное из всех, но оно почему-то разделено на два: Coinabase и Coinbase Pro. В версии Pro меньше комиссии, но награды получают только coin-ы которые хранятся в обычной версии. Почему? Но работает всё уверенно и крипту можно купить еще до того как банк совершил перевод, правда её нельзя за пределы Coinbase отправить.
  • На Crypto.com я так и не смог положить денег хотя оно единственно выглядит профессиально
  • BlockFi – выглядит как будто его писали студенты, но оно простое и работает стабильно. Еще из минусов это любая операция вывода как в банк так и на другой крипто адрес занимает дни!
  • Nexo.io – Оно у меня постоянно зависает и логинится по 100 раз. Как такому можно доверять деньги непонятно. Какие-то совершенно чудовищные комиссии.
  • Webull – вообще очень понравилось приложение… для торговли акциями, для покупки крипты его использовать можно, но очень мало токенов и их нельзя никуда отправить.
  • Robinhood – так и не заапрувили меня… Видимо после истории с GameStop они очень заняты.

Но я отвлекся. Странным образом я наткнулся на странный сай – wolf.bet где можно делать ставки на вероятности. Но особенно интересно в нем было два факта:

  1. Нет ограничения на ставки. Они конечно на самом деле есть просто оооочень большие. Это важно потому что, у некоторых стратегий для вероятностных игр теперь есть шанс сработать.
  2. Есть АПИ. То есть не надо самому сидеть и жмакать кнопки, чтобы играть по какой-нибудь системе типа мартингейл – от этого человек очень быстро устает и начинает делать ошибки.

Написал небольшой скрипт на питоне, который за неделю удвоил мне 50+ UniSwap токенов.

Транзакции по деаозинтам
Транзакции по выводу крипты
Транзакции по Uniswap на crypto.com аккаунте. Комисси конечно чудовищные.

Суть довольно проста: на wolf.bet есть игра – dice, в которой нужно угадать число от 0 до 100, точнее не число а скорее диапазон. Например от 0 до 50. Вероятность такого 50% в случае выиграша ставка умножается на 1.98.

Так выглядит Dice

Скрипт играет по “мартингейлу“. Ставит на диапазон от 50.49 до 100 чтобы получить выигрышь x2. В случае проигрыша умножает текущую ставку на два и снова делает ставку.

Сначала я подошёл в слепую и слил пару раз примерно по 40$ в BTC. Для того чтобы мартингейл работал должно быть достаточно денег. Так что я написал другой скрипт, что-то вроде симулятора , который проиграл 100+ млн экспериментов и в результате я получил следующее: для того чтобы чувствовать себя с одной стороны уверенно, а с другой, чтобы прирост не был уж совсем маленьким, как процент в банке, нужно чтобы денег было >= 2^24 * минимальную ставку. Например если играть на BTC при минимальной ставке 0.00000001 BTC то денег должно быть не меньше 0.08388608 BTC.

Почему именно 2^24? В ходе экспериментов с симулятором максимальное количество промахов подряд было 23. Это конечно не гарантирует что при игре в настоящую тоже будет столько же, но вероятность этого “крайне мала”

Может лучше в банке? Конечно, там безопаснее, но и процент ниже. А игры на вероятность – это практически гарантированный проигрыш. Тем не менее я решил рискнуть и получил скрипт, который делает примерно 0.1% в день.

Это конечно не та цифра, которую ожидаешь увидеть, но! во-первых – это 36% годовых, а во-вторых, чем больше денег тем больше минимальная ставка. Каждый раз когда скрипт выигрывает он рассчитывает минимальную ставку заново и, если денег достаточно, то он её автоматом повышает. То есть если денег наберётся 0.00000002 * 2^24 = 0.16777216 то будет уже прирост в два раза больше. Такой сложный процент если хотите. В этом плане лучше либо выбирать token-ы подешевле BTC, например Uni, или играть используя более крупную сумму, тогда и минимальная сумма будет ниже и сразу виднее сложный процент в действии.

Также я сделал более рискованную версию, которая дает примерно 6% в день. Она отличается тем, что предполагает, что после того как скрипт проиграл 10 или больше раз подряд и затем выиграл, то следующий такой длинный проигрышь не случится ещё какое-то время, а значит можно делать минимальную ставку из расчёта не 24, а скажем 8, то есть ставка в примере выше будет 0.08388608 / 2^8 = 0.00032768. Цифра взята с потолка и ничем не подкреплена. На данный момент бегут эксперименты чтобы определить более точно.

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

P.S. Не следует воспринимать написанное выше как руководство к действию. Любое подобная контора приносит деньги владельцу и переиграть его невозможно. Играя по любой системе проигрыш гарантирован – это лишь вопрос времени.

Прошай Лексус

Вообще с Лексусом отношения как-то сразу у меня не заладились – меня постоянно что-то не устраивало или бесило в нём и вот, отъездив 1.5 года я решил его наконец поменять. Но давайте обо всём попорядку. Чтоже не так с Лексусом?

Двигло 2 литра 240+ коней. По паспорту едет 6.9 до сотни, но по факту лучшее время, что я смог замерить с Torque Pro 7.7! Это медлеене чем дизельная БМВ320d f30 на 180+ коней, которая у меня была с 2012 по 2016й. Ну тоесть я на много не наделся, думал будет примерно как беха, но нет. Но это ещё не всё! Он жрёт бензин, как не в себя! Да как так то? 17.6 миль на галлон (13.5 литров на 100!) – это как 3х литровый заряженый мерин, который я оставил в Москве.

Расход

Коробка впринципе обчная, для тойоты подойдёт, но BMWшный 8zf и мягче и быстрее, да и без затупов.

Круиз контроль – это моя первая машина с продвинутым круиз контролем, ну как с продвинутым, таким что умеет сам торомозить и ускоряться и типа удерживать в полосе. Поначалу претензии к нему были в категории “наверное так никто не делает” пока я не начал тест драйвить другие машины… Если коротко, то это прошлый век — работает на скоростях 30+ миль, соотвественно в пробке безполезеен, да и в целом работает странно, когда перед тобой машина перестраивается, то срабатывает поздно и я почти всегда регировал не дожидаясь круиза. Удержание в полосе болтает тебя от линии к линии – мрак. Тест драйвил Tesla Model X, там круиз (тот который они называют автопилот) совсем другой уровень комфорта даёт, на Audi SQ7 тоже гораздо больше понравилось как работает.

Приборка с ездиющим физическим колцом многим нравится, но мне нет. Я не понимаю в чем прикол. Просто большой дисплей как у немецкой тройки гораздо удобнее. Особенно понаврилось как сделанно на Ауди SQ7

Часы (Да Александр и тут нашёл к чему придраться)? почему время на приборке и часы на центральной части настраивается отдельно? В Калифорнии всё ещё есть перевод на летнее время и обратно, так что это пипец как неуобдно. У Мерседеса в Москве такой проблемы нет (не потому, что она в Москве, а потому что сделанно по человечески).

Руль – это просто трындец. Я даже не знаю с чего начать. Он выглядит как BMW Бомж Эдишон, и при этом это опциональный из пакета F Sport!

Да на Пассате жены руль лучше!

На руле нет ни БМВшной информативности ни Мерсовской осторты, на парковочных скоростях слишком тяжелый… Сплошное разочарование короче.

Интерьер – это привет из 90х. Нет отдельный эелементы ничего – симпатичный вставки, качественный материалы, всё хорошо подогнано, но вот например часть с клавишами управления подогревом и вентиляцией сидений.. что это?

USB порт не заряжает телефон. Попробовал разные телефоны и шнуры.

Оповещения, напоминания и прочие звуки –  просто выбешивают. Особенно если ты припарковался, открыл дверь, а потом заглушил двигатель — зачем телинькать до двацать раз.

Задние двери без карманов? Серьезно?

Базовая Музыка – говно.

Безключевой доступ – это моя первая машина с такой опцией и все неудобство я опять таки списывал либо на “американские особенности” либо “наверное так никто не делает”, а именно как открыть заднюю дверь чтобы посадить ребенка? а нужно либо открыть пассажирскую спереди, либо водительскую и нажать на замочек, либо с ключа, но на подменом мерсе, который мне выдали после того как я сдал Лексус в трейд ин, можно открыть любую дверь! Лексус ты чё? Ну пипец как неудобно.

Задний диван был норм пока не появился ребенок. И дело не только в том, что там мало места, но и то что детское кресло встает только посредине, иначе нужно что-то под кресло подкладывать и двигать пассажирское или водительское. Ещё минус — диван не складывается вровень с полом. Какая-то проблема с ремнями ещё — жена постоянно ездит на задем двиане присматривая за ребёнком и у нее постоянно клинит ремень.

Сервис каждые полгода или 5000 миль. С одной стороны хорошо — чаще мащну проверяют, с другой — записываться на сервис, ездить туда… ломает. По цене 2 сервиса шли “в подарок” при покупке + сервис пакет на 3 сервиса за 500$ вполне приемлемый ценник. Мойка не работала 2 из 3х раз, что я приезжал тоже – нормальный такой косяк.

Люк – это не претензия конкретно к лексусу, а впринципе. В калифорнии 300 дней солнца… палящего… Если люк закрыт — в машине пипец как жарко, если открыт то тебе ещё и макушку печет. Пользоваться можно только ночью и в пасмурную погоду. Опять таки зачем? Вобщем это опция для меня остается загадкой.

Цена. Я брал в лизниг и эти 44к+$ превратились в 430$ в месяц, и это очень близко к BMW 3шке, более того на 3ке дилеры делают промо на лизинг за 420$ в месяц, да она не будет нафарширована, но и лексус у меня тоже не топ.

Теперь, что понравилось:

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

Передние сиденья в пакете F Sport удобные, мягкие (может даже слишком мягкие), хорошо держут. Кожа правда без типичного рисунка и на ощупь напоминает.. пластилин? но приятная.

Дезайн вещь субъективная, но мне нравится как выглядит машина… хотя дорестайл F Sport мне нравился больше.

Сисьтема предупреждения о помехе с боку, когда сдаешь задом – удобно.

Как-то так. Самый большой плюс лексуса — это то, что, каждый раз, прилетая в Москву и садясь в Мерс, было “вау, какой же Мерс офигенный”. За это Лексусу спасибо.

P.S. Жду Mercedes GLE, который должен придти 11го декабря, а пока катаю GLA250.

Можно ли изменить свою жизнь: Часть 1 – Начало

Всем привет, я Саша и я решил круто изменить свою жизнь. У меня отличная работа и классная тачка. Всё это я решил бросить, чтобы начать жить по-новому.

Как так ничнался мой пост 2х годичной давности, который так и не был опубликован. Все дело в том, что в ноябре 2016 года я во второй раз участвовал в лотерее Green Card и в этот раз я выйграл. В мае 2017го, проверив статус лотереи, я увидел заветные You have been selected и понеслась. 

Годом ранее мой коллега точно так же переехал в США, выйграв в лотерею Green Card, так что я сразу написал ему. Собственно на сайте dvloterry всё написано, что нужно делать, да и в целом в интерненте полно информации, один только govorimpro.us – это кладезь инофрмации, но когда такое происходит на самом деле… с тобой…, то начинается какая-то паника и тут любая помошь от человека, который через всё это уже прошёл, оказывается неоценимой…, особенно если ты налажал с данными для участия в лотерее.

Дело в том, что я каким-то образом умудрился непавильно указать дату совего рождения – вместо 15го написал 14е. Но это нигде позже непонадобилось, хоть по совету свеого коллеге я и написал в консульство с вопросом, что мне делать. Единственное неудобство, которое это доставило – я никак не мог зайти на сайт чтобы двигаться дальше (так как на тот момент не знал, что я неправильно указал день рождения), но всё получилось, когда тот самый приятель посоветовал попробовать “поиграть” с датой моего рождения.

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

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

Прошло больше года и в августе 2018го (да прошло почти два года с момента “You have been selected!”) я получил email, что мне назанченно собеседование на 11е сентября, а сентебрь 2018 – последний месяц, когда, участвовашие в лотерее DV2018 в ноябре 2016го, могут получить имиграционную визу. Так что я, можно сказать, запругнул в последний вагон.

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

Затем был медосмотр и собеседование, которое прошло, наудивленние, легко. Я готовился, читал какие вопросы задают, придумывал разные ответы на них, а в итоге меня спросили что-то вроде кем работаю, кем работал, кем буду работать. И всё: You visa is approved.

И вот тут началось самое сложное – найти работу в США. Мне повезло – компания в котрой я работал в Москве имеет головной офис в Санта Кларе, Калифорния. Это кремнивая долина и именно туда я и хотел переехать. Связавшись со своим бывшим начальством мне удалось найти позицию в головном офисе в Калифорнию, да и ещё мой новый начальник – мой бывший коллега из Московского офиса.

И вот в феврале 2019го я сел в самолет, прилетел в Сан Франциско, прошёл через границу и получил номер дела, по которому я в последствии и получил Green Card.

Надеюсь переезд в США даст мне возиожность вдохнуть новую жизнь в этот блог 🙂

Торговля акциями: Часть 4 – закрытие

Итак, как вы уже знаете я сменил BMW f30 на Mercedes w205. Шёл я к этому шагу чуть больше полугода и одна из вещей, на которую я возлагал надежды в плане сохранить и примумножить, была тороговля акциями. Настало время подвести итоги.

Вот так выглядят вводы/выводы. По началу я переводил деньги с пластиковой карты и там приличная комиссия. За перевод 30000 рублей снимается 750, которые берёт себе платёжная система, если делать перевод через банк то комиссия тоже есть, но она гораздо меньше.

Итого я перевёл на счёт брокеру 1043000 рублей. Потерял на переводах 2250 рублей на комисиях с карточки и ещё около 2000 на всех отсальных банковских переводах, но они тут не отражены, так как это комиссия банка.

Вывел со счёта 1024696 рублей и 521 рубль остались на счету. То есть я потерял больше 25000 рублей с учётом всех комисий и налогов.

Некоторые мои позиции накапали мне дивиденов

В сумме на 2000+ рублей. Будем считать они покрыли комисии за ввод денег с использованием банковской карты.

Брокер автоматически удерживает налоги с определённых операций и вывода денег

В сумме 4197 рублей.

Ещё один жирный минус, конечно, составили комисси брокера на сделки и вывод денег

В сумме там получилось 21000+ рублей. То есть, если считать, что дивиденды покрыли комисии от ввода денег на счёт брокера, то с меня было ужержанно Nettrader-ом около 27000 рублей в качестве комиссий и налогов.

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

А теперь самое интересное – это график трейдов. Здесь следует пояснить, что трейд – это не сделка, а все сделки, которые привели к открытию, и затем закрытию позиции. Например, Вы совершили 10 покупок, а потом одной сделкой продажи все продали – все эти 11 сделок будут составлять один трейд.

Тут я 30000+ в плюсе! Да я что-то потерял на конвертации валюты, так как все акции что покупал это акции иностранных компаниий торгуеммых в долларах, но если я 30000 в плюсе и все комисии в сумме около 27000, то я должен был получить на счёт примерно ту же сумму, что и инвестировал, а не на 25000 рублей меньше. С этим моментом я до конца не разобрался. Есть документы от брокера, в кокторых, поидее, всё расписано, но, как говорится: “смотрю в книгу – вижу фигу”.

И напоследок небольшое резюме по Nettrader-у:

Работает! позволяет покупать акции очень большого числа компаний торгуемых на Nasdaq и NYSE, сайт глючный, и нет удобночитаемой информации о том, по которой можно было бы сказать: “а как вообще дела то?”.

Плюсы

Легко и быстро пополнить баланс, с пластиковой карты/кредитки или банковским переводом, в частности через Альфа-банк. Автоматическое удержание налогов. Оперативная поддержка.

Минусы

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

Если у вас более положительный опыт работы с каким либо из брокеров – поделитесь пожалуйста.

С БМВ на Мерседес: Часть 1 – Покупка

Итак, я сменил автомобиль. BMW прослужила 4.5 года верой и правдой и претензий к машине у меня небыло. Единственное, что не устраивало, и что хотелось поменять, – это комплектация. Например голова без Bluetooth, не для того, чтобы слушать музыку, хотя это, конечно, тоже, а больше для безопасного вождения, если вдруг приспичило позвонить. Собственно, частично, а возможно и полностью, это можно было бы исправить дооснащением, как штатным, так и не штатным. Более того, я планнировал заморочиться и реализовать некоторые вещи собственноручно, но, к сожалению, времени катастрофически не хватает и, в итоге, я забил и решил приобрести новую машину. Как, возможно, вы уже знаете, выбор пал на Mercedes-Benz C43 AMG в кузове w205. Окрестил её Дурью, завёл страничку на драйве 🙂

Почти все мои знакомые говорят: “Да за эти деньги можно X5 новый взять” или “Дороговато для маленькой машины” и т.п. Я всегда отвечаю одно и то же в таких случаях: паркетники и внедорожники — это не моё. Серъёзно, не лежит у меня душа к таким машинам за исключением… Jaguar F-PACE. Был в салоне JAGUAR-а, F-Pace выглядит классно, но его постигла та же судьба, которая в своё время постигла Lexus IS, когда я выбирал предыдущую машину (BMW) — садясь в салон я ударился головой о дверной проём. Так Lexus и Jaguar выпали из гонки, каждый в своё время.

По сути у Цэшки, для меня, не было конкурентов, когда я выбирал. BMW 340я и Jaguar XE сильно проигрывают по салону, и это сыграло решающую роль. Единственная машина, которая могла бы посоперничачть – это Infiniti q60 coupe, но жена была проив купе, к тому же q60 coupe официально не поставляется в Россию.

Процесс покупки затянулся на несколько месяцев. Машина была из “ближайшей” поставки. Заказана в июле — пришла в ноябре. Искал именно серую и с новой 9ти ступечатой коробкой. Походу ожидания пошёл “в разнос” и дозаказал опции, которые, положа руку на сердце, не нужны, вроде отделки чёрным деревом, проекции на лобовое стекло или электрорегулеровки сидений. Также за это время базовая конфигурация автомобиля успела измениться и я получил пару оцпий “в подарок”. В итоге насобирал на 4.5+ млн. — сумма, которая до сих пор не укладывается у меня в голове и постояно звучит голос “зачем?”

Когда сдал BMW в трейдин, то получил подменную C180 на время пока шла бумажная валакита. Как раз было время познакомиться с мерсовскими рычежками. Побрызгать на стекло омывайкой — это тот ещё квест должен я вам сказать. Однако BMW из трейд-ина я забрал, так как брат жены предложил её купить. До BMW у меня был Opel, на котором я отъездил 6 лет и в целом миграция с Opel-я на BMW прошла куда более гладко, чем с BMW на Mercedes, но об этом в другом посту.

А у вас какой был самый гладкий опыт смены автомобиля?

Торговля акциями: Часть 3 – первые успехи

Пост долго пролежал в разделе “Draft” или “неопубликованное” и причин тому несколько, но обо всех них будет рассказанно отедльно. А пока вот то, что я написал летом 2016, пока был на позитиве.

Итак я втянулся. В предыдущем своём посте я расказывал о своих неудачах. Теперь могу поделиться и позитиными новостями. Но обо всём попорядку.

Первое, что хочется сказать – это какие-то постоянные и самые разные проблеммы с сайтом для торговли. Например, довольно часто отображается график для бумаги, которая первая в спсике, а не та, которую вы выбрали; или сумма по позициям не совпадает с приростом/расходом сумм по отдельно взятым бумагам и т.п. Такое случается практическик каждый день. Некоторые из проблем “висят” по нескольку дней. Да они решаются или проходят сами, но тот факт, что такое ненадёжное ПО управляет товими деньгами заставляет нервничать.

И теперь главное – акции. Забегая вперёд сразу скажу, что на сегодня у меня +40000 руб согласно сайту, даже с учётом того, что компании иностранные и доллар падает, и это не может не радоавть. Да, на рынке сейчас главнествуют быки и это, можно сказать, “лёгкие деньги”. Тем не менее мой портфель приближается к заветной цифре в 20 позиций, как завещал Уоррен Бафет и выглядит следующим образом:

port_struct

Как видите тут переменшаны разные сектора, хотя большинстов, конечно, это Technology сектор. Не все из приобретённых мной бумаг – это те которые советует Motely Fool, подписку на который я оформил до того как начать тороговать на бирже, однако самые доходные – это как раз они. Например NTES, SWKS.

Всё это должно помочь мне сменить автомобиль, но это пока секрет 🙂

Новости

Сайт пребывал в некотором подвешенном состоянии по разным причинам.

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

Во-вторых я был отпуске в Дубае, про это тоже будет отдельный пост.

В-третьих, я был в командировке в США и про это тоже будет отдельный пост

В-четвертых, я подсел на компьютерные игры (но уже слез) – это Factorio и Astroneer. Поста, пожалуй, не будет 🙂

В-пятых, я починил свой Raspberry PI, который используется для Ambilight, и запилил пару видео с ним и компьютерными играми. И да, будет отдельный пост 🙂

В-шестых, я решил сделать серию постов про собеседования.

В-седьмых, очередная порция пропагандистких видео и постов о том, как хорошо тут и как плохо там наталкнула меня на  мысль о том, что нужно изучить “пути отступления”. Естественно тоже поделюсь.

И наконец, в-восьмых, пора плотно занятся нейро сетями.

Stay tunned, как говорится.

P.S. Чуть не забыл – серия постов про торговлю акциями тоже найдёт свое завершение.

Торговля акциями: Часть 2 – первые неудачи

analiz

Итак, в прошлом посте я зарегистрировался в Nettrader-е и открыл там реальный счёт и, оказалось, что я не умею читать и считать, но обо всём по порядку.

Nettrader предлагает разные способы пополнить счёт, но самый быстрый и удобный – пластиковая карта. Так я и сделал – перевёл 30 000 рублей, а на счёт получил… 29 250. Оказалось, что при зачислении денег с карты комиссия 2,5%. Связался со службой поддержки, которая практически сразу ответила. Посмотрел страничку для зачисления и там действительно сказано про эту комиссию. Не заметил.

Второй пункт, который я пропустил, – это комиссия за операции. У nettrader-а есть разные условия, или тарифы, например, Активный трейдер или Инвестор. В зависимости от тарифа взимаются разные комиссии при совершении операций, но пункт, который я пропустил – это тот, который распространяется на все тарифы. Оказалось, что каждая операция с иностранными ценными бумагами (покупка или продажа) облагается комиссией 100р. Купили вы 1 акцию за 10$ или 100$ с вас дополнительно комиссия 100р. Продали – опять 100р. И это в дополнение к комиссии, которая рассчитывается от суммы сделки, в случае с тарифом Инвестор, или в дополнение к абонентской плате, в случае с тарифом Активный трейдер. Неприятно. Кстати, опять таки помогла разобраться служба поддержки, надо признать, что ребята работают оперативно.

money

Итак, счёт открыт, деньги переведены, а что же купить? Полно фирм и все они торгуются по разным ценам. Есть акции, которые стоят меньше 10$ и есть те, которые стоят больше 100$ за акцию. Я на тот момент только думал, что имею представление о том, как выбрать акции, но оказалось всё совсем не так. Тут я решил, что мне нужна помощь и нашёл сайт Motley Fool, купил там подписку на Stock Advisor и Rule Breaker (о них пожалуй напишу отдельный пост).

На сайте Motley Fool есть довольно большой список акций с разными рекомендациями и историей рекомендацией. Например, можно увидеть, что они рекомендуют “купить”, а ещё лучше бывают рекомендации “купить сейчас”. Собственно с этого я и начал – купил Activision Blizzard (ATVI). Это компания, которую я знаю, занимается она разработкой компьютерных игр, и одна из них, которая на тот момент готовилась к выходу, – Overwatch это игра подающая надежды. Вторая компания, акции которой я купил, уже была абсолютна мне неизвестна, но тоже имела рекомендацию “купить” от Motley Fool – это Under Armour (UA).

Так потихоньку следуя рекомендациям я набрал некий портфель акций и стал наблюдать… как они теряют в цене. Для человека неподготовленного (вроде меня) это было “больно”. В итоге Workday (WDAY) – одна из компаний, которая только-только объявила о своих результах за последний квартал, довольно сильно просела и я сдался и продал.

wdaysell

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

deals

тем не менее многие акции, которые я купил, просели довольно сильно и теперь, когда я логинюсь в свой аккаунт, то вижу примерно такую удручающую картину:

portfel

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

Также Nettrader рисует забавный график доходности портфеля:

dynamic

Пока правда он меня не радует.

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

P.S. Страничка с котировками акции дико жрёт память. Проверено как в Firefox так и Chrome. Неприятно.

Торговля акциями: Часть 1 – А что с пенсией?

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

Так уж сложилось, что я владею акциями некой иностранной компании, которые она выдаёт в качестве бонусов, и, торгуя (читай продавая) этими акциями, получил небольшое представление о том как рынок акций работает. Деньги небольшие, но прибыль стабильна. И я решил попробовать, а почему бы собственно взять и не вложить собственные деньги и не в одну, а в несколько разных компаний.

Кто-то может спросить: почему, например, не форекс или не ПАИ. Честно, я просто не понимаю как это работает, в отличии от акций. С акциями всё просто – дела у компании хорошо, акции растут, плохо падают. Безусловно существует масса факторов от политических до экономических, которые влияют на рынок и компанию, но в целом идея простая в отличии, например, от валюты, которая представляет целую страну и, как следствие, более подвержена внешним воздействиям. Но это исключительно мое дилетантское мнение.

Итак, стал искать варианты выхода на американский фондовый рынок. Почему Американский? Видимо нет веры в компании в этой стране, а на Петербургской бирже к сожалению представлены далеко не все компании из списка S&P500.

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

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

Второй вариант – это попробовал американских брокеров – тех, что рекомендует Motley Fool. Почти все они не позволяют зарегистрировать аккаунт если вы не гражданин Америки. Единственный брокер, который имеет опцию выбора страны из этого списка, после прохождения всех шагов регистрации, тоже отказал. Почему – не известно.

Дальше я стал гуглить рунет на предмет вариантов и мне попалась статья на geektimes и сайт Варламова. geektimes восхвалял finam, а Варламов в свою очередь nettrader-а. Решил попробовать обоих.

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

Nettrader, наоборот подкупил простотой и понятностью, правда на сайтах-обзорщиках часто встречаются негативные отзывы. С ним и решил продолжить. Дальше правда выяснилось, что услугу по покупке акций иностранных компаний на американской фондовой бирже они не предоставляют, вместо этого некий CFD – контракт на разницу цен. Что это такое и с чем его едят ещё предстоит разобраться ибо прочтение википедии не дало мне практически ничего. Из разговора с сотрудником Nettrader-а удалось понять только две вещи: вы не будете владельцем акции и ваше имя нигде не участвует (читай не известно для компании, акции которой вы приобрели), но вы получаете дивиденды в случае их выплаты. Крайне странно и подозрительно, но посмотрим.

Первые свои шаги на новом поприще опишу в следующей части.

 

 

 

Будильник своими руками: Част 2 – Пищалка

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

// библиотека для работы I²C
#include <Wire.h>
#include <DHT.h>
#include <QuadDisplay.h>
// библиотека для работы с часами реального времени
#include "TroykaRTC.h"

// EEPROM — энергонезависимая память
// библиотека для записи и считывания информации с EEPROM
#include <EEPROM.h>

// PIN Для подключения Quad Display От Amperka
#define DISPLAY_PIN 7
// Кнопка
#define KEY_PIN 8
// Количество вариатнтов отображения информации:
// Часы, Дата, будильник, День недели, Температура, влажность
#define MODE_NUM 6
// задержка для функции loop
#define FREQ 200
// PIN для зуммера
#define BUZ_PIN 11
// PIN для датчика влажности и температуры
#define DHT_PIN 6
// Тип датчика влажности и температуры
#define DHT_TYPE DHT22

// количество циклов для долгого нажатия
#define EDIT_COUNTER 7

#define LONG_PRESS 2
#define SHORT_PRESS 1

// создаём объект для работы с часами реального времени
RTC clock;

// Объект для работы с датчиком температцры и влажности
DHT dht(DHT_PIN,DHT_TYPE);


byte longpress = 0;
byte shortpress = 0;

// Тип Текущей отображаемой информации
byte mode = 0;
// Режим редактирования
byte edit = 0;
// Как долго зажата кнопка
byte key_counter = 0;
// Текущее значение для текущего режима отображения
int cur_val;
// Время срабатывания будильника
int alarm_time = -1;
// Время срабатывания Snooze-а
int snooze_time = -1;
// Отображение точки по центру
uint8_t dot = 0x4;

void setup()
{
  pinMode(KEY_PIN,INPUT);
  pinMode(BUZ_PIN,OUTPUT);

  Serial.begin(9600);
  
  // инициализация часов
  clock.begin();
  // метод установки времени и даты в модуль вручную
  // clock.set(10,25,45,27,07,2005,THURSDAY);
  // метод установки времени и даты автоматически при компиляции
  //clock.set(__TIMESTAMP__);
}

void loop()
{
  // Считтываем было ли короткое нажатие или длинное
  byte KeyPressed = GetKeyPressed();

  // Запомнаем текущее значение для режима редактирования
  byte cedit = edit;
  // изменяем значения глобальных переменных в зависимости от нажатия
  AdjustGlobalVars(KeyPressed);
  
  // Если время для срабатывания будильника
    if ((snooze_time != -1) && (IsAlarmTime()))
    {
      // Короткое нажатие - snooze
      if (KeyPressed == 1)
      {
        // Сбрасываем на отображение часов
        mode = 0;
        // Прибавляем к будильнику 1 минуту
        snooze_time = snooze_time + 1;

        // проверяем не вышли ли мы за границы 60 минут
        if (snooze_time % 100 > 59)
          snooze_time += (100 - 60);
        // Проверяем не вышли ли мы за границы 24 часа
        if (snooze_time / 100 > 23)
          snooze_time -= 24;       
      }
      // Если долгое нажатие - отключить будильник
      else if (KeyPressed == 2)
      {
        // Сбрасываем все переменные
        snooze_time = alarm_time;
        mode = -1;
        edit = 0;
      }
      AlarmSound();
    }

  // Если режим редактирования
  if (edit > 0)
    EditCurrentMode(KeyPressed);
  else {
    // Если мы вышли из режима редактирования
    if (cedit != edit)
    {
      // то меняем текущее значение
      SetCurrentMode();
    }
    // Отображаем текущее значение
    DisplayCurrentMode();
  }

  // спим
  delay(FREQ);
}

// Не пора ли будильнику звонить
bool IsAlarmTime()
{
  uint8_t hour = clock.getHour();
  uint8_t minute = clock.getMinute();

  if ((snooze_time / 100 == hour) && (snooze_time %100 == minute))
  {
    return 1;
  }

  return 0;
}

// Было длинное или короткое нажатие?
byte GetKeyPressed()
{
  byte result = 0;
  if (digitalRead(KEY_PIN) == HIGH)
  {
    key_counter++; 
    if (key_counter > EDIT_COUNTER)
    {
      result = 2;
      key_counter = 0;      
    }    
  }
  else
  {

    if(key_counter > 0)
    {
      result = 1;
    }
    key_counter = 0;   
  }

  return result;
}

// Изменяем глобальные переменные в зависимости от нажатия
void AdjustGlobalVars(byte KeyPressed)
{
  if (KeyPressed == LONG_PRESS)
  {
    LongPressSound();
        
    // Редактируем либо первую либо вторую пару чисел
    edit++;
    if (edit > 2)
      edit = 0;
  }      
  else if(KeyPressed == SHORT_PRESS)
  {
    ShortPressSound();
    
    // В режиме отображения короткое нажатие меняет отображаемую информацию
    if (edit == 0)
      mode++;
    if (mode > MODE_NUM)
      mode = 0;
  }

}

void AlarmSound()
{
  tone(BUZ_PIN, 3500,40);
  tone(BUZ_PIN, 4500, 40);
  delay(100);
  tone(BUZ_PIN, 4500, 40);
}

void LongPressSound()
{
    tone(BUZ_PIN, 4500, 40);    
    delay(100);      
    tone(BUZ_PIN, 4500, 40);    
}

void ShortPressSound()
{
  tone(BUZ_PIN, 3500, 40);    
}

// Что именно мы редактируем
void EditCurrentMode(byte pressed)
{
  clock.read();

  // совпадает с тем что отображаем
  if (mode == 0)
    EditHourMinute(pressed);
  else if (mode == 1)
    EditDate(pressed);    
  else if (mode == 2)
    EditAlarm(pressed);
  else if (mode == 3)
    EditDay(pressed);
  
}

// Редактирование законченоо - пора поменять текущие значения
void SetCurrentMode()
{
  // Меняем время
  if (mode == 0)
  {
    uint8_t hour = cur_val / 100;
    uint8_t minute = cur_val % 100;
    clock.set(hour, minute, 0, clock.getDay(), clock.getMonth(),
              clock.getYear(), clock.getDOW());
  }
  // Меняем дату
  else if (mode == 1)
  {
    uint8_t day = cur_val / 100;
    uint8_t month = cur_val % 100;
    clock.set(clock.getHour(), clock.getMinute(),
              clock.getSecond(), day, month, clock.getYear(), 
              clock.getDOW());

    mode = 3;
    edit = 1;
  }
  // Устанавливаем будильник
  else if (mode == 2)
  {
    alarm_time = cur_val;
    snooze_time = cur_val;
    mode = 0;
  }
  // Меняем день недели
  else if (mode == 3)
  {
    clock.set(clock.getHour(), clock.getMinute(),
              clock.getSecond(), clock.getDay(), clock.getMonth(),
              clock.getYear(), cur_val);    
  }
}

// Редактирование времени
void EditHourMinute(byte pressed)
{
  // clock.set(10,25,45,27,07,2005,THURSDAY);
  int hour = int(cur_val / 100);
  int minute = int(cur_val % 100);
   
  // Если редактируем первую пару при коротком нажатии прибавляем час
  if ((pressed==1) && (edit == 1))
    hour = hour +1;
  // Если вторую - прибавляем минуту
  else if ((pressed==1) && (edit == 2))
    minute = minute +1;

  // Проверка выхода за границы
  if (hour > 23)
    hour = 0;
  if (minute > 59)
    minute = 0;
    
  // Обновляем переменую из которой будет считано новое время
  cur_val = hour * 100 + minute;

  // Эфект моргания
  static bool show;
  show = !show;
  if (show)
  {
    // При редактировании первой пары отображаем только минуты
    if (edit == 1)
      displayLastTwo(DISPLAY_PIN, minute);
    // При редактировании второй пары отображаем только часы
    if (edit == 2)
      displayFirstTwo(DISPLAY_PIN, hour);
  }
  else
  {
    // Отображаем целиком
    DisplayHourMinute(cur_val);
  }
}

// Изменение даты аналонично идменению времени
void EditDate(byte pressed)
{
  uint8_t day = int(cur_val / 100);
  uint8_t month = int(cur_val % 100);
  
  static bool blnk;
  blnk = !blnk;

  if ((pressed==1) && (edit == 1))
    day = day +1;
  else if ((pressed==1) && (edit == 2))
    month = month +1;

  if (day > 31)
    day = 1;
  if (month > 12)
    month = 1;

  cur_val = day*100 + month; 

  if (blnk)
  {
    if (edit == 1)
      displayLastTwo(DISPLAY_PIN, month);
    if (edit == 2)
      displayFirstTwo(DISPLAY_PIN, day);
  }
  else
  {
    displayInt(DISPLAY_PIN, cur_val, true, 0x0);
  }
}

// Изменение дня недели
void EditDay(byte pressed)
{
  if (pressed == 1)
    cur_val++;

  if (cur_val > 6)
    cur_val = 0;
    
  static bool show;
  show = !show;
  
  if (show)
  {
    DisplayDay(cur_val, true);
  }
  else
  {
    DisplayDay(cur_val, false);
  }
}

// Изменение будильника
void EditAlarm(byte pressed)
{
  uint8_t minute = cur_val % 100;
  uint8_t hour = cur_val / 100;

  if ((pressed==1) && (edit == 1))
    hour = hour +1;
  else if ((pressed==1) && (edit == 2))
    minute = minute +1;

  if (hour > 23)
    hour = 0;

  if (minute > 59)
    minute = 0;

  cur_val = hour * 100 + minute;
  
  static bool blnk;
  blnk = !blnk;
  
  if (blnk)
  {
    if (edit == 1)
      displayLastTwo(DISPLAY_PIN, minute);
    if (edit == 2)
      displayFirstTwo(DISPLAY_PIN, hour);
  }
  else
  {
    displayInt(DISPLAY_PIN, cur_val, true, 0x0);
  }
}

// Отображаем текущую выбраную информацию
void DisplayCurrentMode()
{
  if (mode == MODE_NUM)
    mode = 0;
    
  //displayClear(DISPLAY_PIN);

  // запрашиваем данные с часов
  clock.read();

  if (mode == 0)
    DisplayHourMinute(-1);
  else if (mode == 1)
    DisplayDate();
  else if (mode == 2)
    DisplayAlarm();
  else if (mode == 3)
    DisplayDay(-1, false);
  else if (mode == 4)
    DisplayTemp();
  else if (mode == 5)
    DisplayHum();
  else
    DisplayHourMinute(-1);

}

// Отображаем влажность
void DisplayHum()
{
  float h = dht.readHumidity();
  displayFloat(DISPLAY_PIN, h, 2, true);
}

// Отображаем температуру
void DisplayTemp()
{
  float t = dht.readTemperature();
  displayTemperatureC(DISPLAY_PIN, round(t), false);
}

// Отображаем время
void DisplayHourMinute(int cv)
{
  int hm = cv;
  if (cv == -1)
  {
    hm = clock.getHour() * 100 + clock.getMinute();  
    cur_val = hm;
  }
  
  uint8_t dot = 0x4;
  uint8_t sec = clock.getSecond();
  
  if (sec % 2)
    dot = 0x0;
  
  displayInt(DISPLAY_PIN, hm,true,dot);
}

// ОТображаем дату
void DisplayDate()
{
  int dm = clock.getDay()*100 + clock.getMonth();

  cur_val = dm;
  displayInt(DISPLAY_PIN, dm, true, 0x4);
}

// Отображаем будильник
void DisplayAlarm()
{
  cur_val = alarm_time;
  if (alarm_time != -1)
    displayInt(DISPLAY_PIN, alarm_time, true, 0x4);
  else
    displayDigits(DISPLAY_PIN, QD_MINUS, QD_MINUS,
                                QD_MINUS, QD_MINUS);
}

// Отображаем день недели
void DisplayDay(int cv, bool minus)
{
  
  uint8_t dow = cv;
  if (cv == -1)
  {
    dow = clock.getDOW();
    cur_val = dow;
  }
  uint8_t first = QD_NONE;
  if (minus)
    first = QD_MINUS;
  if (dow == 0)
    displayDigits(DISPLAY_PIN, first, QD_S, QD_U, QD_n);
  else if (dow == 1)
    displayDigits(DISPLAY_PIN, first, QD_H, QD_O, QD_n);
  else if (dow == 2)
    displayDigits(DISPLAY_PIN, first, QD_t, QD_U, QD_E);
  else if (dow == 3)
    displayDigits(DISPLAY_PIN, first, QD_H, QD_E, QD_d);
  else if (dow == 4)
    displayDigits(DISPLAY_PIN, first, QD_t, QD_h, QD_u);
  else if (dow == 5)
    displayDigits(DISPLAY_PIN, first, QD_F, QD_r, QD_I);
  else if (dow == 6)
    displayDigits(DISPLAY_PIN, first, QD_S, QD_a, QD_t);
  else 
  {    
    displayDigits(DISPLAY_PIN, QD_o, QD_o, QD_o, QD_o);
  }
    
}

И пример работы

Теперь ситуация исправлена и пришло время двигаться дальше. Единственное пока, я это делал, то наблюдал странные артефакты, когда пытался задать дату, и для отладки приобрёл ещё один 4 значный дисплей, так как простое логирование с использованием Serial мне не помогало.

20160411_23201620160412_204444

Этот дисплей немного меньше и имеет регулируему яркость.

Из минусов – требует два пина для управления. Возможно мигрирую проект на него, так как текущий индикатор довольно яркий, особенно если оставлять его включенным ночью. Соответственно если добавить датчик освещённости, то можно будем менять яркость индикатора в зависимости от освещённости помещения, но посмотрим.

Однако вернёмся к проблеме неправильного отображения информации при мигании дисплея – пришёл к выводу, что проблема возникает при очистке дисплея слишком быстро если не все разряды что-нибудь да отображают. Поэтому для решения проблемы, там где ничего не должно отображаться, например если будильник не установлен или при задании дня недели, я  отображаю символ “-“.

20160417_191527 20160417_191535

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

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

Update: Обновил коментарии в скетче.

Update2: Две функции используемы в скетче displayFirstTwo() и displayLastTwo() это функции, которые я добавил в библиотеку для работы с QuadDisplay от амперки.