logo
logo

Форум Курсы валют

создать новую тему раскрыть все
Курсы валют Wizzz_art 08/06/2004 14:46 #написать ответ
Считаю было бы не лишним добавить автообновление курса валют на основе данных полученных в инернете. Реализовать можно, насколько мне позволяет судить мой скудный, не сталкивающийся с программированием, умишко, с помощью рукописных или готовых но поддающихся редактированию шаблонов, коих в программах-следилках за обновлениями сайтов, предостаточно... Что скажете?
И спасибо за отличную программу!
 
Dervish: Вчера выложил обновление второй версии (192-ю сборку), там загрузка курсов реализована. Мало того, так как существуют разные источники данных о курсах (например, жителям Украины было бы интереснее получать информацию с сервера Национального банка Украины, а не от ЦБ России), загрузка валют вынесена (частично) в отдельную библиотеку. Я выложил исходный код этой библиотеки, так что желающие могут её переписать.
 
А вот автоматического обновления и слежения за изменениями курсов я пока не делал, да и мне кажется, что это не самая насущная потребность.
В новом билде будет (-) Loki 08/06/2004 15:56 #написать ответ
-
то есть уже есть:) Loki 08/06/2004 15:57 #написать ответ
-
Курсы валют - их использование are 11/06/2004 14:03 #написать ответ
1. (не перестаю восхищаться мощью AbilityCash). На странице "Счета" необходимо ввести статусную строку, в которой бы автоматически отражалась сумма пересчета остатков всех счетов в одной валюте (которую выбрали в данный момент). Что это дает. Мы увидим баланс всех наших активов на данный момент. Если выполнить эту операцию (пересчет) в двух разных валютах (USD и EUR) за несколько дат (месяц назад, 3-и, 2-е, 1-у неделю назад), мы увидим тенденцию изменения наших активов во времени. Более того, станет видно в какой валюте (а это не обязательно деньги) было бы лучше хранить свои активы. Это настоящий риск-менеджмент, которого (уверяю вас) нет у большинства банков ...
 
Dervish: У меня такое ощущение, что вы пропустили возможность переключить счета в иерархический режим. Посмотрите, из меню "Файл", если выбрать пункт "Настройки базы, в появившемся диалоге будет гореть галочка "Одноуровневый список счетов". Если её погасить, то счета будут показываться в виде дерева. И тогда можно будет посмотреть суммарные остатки в любой валюте из числа существующих.
 
Это решает задачу?
Курсы валют - их использование 2 are 11/06/2004 14:54 #написать ответ
2. Квадратные метры вашей квартиры, дачи - тоже валюта. И бензин на карточке, иконы (картины), ювелирные изделия, металлы. Да и ваш автомобиль и авто вашей жены тоже активы, которые имеют какую-то остаточную (рыночную) стоимость ... В связи с этим странно ерничанье по поводу отсутствия загрузки валют с Интернета - некоторые данные все-таки надо вбивать ручками. Если у вас бензиновая корточка Luk-Oila с каким-то количеством бензина - то курс бензина (хх.хх руб/л) лучше ввести со щита станции, где заправлялись, а не с Web-сайта TНK, например.
 
Dervish: А загрузка валют из Интернета уже сделана. В 192-м билде есть такая возможность. И, кстати, я выложил исходники библиотеки загрузки: если кто-нибудь напишет аналогичную библиотеку для своей страны, я с удовольствием выложу эту библиотеку на сайт.
 
