Избранные комментарии трейдера Йоганн

по

Тимофей Мартынов, простое решение написано постом ниже.
В R есть встроенная функция:
signif(56.4499999996) = 56.45
Реализацию на других языках можно загуглить, пример:
stackoverflow.com/questions/202302/rounding-to-an-arbitrary-number-of-significant-digits
avatar
  • 28 июня 2017, 20:33
  • Еще
Проблема в том, что число знаков после запятой может быть и 5 (для некоторых акций).
Поэтому просто округлить все числа до 2 знаков после запятой не получится.
Как изящно выйти из ситуации?

Все просто.
Если в некоторых акциях до 5-ти знаков после запятой, то и округляйте до пятого знака. Остальные сами округлятся.

 56,449999999999996 =  56,44999 +0.00001 = 56,45

Либо до 8-го… результат будет тот же. А программист какбэ удивляет…
avatar
  • 28 июня 2017, 18:12
  • Еще
Тимофей Мартынов, с такой проблемой сталкивается рано или поздно ЛЮБОЙ инженер или алго-трейдер. Поздравляю, у Вас это произошло сегодня. После этого дня Вы никогда не будете молиться на компУтер и уж на свой смартфон, как делает это молодёжь — и подавно. Сегодня Вы поняли, что комп-это просто туповатый кусок железа, и сделали его осуждённые гражданским судом (за монополизм) сотрудники Интел и Майкрософт.
По делу: эта проблема существует, но Ваш программист ЭТО ЯВНО ЗАГНУЛ. Ближайшее представление указанного Вами числа:
5.6450000762939453125E1, то есть 56.450000776.....
Проверка тут:
www.binaryconvert.com
С такой проблемой сталкиваются инженеры из многих областей, и в трейдинге тоже. ИМЕННО ПОЭТОМУ в «финансовом» языке программирования Python есть средства для ЛЮБОЙ БОЛЬШОЙ ТОЧНОСТИ чисел.
Такие средства есть и в языке Си (++) путём применения специальных библиотек «arbitrary precision» типа MPFR.
Павел Голобородько (сидя в Японии) ведёт такой проект несколько лет:
www.holoborodko.com/pavel/mpfr/#intro
bitbucket.org/advanpix/mpreal/

Решение для Вашего случая — их несколько: например хранить такие данные в формате String, а для любых манипуляций тут же преобразовывать их в double (float), а затем показывать результат в ОКРУГЛЁННОМ ВИДЕ — с заранее заданной точностью. Проблема будет в том, чтобы муторно и скучно задавать уровень требуемый точности для всех ВЫВОДИМЫХ полей.
Копая далее математику для финансов Вы будете ещё боьше удивляться почему мир до сих пор не рухнул, если всё (все формулы) рассчитывается по стандарту IEEE754.
Такие проблемы могут возникать у инженеров в самых неожиданных местах.
Я писал об этом на форуме MQL5:
www.mql5.com/ru/forum/165397/page5
Даже при вычислении  казалось бы простого полинома — для разных инженерных целей:
? = (333.75 — a2)b6 + a2 (11a2 b2 — 121b4 — 2) + 5.5b8 + a/(2b).
Из всех компиляторов Си только старый Borland может использовать — хранить и вычислять — все числа в формате 80 бит, используя всю точность процессора. Все остальные режут числовые слова до 64 бит. В Python используется встроенная бибилиотека повышенной точности, которая считает ПОБИТОВО все нужные операции с точностью 128 бит, и конечно делает это в 50-100 раз медленнее. Но в инженерии и финансах лучше медленее чем платить потом за рухнувший мост или за неправильные проценты с бондов, которые рассчитываются ПОСУТОЧНО с сумм типа 200 миллиардов долларов.
В моей личной практике был случай когда баланс областного банка свалился из-за того, что неумёха программист не учёл что-то типа 18...19-разрядной десятичной точности большой суммы баланса области в копейках (купоно-гривня была около 5000 за доллар).
avatar
  • 28 июня 2017, 17:49
  • Еще
Тимофей Мартынов, если бы вы писали систему биржи/брокера, где точность — архиважна, пришлось бы юзать longint'ы, с домножением цен на 10^x.
Но для вас, мне кажется, подойдет аналог «мягкого» округления. В R, например, это функция signif(). В других языках — надо смотреть.
avatar
  • 28 июня 2017, 16:41
  • Еще
Zweroboi, не нужен никакой отдельный тип данных, задача решается с помощью целочисленного деления (если абстрагироваться от языка), если частное от целочисленного деления больше нуля при делителе скажем 0.001 (три знака после запятой) то округлять до 3 + 1 знака после запятой. Я удивлен что такая задача вызвала трудности у программистов )
avatar
  • 28 июня 2017, 16:22
  • Еще
Проблема в том, что число знаков после запятой может быть и 5 (для некоторых акций).

Ну так и округляйте до 5 знаков. При этом варианты с числом знаков 4, 3,… тоже придут в норму. Например, 56,449999999999996 округлится до 56,45000. Если требуется отображать именно 56,45, то придется число знаков для каждого типа хранить.

P.s. Или изначально хранить числа в строках.

P.p.s. Максимум знаков после точки 5? Тогда можно умножать на 10000 и хранить в виде целых чисел.
avatar
  • 28 июня 2017, 16:18
  • Еще

Смотря какой язык. Вообще-то, тип данных Money есть. Decimal тоже подходит. Пример: http://support.sas.com/kb/51/034.html.