Кстати, можно переписать библиотеку и для загрузки данных с веб-сайта ТНК.
Все же посмотрите тему "А с точки зрения дикарски-наивной..." В.Червонных 11/06/2004 15:34 #написать ответ
Валютой может являться любой продукт природы или труда. Цена единицы продукта, называемого в таком контексте товарной валютой -  курс этой валюты.
Бывает курс покупки и курс продажи. Ведение счетов товарной валюты в соответствующих единицах - это складской учет, причем вполне естественный. Вот только такой учет остатков, включающий остатки товарных валют и есть полный учет активов. Если этого не понимать, то и не осознаешь, что AbilityCash есть не только в идейном, но и в технологическом плане работоспособная система предпринимательского учета. Создание отчетов завершит построение костяка системы, на ней можно будет вполне профессионально считать и налоги тоже.
Более универсальная загрузка курсов? Дим(м) 30/09/2004 22:51 #написать ответ
Мне кажется, базовую версию этого плагина стоило сделать немного по-другому (возможно, когда-нибудь и на эту доработку появится время .
Фактически, все эти плагины будут иметь очень схожую структуру. А потому имеет смысл извлечь из этого максимальную выгоду.
Можно написать универсальный плагин, который по заданному шаблону будет анализировать загруженную страницу. Шаблон типа пролог-блок повторения-эпилог покроет, я так думаю, около 90% всех случаев.
А с программой тогда бы поставлялись пресеты для сайтов разных банков.
 
Правда, это потребует GUI для задания самих адресов и текста шаблона. Но, как я понимаю, что-то вроде кнопочки Configure для плагинов все равно планируется?
 
Зато в случае каких-то перемен придется исправлять только текст, а не программный код, что, согласитесь, намного проще и доступнее.
 
Пример. Оригинальный плагин можно было бы заменить шаблоном вроде такого.
 
Пролог (после него начинаются данные о курсах):
<ValCurs Date="%DATE%" *>
 
Повторение (каждое вхождение - новая запись):
<CharCode>%CURR%</CharCode>*<Value>%VAL%</Value>
 
Эпилог (после него уже никаких курсов):
</ValCurs>
Исходные коды Dervish 01/10/2004 22:54 #написать ответ
для любого плагина есть и доступны для скачивания с сайта. Принцип годится и, в том числе, для универсального плагина. Если вы его напишете - тут же с величайшим удовольствием выложу на сайт.
Курсы валют - их использование 3 are 11/06/2004 17:07 #написать ответ
3. Полностью согласен с утверждением "например, жителям Украины было бы интереснее получать информацию с сервера Национального банка Украины, а не от ЦБ России" - жителям других стран тем более. Официальный курс нужен для оценки всех активов. Курсы коммерческихбанков и ларьков (покупка и продажа) представляют интерес только при выполнении конкретной операции. Бывает так - заходишть на http://www.finance.com.ua/freeinfo/cr.phtm, находишь очень выгодный курс EUR, звонишь в банк, можно ли купить 500 EUR - ответ девочки :- есть только 200 EUR (в банке !!!) - постоите под кассой, может быть кто-то поднесет. Спрашивается, нужен ли такой курс в  AbilityCash ... даже если он заносится автоматически.
 
Dervish: В нормальной экономике официальный курс национального банка довольно объективно отражает существующее соотношение валют и его можно (и должно) использовать для оценки финансового состояния. Для этого и служит таблица курсов валют в программе.
 
А реальные сделки можно вводить по любым курсам, ведь на любой валютообменной операции можно и выиграть и проиграть.
Курсы валют - их использование 4 are 11/06/2004 18:58 #написать ответ
4. Мне не нравится использование в AbilityCash аппроксимации при расчете курсов валют. Пример. Купил 300 EUR за 1962 UAH (есть такая валюта). Пришел домой, ввел в AbilityCash, проверил, доволен. Утром следующего дня запускаю программу, проверяю счета в пересчете на другую валюту и получаю 300 EUR равны уже 1948 UAH. За одну ночь мой счет стал легче!!! Это не правильно. Хочется, чтобы введенный курс оставался неизменным и использовался в расчетах до ввода нового значения ...  Аппроксимация нужна дилерам в "Техническом анализа" для прогнозирования поведения валюты в будущем. Это, как мне кажется, выходит за рамки предназначения AbilityCash ... и приводит к ошибкам в расчетах. Я обхожу этот искуственный "баг" вводя одно и то же значение курса на несколько дней вперед.
 
Dervish: Честно говоря, я не считаю это багом. И вот почему:
 
Конечно неприятно, что счёт полегчал (кстати, он мог и потяжелеть). Но изменение официального курса гривны к евро, в нашем случае приводит к тому, что если вы попробуете обменять евро обратно на гривны, то получите меньшее количество гривен. А значит, сможете купить на них меньшее количество товаров. А это, в свою очередь, говорит о том, что вы (мне очень жаль) обеднели. Что вам и показывает программа.
я не о бедности are 12/06/2004 03:15 #написать ответ
Предположим, на счету USD 100 долларов; 1-го мая давали 29 RUB/USD; 1-го июня 30 RUB/USD. С первого июня до конца года курс не меняется. Если считать на бумаге, то в пересчете на рубли с 1-го июня (и каждый день до конца года) на счету будет 100*30=3000 рублей. В AbilityCash, если каждый день не вводить курс 30 RUB/USD (кстати, а зачем его вводить - он до конца года не меняется) 2-го июня будет на счету примерно 3010 рублей, в июле еще больше ! А причина в том, что программа помнит о 29 RUB/USD и предполагает рост курса ... печально. Конечно, если по данному счету раз десять ввести одно и то же значение - роста не будет. А как об этом не забыть, если счетов несколько.
 
Dervish: А я как раз о бедности и о богатстве. Давайте так: если вам нужно просто пересчитать бумажки, которые есть в кошельке, то для этого прекрасно подойдут остатки по счетам. Но если вы хотите эти остатки привести к единому знаменателю, то это означает, что вы хотите узнать, как именно изменяется ваше благосостояние, верно? Если так, то курс валют учитывать просто необходимо!
 
Представьте: вы купили некоторое количество, скажем, монгольских тугриков (на самом деле валюта не важна). И, вдруг, Монголия объявила о дефолте. В итоге, все её тугрики превратились просто в фантики. Вопрос: стали вы от этого богаче? Стали вы от этого беднее? Что должна показать вам программа?
а как быть с бюджетированием? Loki 15/06/2004 12:39 #написать ответ
Если курс валюты имеет определенную тенденцию, глупо ее не учитывать при составлении бюджета. Хотите чтобы эта тенденция была объективной - загружайте курсы валют. А ваш пример не просто не показательный, а противоречащий законам свободного рынка
 
Dervish: Ну вот, я не одинок в своём подходе.
Шура, патетика тут неуместна ... are 26/06/2004 22:02 #написать ответ
Еще раз попытаюсь объяснить :-
1. Предположим, что с сегодняшнего дня все курсы валют зафиксировались (не изменяются одна по отношению к другой). То есть завтра, послезавтра и т.д. остатки по всем счетам в любых валютах должны быть неизменны !!! Так будет в жизни и на бумаге, AbilityCash же будет давать остатки по счетам разные с учетом тенденции, которая была в прошлом . Более того, остатки с каждым днем будут все больше изменяться. 2. Я проверил со старой Cash (благо есть графики) - ввожу UAH/USD для 1 июня, 1 июля и 1 авгута 5.3000. На графике в соответсвии с "тенденцией" получаю для 31 декабря 5.2898. Используемая в программе "формула" не имеет ничего общего ни со "свободным рынком" ни с бухгалтерией ... Если вы покажете бухгалтеру, что при 1000000 UAH на счете и  при неизменном курсе он к концу года потеряет 5000 UAH благодаря программе, то он попросит с такой программой больше не приходить ... 3. Теперь о том, как должно быть правильно ( в том числе и "а как быть с бюджетированием?"). Если я хочу увидеть, как изменятся мои активы в будущем, просто ввожу предполагаемые значения валюты (или валют) с датами на месяц (два, три или год) вперед и смотрю остатки по счетам по интересующим датам в будущем ... и это будет правильно.
еще один абсолютно конкретный пример are 26/06/2004 23:20 #написать ответ
В марте 2002 европейские страны перешли на EUR. При этом на момент перехода были зафиксированы (для примера только две валюты) DEM/USD=2.2150  и FRF/USD=7.4287. Надеюсь, эти курсы останутся навечно, конечно, если Германия не вернется к марке, а Франция к франку. Предположим, что какой-то бюргер на тот момент имел 2215.0 марок и 7428.7 франков, - подсуетился и обменял их на 2000$ в сумме, сделку ввел в AbilityCash. Мучимый ностальгией он каждый день проверяет, сколько будут "весить" 2000$ в марках и франках (если старая власть вернется). И ... к своему огорчению увидит, что в этом смысле AbilityCash врет . Она "помнит" тенденцию изменения марки и франка в марте 2002 года и экстраполирует это в будущее ... Но ведь указанные курсы уже 2 года не меняются. Вот в чем вопрос ... и в 2010 году 2000$ должны соответствовать 4430 маркам Германии от марта 2002 года. AbilityCash, к сожалению, с этой задачей не справится ... увы.
Может всё таки стоит вывести режим пересчета курсов в настройки? Li Si Cin 28/06/2004 10:50 #написать ответ
Собственно, по поводу курсов аналогичная тема поднималась еще в первой версии программы. И, честно говоря, мне до сих кажется неправильным применение апроксимации курса валюты между двумя заданными, когда, например, на 1-е число курс 10, на 3-е - 20, а на 2-е - вычисленный 15. Хотя (официально ) на 2-е число курс не устанавливался и был такой-же как и первого.
Сергей, может действительно, если есть люди которым нужны разные режимы, сделать так, что б каждый смог для себя этот режим работы с валютами выбирать в настройках программы? ИМХО, можно выделить 3: как сейчас,вообще без апроксимации, и с апроксимацией только до даты первого курса и после даты последнего (без между указанными!)?
И еще вопрос: кросс-курсы планируются?
правильная мысль are 28/06/2004 13:40 #написать ответ
"ИМХО, можно выделить 3: как сейчас,вообще без апроксимации, и с апроксимацией только до даты первого курса и после даты последнего (без между указанными!)". Спасибо.
Настройки работы валюты Dervish 28/06/2004 20:07 #написать ответ
Хорошая идея, мне нравится. Тем более, что я, похоже, решил проблему с быстрой доработкой интерфейса.
 
Считаю, что по валютам вопрос решённый в пользу введения дополнительной настройки.
Вопрос... Explorer 30/06/2004 14:43 #написать ответ
Сергей, а каким, любопытно, образом ты решил проблему с быстрой доработкой интерфейса?
 
я предполагаю варианта три (сам к ним прибегаю временами)
 
1> нанял 2-3 коллег разработчиков(это не всегда позволяет увеличить скорость разработки)
 
2> поставил и задействовал какой нибудь софт-менеджер-проектов (CodeSafe и проч.)
 
3> упростил интерфейс до элементарного или снизил требования к его качеству/юзабельности
Совсем по-другому. Dervish 30/06/2004 15:39 #написать ответ
Нанимать разработчиков у меня нет возможности, кроме того, вряд ли из этого выйдет что-то хорошее, так как я никогда не работал в команде программистов (а тем более, не руководил ими), да и требования к квалификации у меня очень высокие.
 
Разнообразные менеджеры проектов выдают на гора код, который мне не нравится. В общем, с некоторой натяжкой и .NET можно назвать средой, ускоряющей разработку, только один рантайм (среда времени исполнения) там занимает 20 с лишним мегабайт.
 
А вопрос по упрощению интерфейса я вообще не рассматривал и, наверное рассматривать не буду. Имхо, не вариант.
 
Я сделал чисто технологическое решение. (Подробности в следующем посте).
Технологическое решение... Dervish 30/06/2004 15:52 #написать ответ
...таково:
 
Очень много времени (и места в готовой программе) занимает элементарное форматирование форм (диалогов, панелей, etc.) Это - основная трудность. Кроме того, проблемы возникают из-за того, что AbilityCash, в принципе, переводим на другие языки, все метки вынесены в отдельный файл (его пока не видно). А раз так, то и размеры всех текстовых подписей могут изменяться. В общем, примерно до 40% кода занимает элементарная обработка всей этой фигни. Да и довольно много ошибок, которые описывались в этом форуме тоже относятся к этим вещам.
 
Я начал думать, как можно сделать иначе. И поймал себя на мысли, что есть образчик того, как можно решить форматирование диалогов. Это HTML, на котором делают отдельные приложения, например, тот же MS Money (точнее, там DHTML, но не суть важно - принципы те же). Но у приложений на DHTML другие проблемы - они медленно работают и занимают много места, так что его рассматривать я не могу.
 
В итоге я написал некий код, с которым создание диалогов делается вот так:
 
1. Описывается диалог (форма) в XML, в неё указывается всё поведение формы при изменении размеров и т.д. и т.п.
 
2. XSLT транслирует это описание в обычную С-шную константу, которая скармливается компилятору.
 
3. Готовый код динамически (на этапе исполнения) читает эту строковую константу, сам создаёт все контролы, размечает диалог и обеспечивает поддержку его исполнения.
 
Вуаля. Теперь доработка интерфейса программы будет состоять в правке XML-кода и дописывании бизнес-логики.
 
А занялся я этой фигнёй после того, как представил себе, во что выльется программирование интерфейса для отчётов. Мне, честно говоря, поплохело.
 
Теперь, по мере того, как я переведу все формы и диалоги на новый код, думаю, что размер программы (exe-шника) сильно сократится, поскольку теперь будет один и тот же код отвечать за все диалоги и формы.
О кросс-курсах Dervish 28/06/2004 20:05 #написать ответ
Если курсы загружаются из интернета, то там есть специальная галочка "расчитать кросс-курсы". Этого недостаточно?
 
Тем более, давайте отметим, что если делать расчёт кросс-курсов, то он будет сильно зависеть от той настройки, которую вы предложили. Не возникнет путаницы?
 
А идея с настройкой мне тоже нравится. Компромиссный вариант.
... Li Si Cin 30/06/2004 12:10 #написать ответ
К сожалению, на домашнем компе у меня пока нет выхода в инет, а на рабочем стоит файрвол, требующий авторизации
Так что испытать загрузку курсов у меня не получилось
Был xls-файл, который я и импортировал. В нем курс валют к рублю, поэтому остатки по счетам я только в RUB и могу пока посмотреть. Ну, или самому расчитать кросс-курсы.
Может, раз уж, как я понял, есть готовый код их расчета, вынести его отдельной командой? С параметрами: начало и конец периода, "из валюты", "в валюту", "через валюту".
Но, повторюсь, этот вопрос не особо принципиальный, т.к. его можно решить "ручками" и сейчас
А "путаница", если я правильно понял, может возникнуть только в случае аппроксимации. Если есть курс валюты Б к А на даты  1 и 3, В к А на дату 2 (1<2<3), то вопрос "как пересчитать курс Б к В на дату 2?".
Не знаю . Вариантов решения много. Может пернесчитывать только на совпадающие даты? Тем более, что в большинстве случаев даты "установления" курсов одинаковы.
Не болтайте ерундой:) Loki 28/06/2004 12:27 #написать ответ
Как я уже говорил, ваш пример абсолютно не жизненный и примеры тоже притянуты за уши. Сразу возникают вопросы:
1."Если я хочу увидеть, как изменятся мои активы в будущем, просто ввожу предполагаемые значения валюты" - если не скерет, на основании каких данных вы будуте получать этот курс? Если вы считаете что запросто переплюнете любой мат. аппрат, то я с интересом выслушаю курсы доллара и евро по отношению к рублю, скажем, на конец лета, осени, начало года.
2.Не понял каким боком официальный курс валют влияет на обменные операции? Они могут совершаться по любому курсу (хоть 1:1) по договоренности с продавцом.
3."Если вы покажете бухгалтеру, что при 1000000 UAH на счете и при неизменном курсе он к концу года потеряет 5000 UAH благодаря программе, то он попросит с такой программой больше не приходить ... " Вот это новость! А я вот бухгалтеру каждый месяц приносил отчеты, где в зависимости от курса валют организация "беднела" или "богатела" на очень значительные суммы. И знаете, меня не только не просили больше не приходить, а еще за это и деньги платили.
4.Мы говорим о рыночной экономики, где курсы валют зависят от спроса на рынке. Если рассматривать плановую экономику (с фиксированным курсом), то понятие "курс" становится не совсем верно - правильнее сказать "цена". (Пример с европейскими валютами непоказательный, так как операции по ним заморожены)
5."И ... к своему огорчению увидит, что в этом смысле..." программа показывает абсолютно адекватные данные. См. пункт 4.
Курсы Андрей 28/06/2004 14:03 #написать ответ
Как бухгалтер вам говорю: если курс в понедельник 30р. за 1 бакс, во вторник 29р. за бакс и больше он не менялся до конца года, то и расчет должен вестись по последнему курсу, т.е. 29. Экстраполяция, как и интерполяция, неверна в принципе в бухгалтерских программах. Если уж брать курсы с ЦБ РФ,то зачем извращаться? Есть правило: курс на начало любой даты равен курсу на конец предыдущей даты. Курсы ЦБ - они как критерий оценки - если у вас сделка состоялась 1:1, то вы этот выйгрыш видите путем сравнения с курсом ЦБ. Но не стоит мешать ЦБ крсу со своими личными. Ведь если я буду у _себя_ менять 30$ за 1р., то неужели вы это начнете у _себя_ считать убытком. Должна быть некая глобальная величина, и обязятельно вне учета, путем сравнения с которой можно определять прибыль/убыток! Повторюсь, в бух.программах нет места экстра- интерполяции.
с последней тезой соглашусь Explorer 28/06/2004 17:30 #написать ответ
только...
 
является ли ACash сопсно бухгалтерской программой?
Считаю, что тема исчерпана в пользу (+) Dervish 28/06/2004 20:09 #написать ответ
введения дополнительной настройки.
 
Вот только куда её добавить - в настройки программы или базы данных?
лучше в настройки базы are 28/06/2004 22:22 #написать ответ
- упростит работу при работе с базой на разных машинах ...
... не только are 28/06/2004 22:17 #написать ответ
Наличие возможности считать валюты по правилам не отнимет у AbilityCash всех ее достоинств, тем более, не ограничит область применения только бух.учетом
Согласен. Dervish 30/06/2004 16:16 #написать ответ
Решение принято - в настройки.