avatar
  • 28 июня 2017, 15:29
  • Еще
Йоганн, успехов… Спасибо за денежку, добрый человек…
avatar
  • 28 июня 2017, 10:33
  • Еще
 класс!!!
Именно, когда движение закончилось и повезут вниз, предлагается шортить рубль))

ШОРТИТЬ надо СИШКУ!
avatar
  • 28 июня 2017, 04:18
  • Еще
А кругом дураки сидят, им деньги не нужны, они купили дорого а вам отдадут за бесценок.
Только х. вам. Отдадут только раздутые шлаки, а компании, имеющие реальную прибыль и платящие дивиденды, просядут максимум на 5%. И стоило вам эти 5% пол года терпеливо без сделок в кэше ждать? Тут на дивидендных движениях 10% за этот месяц легко сделать было.
avatar
  • 28 июня 2017, 01:26
  • Еще
латвия
1 инвесторский внж для семьи на 5 лет… купить на 5 лет гособлиги латвии на 250к и заплатить разово 20к евро… и можно не жить постоянно а только наездами… автоматически продляется каждый год… под залог этих облиг можно получить кредит в местном банке и сразу вернуть деньги обратно...
налог на прирост капитала 9%

из плюшек- сдаешь детей в местную школу… резлт егэ = экзамен по языку… = гражданство ЕС
2 на кипре еще дешевле… там для получения внж надо просто показать на счетах в местном банке нужное для проживания количество денег… и все… на счет налогов так там он вроде 0… этож офшор
3 мальта — там сложнее… нужен договор на аренду недвиги на определенную сумму+ нужная сумма на счетах
avatar
  • 26 июня 2017, 19:26
  • Еще
ks62, плохо вы знаете историю машины на дровах в период второй мировой производились в СССР серийно, также в блокадном Ленинграде впервые в мире был запущен двигатель на водороде...

   

Кстати и первый электромобиль был сделан тоже в России Ипполитом Романовым в 1899 году!!!


А то что автор выдал — это просто чушь и глупость.
avatar
  • 26 июня 2017, 17:31
  • Еще
trader_95, 

А айподы твои и айфоны
Внешним видом пугали б врага
Каждый весил бы около тоны
И солярки бы жрал дофига
© Орлуша.

avatar
  • 26 июня 2017, 16:02
  • Еще
Йоганн, 
РФ первоклассный заемщик. Т.е. не хороший, а тот кого должны аудировать первоклассные мировые аудиторы и рейтинговать первоклассные мировые рейтинговые агентства. Это требуют наши международные договоры.

Внешний долг государства очень маленький (есть в таблице), малая часть ВВП. А общий долг РФ у внешних заемщиков (включая долг частных компаний) снизился с 2014 на 200 млрд зеленых.
"… Внешний долг Российской Федерации по состоянию на 1 апреля 2017 года, по оценке Банка России, составил 529,7 млрд долларов"

Всю инфу нужно смотреть на сайте ЦБ, это первоисточник.

ЗВР еженедельно
www.cbr.ru/hd_base/?prtid=mrrf_7d

Внешний долг аналитическая таблица до 15 года
www.cbr.ru/statistics/print.aspx?file=credit_statistics%2Fdebt_an_new.htm

Внешний долг актуальный
Оценка внешнего долга Российской Федерации на 1 апреля 2017 года


avatar
  • 23 июня 2017, 00:04
  • Еще
Flex, пожалуйста. 
Как торговать акциями — Джесси Ливермор http://g-forex.net/knigi/torgovlya_akciyami.pdf
Ричард Вайкофф — Библия Дейтрейдера https://vk.com/doc30162585_286004602?hash=8c0f06b518eb212729&dl=10c3caf211b4355a4b
еще книги Ганна можно просмотреть, тут список его книг - http://www.masterforex-v.org/wiki/william_gann.html
avatar
  • 22 июня 2017, 21:43
  • Еще
Добрый человек, кроме поганой антироссийской пропаганды нет ничего. Посмотри лучше фильм , 1943г.в. Смысл в том, что когда в 1943г. было выгодно изображать СССР именно так, то США это делали даже лучше, чем советская пропаганда.
avatar
  • 22 июня 2017, 20:53
  • Еще
Добрый человек, если работать от покупки, то каков сценарий попадания на деньги? Потерял премию и на этом все финансовые риски исчерпываются. Теоретически, есть варианты получить убытки в результате исполнения опциона, но нормальные брокеры страхуют клиентов от этого риска.
avatar
  • 22 июня 2017, 14:06
  • Еще
к сожалению, Россия хоть  крупный игрок на мировом рынке зерна и отдельных видов продовольствия (особенно, после прошлого года), на мировые цены думаю влияет несильно, потому что, наиболее вероятно, российское снижение экспорта может быть замещено экспортом из других стран с развитым сельским хозяйством — США, Канада, Австралия, Аргентина, Бразилия, Новая Зеландия, Китай, Украина и т.д. Это значит, что не факт, что наш неурожай отразится на мировых ценах, а, соответственно, лонги фьючерса на зерно (пшеницу или др.), или лонги опционов колл на тот же актив не факт, что будут выгодны.

Для России есть риски роста цен, но надо помнить, что у страны есть 3-летний продрезерв, откуда могут пойти зерновые интервенции, как в конце 2010 г.
avatar
  • 22 июня 2017, 09:39
  • Еще
....все тэги
UPDONW
Новый дизайн