Логарифмическая шкала для Форекс
Глава 3.Построение графиков
ВСТУПЛЕНИЕ
Эта глава, в основном, будет интересна тем читателям, кто вообще не знаком с построением столбиковых графиков. Вначале мы расскажем о различных видах графиков, а потом сосредоточимся на дневном столбиковом графике (daily bar chart) и его особенностях, ибо именно с ним в большинстве своем и приходится работать техническим аналитикам. Мы отдельно остановимся на том, как считывать с графика информацию о ценах и как заносить ее на график. Кроме цены, на графике отражаются еще две переменные, которых мы коснемся в этой главе: объем и открытый интерес. Далее мы рассмотрим другие разновидности столбикового графика, включая долгосрочные недельные и месячные графики и краткосрочные внутридневные графики. Ознакомившись с этим материалом, мы сможем перейти к изучению некоторых инструментов графического анализа, которым посвящена следующая глава. Те из вас, кто уже знаком с основами работы с графиками, могут смело читать следующую главу, а мы вас догоним.
ВИДЫ ГРАФИКОВ
Из всех существующих видов графиков, для работы на рынке товарных фьючерсов чаще всего используется дневной столбиковый график. Однако аналитики могут применять и другие типы графиков. Два из них — линейный и пункто-цифровой — мы также рассмотрим в этой главе.
Рис. 3.1. Дневной столбиковый график контракта на золото. Каждый вертикальный столбик соответствует движениям цены в течение одного дня. Наиболее часто используемыми являются максимальная цена дня, минимальная цена дня и цена закрытия. Некоторые аналитики также отмечают цену открытия. Для этого служит черточка слева от столбика.
На рисунке 3.1. изображен стандартный столбиковый график. Почему столбиковый? Да потому, что ежедневное движение цен на рынке обозначается с помощью столбика. На столбиковом графике обычно изображают только максимальную цену дня, минимальную цену дня и цену закрытия. Черточка справа от вертикального столбика обозначает цену закрытия (closing price). Некоторые аналитики также заносят на график и цену на момент открытия биржи (opening price). На нашем графике это черточка слева от столбика.
Рис. 3.2 Линейный график того же контракта на золото. Для этого типа графиков характерна непрерывная кривая, которая образуется при соединении значений цен закрытия.
На рисунке 3.2. изображен тот же самый фьючерсный контракт, но это уже не столбиковый график, а линейный. На линейном графике отмечают только цену закрытия для каждого последующего дня. Среди аналитиков бытует мнение, что наиболее важной и показательной ценой за весь день торгов является именно цена закрытия. Поэтому линейный график или график цен закрытия, как полагают многие, наиболее достоверно отражает картину движения цены. На самом деле, все зависит от того, что хочет увидеть тот или иной аналитик. Для некоторых видов графического анализа больше подходят линейные графики, чем столбиковые.
Третий вид графиков — пункто-цифровой график. Он изображен на рисунке 3.3. В двух последующих главах мы детально рассмотрим этот способ графического анализа. Обратите внимание, что пункто-цифровой график отражает ту же динамику цен, но в более сжатом виде. На графике чередуются столбцы крестиков (х) и ноликов (о). Столбцы крестиков соответствуют растущим ценам, столбцы ноликов — падающим. Сигналы к покупке и к продаже на нем более точны и четко выражены, чем на столбиковом. Кроме того, пункто-цифровой график обладает известной гибкостью. Например, для построения графика, подобного тому, который изображен на рис 3.3, нужны только максимальное и минимальное значения цены, публикуемые в газетах.
Рис. 3.3 Пункто-цифровой график того же контракта на золото, графики которого были представлены на рис. 3.1 и 3.2. Обратите внимание на чередующиеся столбцы крестиков (х) и ноликов (о). Столбец крестиков соответствует растущим ценам, столбец ноликов — падающим. Этот вид графиков выдает более конкретные сигналы к купле-продаже. Обратите внимание, насколько более сжато на нем представлена информация о ценах.
Рис. 3.4 Внутридневной столбиковый график контракта на долгосрочные казначейские обязательства. Каждый столбик показывает максимальное, минимальное и последнее значение цены за каждые пять минут. На этом графике отражена динамика цен в течение лишь одного дня торгов.
Пока что мы говорили о графиках, использующих только максимальную цену дня, минимальную цену дня, цену закрытия и лишь иногда цену открытия. В результате, мимо пользователя проходит огромный объем информации о процессе торгов непосредственно в торговом зале биржи. Если у аналитика есть возможность пользоваться такими сложнейшими системами, как ADP ComtrencTs Videcoin, то можно получать внутридневные столбиковые, линейные и пункто-цифровые графики, чтобы отслеживать динамику цен в течение дня. При этом, например, столбиковые графики могут быть построены так, что один столбик будет соответствовать ценам за 5 минут, 15 минут или 1 час. Для трейдеров, ведущих краткосрочную торговлю, эти данные могут иметь колоссальное значение.
Рис. 3.5а Внутридневной пункто-цифровой график контракта на золото. На таком графике содержится колоссальный объем важнейшей ценовой информации, в том числе информация о скрытых уровнях поддержки и сопротивления.
Рис. 3.5б. Это реальная информация о внутридневных колебаниях цен контракта на швейцарский франк. Составление внутридневных графиков требует доступа к информации о внутридневных колебаниях цен.
В последующих главах мы еще будем возвращаться к внутридневным графикам и их особенностям. Мы побольше поговорим и о линейных, и о пункто-цифровых графиках, но сейчас ограничимся рассмотрением дневного столбикового графика, как наиболее употребительного (См. рис. 3.4., 3.5.а,б).
АРИФМЕТИЧЕСКАЯ И ЛОГАРИФМИЧЕСКАЯ ШКАЛЫ
На фьючерсных рынках буквально все графики, которые можно приобрести через коммерческие информационные службы, используют арифметическую ценовую шкалу. Однако для некоторых видов анализа, особенно если речь идет об анализе долгосрочных тенденций, удобно пользоваться шкалой логарифмической (см. рис. 3.6 и 3.7). На рисунке 3.6 изображены арифметическая и логарифмическая шкалы, так что разница между ними сразу бросается в глаза. Если мы возьмем арифметическую шкалу, то расстояния между делениями у нее неизменны. На арифметической ценовой шкале движение с отметки 5 до отметки 10 по расстоянию будет равно движению с отметки 50 до отметки 55. Расстояние будет одно и то же, хотя в первом случае это означало, что цена возрастал вдвое, а во втором — лишь на 10%. Если же мы пользуемся логарифмической шкалой или, как ее еще называют, процентной шкалой, то тут одинаковое расстояние на шкале соответствует одинаковым в процентном отношении изменениям. Например, от отметки 10 до отметки 20 (возрастание цены на 100%) расстояние такое же, как от 20 до 40 или от 40 до 80. Следует обратить внимание на то, что все деления на арифметической шкале имеют один и тот же размер. У логарифмической шкалы картина иная. Процентные изменения становятся тем меньше, чем дальше растет цена. Расстояние между отметками 1 и 2 равно расстоянию между отметками 5 и 10, потому что в обоих случаях имело место возрастание вдвое. Несмотря на очевидные преимущества использования логарифмических графиков в анализе долгосрочных тенденций, они мало распространены, и приобрести их достаточно сложно. Чаше всего у нас просто нет выбора, и приходится пользоваться графиками с традиционной арифметической шкалой. Именно поэтому в нашей книге мы будем в основном говорить о таких графиках.
Рис. 3.6 Сопоставление арифметической и логарифмической шкал. Обратите внимание на то, что левая шкала имеет равные деления по всей протяженности, тогда как правая (логарифмическая) отражает процентные изменения.
Рис. 3.7. На этом рисунке представлены два графика по меди — месячный и недельный. Они составлены с использованием логарифмической шкалы. Обратите внимание, как деления становятся тем шире, чем ниже цены, и, напротив, становятся тем уже, чем цены выше. Вычерчивание линий тренда и канала может очень выиграть от использования логарифмической шкалы, особенно если речь идет о долгосрочных графиках.
ПОСТРОЕНИЕ ДНЕВНОГО СТОЛБИКОВОГО ГРАФИКА: ЦЕНА, ОБЪЕМ И ОТКРЫТЫЙ ИНТЕРЕС
В общем, в построении дневного столбикового графика никаких особых сложностей нет. На графике изображаются изменения в цене и изменения во времени. По вертикальной оси (или оси Y) откладывается цена контракта. По горизонтальной оси (или оси X) откладывается время. Что же нужно сделать пользователю? Провести вертикальную линию (столбик) от максимальной цены определенного дня до минимальной цены этого дня, представляющую диапазон дневных колебаний цены. Потом поставить маленькую горизонтальную черточку справа от вертикального столбика, обозначающую цену закрытия (см. рис. 3.8).
Рис. 3.8 Верхний график показывает динамику цен за 8 дней. Черточка справа от столбика — это цена закрытия. Черточка слева от столбика — цена открытия. Нижний график показывает общий объем (вертикальные столбики) и общий открытый интерес (непрерывная линия). Таблица внизу содержит все отраженные на графике данные. Объем за последний день дается приближенно. Данных по открытому интересу за последний день нет, они сообщаются на день позже.
Эта черточка ставится именно справа, чтобы не путать ее с ценой открытия, которую многие аналитики также отмечают на графике в виде черточки слева от столбика. Традиционно на график наносили только максимальную цену дня, минимальную цену дня и цену закрытия, но все больше и больше трейдеров, занимающихся краткосрочной торговлей, начинают использовать и значение цены открытия.
После того как движение цен за этот день зафиксировано на графике, пользователь перемещается на один шаг вправо и откладывает на графике данные за следующий день. Большинство графиков, составляемых коммерческими службами, отражают пятидневную рабочую неделю, субботы и воскресенья на них не отмечаются. Если биржа не работает среди рабочей недели, в этот день на графике появляется пропуск.
Рис. 3.8 Верхний график показывает динамику цен за 8 дней. Черточка справа от столбика -это цена закрытия. Черточка слева от столбика — цена открытия. Нижний график показывает общий объем (вертикальные столбики) и общий открытый интерес (непрерывная линия). Таблица внизу содержит все отраженные на графике данные. Объем за последний день дается приближенно. Данных по открытому интересу за последний день нет, они сообщаются на день позже.
Talkin go money
Логарифмические или линейные потенциометры? (Oct 2020).
Интерпретация биржевой диаграммы может варьироваться у разных трейдеров в зависимости от типа шкалы цен, используемой при просмотре данных. Как предполагает этот вопрос, два наиболее распространенных типа шкалы цен: 1) логарифмический (также называемый log) и 2) линейный (также называемый арифметикой).
На стороне диаграммы нанесена линейная шкала цен, так что существует равное расстояние между ценами, и каждое изменение единицы на графике представлено одним и тем же вертикальным расстоянием на шкале, независимо от того, какой уровень цен актив происходит при изменении. Напротив, построена логарифмическая шкала цен, так что цены в шкале не расположены на равном расстоянии; вместо этого масштаб накладывается таким образом, что два равных процента изменения отображаются как одно и то же вертикальное расстояние по шкале.
Как видно из приведенных выше графиков, повышение цены с $ 10 до $ 15 аналогично увеличению с $ 20 до $ 25 на линейной диаграмме, поскольку оба сценария представляют собой увеличение на 5 долларов. Однако логарифмическая шкала цен покажет вертикальное расстояние между $ 10 и $ 15, которое будет отличаться от расстояния $ 5 между $ 20 и $ 25. Причиной этого является то, что изменение в 5 долларов США (когда цена составляет 10 долларов США) представляет собой увеличение на 50%, а переход от 20 до 25 долларов — на 25%. Поскольку увеличение на 50% более важно, чем 25%, чартисты будут использовать большее расстояние между ценами, чтобы четко показать величину изменений. При использовании логарифмической шкалы вертикальное расстояние между ценами в масштабе будет равным, когда процентное изменение между значениями будет одинаковым. Используя приведенный выше пример, расстояние между $ 10 и $ 15 будет равно расстоянию между $ 20 и $ 30, потому что оба они представляют собой повышение цены на 50%. В общем, большинство трейдеров и программ диаграмм используют логарифмический масштаб, но всегда полезно исследовать другие подходы, чтобы определить, какой из них наиболее подходит для вашего стиля торговли.
Чтобы узнать больше, см. Наш Технический анализ Учебное пособие .
Программное обеспечение XTick
Программы технического анализа и торговли акциями, фьючерсами, опционами и форекс
- Список форумов‹Программное обеспечение XTick‹Обсуждение индикаторов
- Изменить размер шрифта
- Для печати
- FAQ
- Регистрация
- Вход
логарифмическая шкала
логарифмическая шкала
vladfa » Сб сен 26, 2009 11:12 am
Re: логарифмическая шкала
Arthur » Сб сен 26, 2009 11:30 am
Применяется при большом диапазоне изменения инструмента, на несколько порядков. Позволяет применять графические построения более адекватно.
Например, график РАО ЕЭС с каналом с использованием логарифмической шкалы:
и с обычной линейной шкалой:
Re: логарифмическая шкала
vladfa » Пт окт 02, 2009 2:29 pm
Re: логарифмическая шкала
vladfa » Сб окт 31, 2009 7:36 pm
вычитал в книжке: смысл применения логарифмической шкалы в том,чтоб рост цены инструмента наглядно отражал его величину
например если что-то выросло с 10р до 20р это 100%прирост инветиций), но если через некоторое время этот же инструмент стоит 100 и вырастает на 10 то это всего лишь 10 процентов. эта шкала нивелирует визуальную разницу между изменением размерности одного процента роста или падения актива.
пс.артур а как закрашивать каналы как на картинке газпрома?
Re: логарифмическая шкала
Arthur » Сб окт 31, 2009 8:21 pm
103 Виды и типы графиков на Forex, график баров, японских свечей, тиковый график
Пятница, 28 Сентября 2012 г. 00:11 + в цитатник
Типы графиков и основные характеристики движения цен на валютном рынке форекс.
Технический анализ основан на трех типах форекс графиках движения рынка:
- график движения цены;
- объема торговли;
- открытого интереса.
Эти графики называются чартами (chart). В нынешнее время существует большое количество информационных систем, таких как торговый терминал Metatrader 4 и многие другие торговые платформы, которые работают в режиме настоящего времени, со встроенными функциями автоматического построения чартов (графиков) по мере поступления данных. Все, что требуется от форекс трейдера, это умение грамотно и свободно их читать.
Основные характеристики графиков движения цены
Типов форекс графиков очень много так как колебания цены записываются человечеством уже на протяжении многих веков. Но современные аналитики и форекс трейдеры используют четыре основных типа чартов:
3. График Крестики-нолики.
Линейные графики и графики гистограммы это основа классического технического анализа на валютном рынке форекс, а графики крестиков-ноликов и японских свечей послужили толчком к созданию особых ветвей прогнозирования форекс рынка.
Давайте рассмотрим следующую сравнительную таблицу форекс чартов:
Линейный | Гистограмма | Крестики-Нолики | Японские свечи | |
1. Исходные данные для построения | Любые цены одних и тех же параметров; Например: открытие; закрытие; средняя за период | Цена открытия, закрытия, высшая и низшая за определенный период | Любые цены одних и тех же параметров; Например: открытие; закрытие; средняя за период | Цена открытия, закрытия, высшая и низшая за определенный период |
2. Ось абсцисс (единичный отрезок) | Время (минуты, часы, дни, месяца, годы и т.п.) | Время (минуты, часы, дни, месяца, годы и т.п.) | Нет | Время (минуты, часы, дни, месяца, годы и т.п.) |
3. Ось ординат: шкала цены | Арифметическая, иногда логарифмическая (процентная) | Арифметическая редко логарифмическая | Арифметическая | Арифметическая |
4. Знаки, составляющие знаки | Точка | Вертикальная палочка-столбик (гистограмма) | Крестик или нолик | Свечки (подсвечники) |
1. Исходные данные для построения — описывается, на основании каких данных можно построить тот или иной форекс график.
2. Ось абсцисс (еденичный отрезок) – из этого пункта меню мы видим, что линейные гистограммные и графики японских свечей, можно строить на любых временных периодах.
Разберем названия чартов в зависимости от длины единичного отрезка по оси абсцисс:
1. График тиков (Tick-by-Tick) — отражает каждое изменение цены (обычно — только линейный);
2. Поминутный (One Minute) — колебания цены за одну минуту;
3. Часовой (Hourly) — колебания цены за один час;
4. Дневной (Daily) — колебания цены за один день;
5. Недельный (Weekly) — колебания цены за одну рабочую неделю;
6. Месячный (Monthly) — колебания цены за один календарный месяц;
7. Годовой (Yearly) — колебания цены за один год.
Ось ординат: шкала цены — указывает на то, какая шкала арифметическая или логарифмическая используется для построения одного из типа форекс графика.
Арифметическая шкала наиболее проста и естественна и используется в большинстве случаев.
Логарифмическая шкала наглядно отражает не абсолютное изменение цены, а относительное и может быть полезна при составлении среднесрочных и долгосрочных forex графиков.
В следующих постах нашего форекс блога для начинающих трейдеров мы поговорим и рассмотрим по-отдельности каждый тип форекс графиков.
Технический анализ — прогнозирование изменений цен в будущем на основе анализа изменений цен в прошлом. В его основе лежит анализ временны́х рядов цен — «чартов» (от англ. chart). Помимо ценовых рядов, в техническом анализе используется информация об объёмах торгов и другие статистические данные. Наиболее часто методы технического анализа используются для анализа цен, изменяющихся свободно, например, на биржах.
Логарифмическая шкала цен
ОПРЕДЕЛЕНИЕ «Логарифмической шкалы цен»
Тип шкалы, используемой на диаграмме, которая построена таким образом, что два эквивалентных процента изменения представлены одним и тем же вертикальным расстоянием на шкале, независимо от того, какая цена актива происходит, когда происходит изменение. Расстояние между числами на шкале уменьшается по мере увеличения цены базового актива. Это связано с тем, что повышение цены на 1 доллар становится менее влиятельным, поскольку цена поднимается выше, поскольку теперь она соответствует меньшему процентному изменению, чем когда цена актива была на более низком уровне. Также упоминается как «шкала журнала».
РАЗБОРКА «Логарифмическая шкала цен»
Логарифмические шкалы цен обычно принимаются в качестве настройки по умолчанию для большинства услуг по составлению графиков, и они используются большинством технических трейдеров. Общие процентные изменения представлены равным интервалом между числами в шкале. Например, расстояние между $ 10 и $ 20 равно расстоянию между $ 20 и $ 40, потому что оба сценария представляют собой 100-процентное увеличение цены. Сравните это с «линейной ценовой шкалой».
Построение логарифмических частотных характеристик
Частотные методы исследования линейных систем автоматического регулирования существенно упростились, после того, как для построения графиков частотных характеристик были введены логарифмические шкалы. Частотные характеристики, построенные в логарифмических шкалах, называется логарифмическими частотными характеристиками.
Чаще всего строятся характеристики — логарифмическая амплитудно-частотная характеристика (ЛАЧХ) и — логарифмическая фазовая характеристика. (ЛФХ)
Для построения ЛАЧХ используется модуль АЧХ выраженный в децибелах
Бел представляет собой логарифмическую единицу, соответствующую десятикратному увеличению мощности. Один бел соответствует увеличению мощности в 10 раз, 2 бела – в 100 раз, 3 бела – в 1000 раз и т.д.
Децибел равен одной десятой части бела. Если модуль был бы отношением мощностей, то в правой части (1) находился бы множитель 10. Т.к. модуль представляет собой отношение не мощностей, а выходной и входной величин (перемещений, скоростей, токов и т.п.), то увеличение этого отношения в 10 раз соответствует увеличению мощности в 100 раз, что соответствует 2 белам или 20 децибелам. Поэтому в правой части (1) находится множитель 20. Один децибел соответствует изменению амплитуды в раз.
Усилению соответствуют положительные децибелы, а ослаблению – отрицательные.
При построении ЛАЧХ по оси абсцисс откладывается угловая частота в логарифмическом масштабе, т.е. откладывается десятичный логарифм частоты, а около отметки указывается само значение частоты.
При построении ЛАЧХ на оси ординат наносится шкала модулей в децибелах.
При построении ЛФХ на оси абсцисс используется логарифмическая шкала частот, а на оси ординат откладывается фазовый сдвиг, т.е. в град.
Для удобства одновременного построения ЛАЧХ и ЛФХ шкалы частот совмещаются, а шкала фазовых сдвигов наносится так, чтобы совместить фазовый сдвиг – 180 0 с нулем шкалы модулей. При этом отрицательные фазовые сдвиги откладываются вверх.
Не нашли то, что искали? Воспользуйтесь поиском:
Лучшие изречения: Сдача сессии и защита диплома — страшная бессонница, которая потом кажется страшным сном. 8674 — | 7109 — или читать все.
188.64.173.93 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.
Отключите adBlock!
и обновите страницу (F5)
очень нужно
ИСПОЛЬЗОВАНИЕ ЛОГАРИФМИЧЕСКОЙ ШКАЛЫ
- Известны точки последовательных относительных местоположений встречного судна и соответствующий интервал времени между ними: необходимо найти относительную скорость.
- Известна относительная скорость встречного судна: необходимо определить точку, в которой оно окажется в заданное время.
- Известна относительная скорость встречного судна: необходимо определить время, через которое оно окажется в заданной точке.
1. Любая задача по определению элементов относительного движения начинается с измерения величины вектора относительной скорости, т.е. измеряется расстояние, пройденное встречным судном (целью) относительно нашего судна (рис.13):
o измерителем снимается расстояние между последовательными точками;
o полученный раствор измерителя переносится на оцифрованную шкалу, где и определяем расстояние между точками.
Примечание. Настоятельно рекомендуем не втыкать иголку измерителя в центр планшета, т.к. это слишком быстро приводит к образованию дырки в центре, что делает планшет неудобным в работе!
Рис.13.
2. Теперь нам известно пройденное расстояние и время. Переходим к логарифмической шкале. За 6 минут пройдено 3,9 мили, поэтому одну ножку измерителя устанавливаем на цифру 6, а другую — на цифру 3,9. Примечание. Важно сохранить полученный раствор измерителя, поскольку любые дальнейшие измерения производятся именно этим раствором. Этот раствор связывает проходимое расстояние за определенное время. |
3. Если мы ищем скорость относительного движения, то переносим измеритель (сохраняя раствор) в отметку 60, а другая ножка нам покажет соответствующее этому времени расстояние 39 миль. Поскольку скорость — это количество миль за 60 минут, полученная величина и будет соответствовать относительной скорости 39 узлов. | Если нас интересует, где будет встречное судно через 15 минут, то переносим измеритель (сохраняя раствор) одной ножкой в отметку 15, а другая ножка нам покажет соответствующее этому времени расстояние 9,7 мили. Делаем раствор циркуля 9,7 мили по шкале планшета и откладываем это расстояние от последней точки по ЛОД — получаем будущее местоположение встречного судна через 15 минут. | Если до контрольной точки встречному судну осталось пройти 8 миль, то для нахождения времени переносим измеритель (сохраняя раствор) одной ножкой в отметку 8, а другая ножка нам покажет соответствующее этому расстоянию время 12,3 мин. |
Использовать логарифмическую шкалу можно не только при определении элементов относительного движения, но и для решения тех же задач по истинному движению, как своего судна, так и встречного. Только в этом случае в качестве первого шага измеряется вектор скорости своего судна или встречного соответственно.
1. Родионов А.И., Сазонов А.Е.”Автоматизация судовождения”, Москва, “Транспорт”, 1983 г.
2. Жерлаков А.В. “Автоматизация судовождения”;
3. Байрашевский А.М., Ильин А.А., Сапегин В.Б., Жерлаков А.В. “Судовая радиоэлектроника и радионавигационные системы”, М, “Транспорт”,1988 г.;
4. Коновалов В.В., Кузнецова Л.И., Мельников Н.П. “Судовые радионавигационные приборы”, М, ”Транспорт”,1989 г.;
5. Аксютин Л.Р., Белов Ю.И., Бондарь В.М. ”Справочник капитана дальнего плавания”, М.,”Транспорт”, 1988 г.;
6. Боул, Джоунз “Средства автоматизации радиолокационной прокладки”;
7. Корзун Н.Н., Дыба В.Г. “Использование радиолокационной информации при плавании в условиях ограниченной видимости”, Москва, ЦРИА “Морфлот”, 1978 г.;
8. Баскин А.С., Шабалин В.Н. “Рекомендации по использованию радиолокационной информации для предупреждения столкновений судов”, Москва, В/О “Мортехинформреклама”, 1991 г.;
5 способов расчета логарифмического тренда в Excel. + О логарифмическом тренде и его применении.
Из данной статьи вы узнаете:
• Примеры применения логарифмического тренда в бизнесе;
• Логарифмический тренд y(x)=a*ln(x)+b разложим на запчасти;
• 5 способов расчета значений логарифмического тренда в Excel;
• Как можно скорректировать значения логарифмического тренда;
Логарифмический тренд применяется для прогнозирования временного ряда, данные которого вначале быстро растут или убывают, а затем постепенно стабилизируются.
Например, выводим новый товар на рынок, за счет роста клиентской базы продажи быстро растут, затем мы набираем постоянных клиентов, продажи стабилизируются, и новые клиенты уже не основной фактор роста, а основной фактор роста — это развитие продаж постоянным клиентам.
Или вводим продукцию в новую торговую точку, и по истечении определенного периода решаем увеличить количество фейсов на полке (т.е. увеличить размер полки для одного вида товара) (фейс — это единица продукции, которая стоит лицом к покупателю) или продублировать выкладку в другой части зала. Почему здесь лучше использовать логарифм? Потому что увеличение количества фейсингов на полке в 2 раза по одной группе товаров, к сожалению, не ведёт к увеличению продаж в 2 раза, причём с ростом количества фейсов темп прироста продаж уменьшаются для каждого последующего фейса. Именно поэтому для прогнозирования продаж для этой ситуации лучше всего использовать логарифмический тренд.
Логарифмический тренд – это функция y(x)=a*ln(x)+b, где
Значение x – это номера периода во временном ряду (например, номер месяца, квартала, дня; См. статью о временных рядах.)
y – это последовательность значений , которые мы анализируем и прогнозируем (например, объём продаж по месяцам.)
b – точка пересечения с осью y на графике;
a – это значение, на которое увеличивается следующее значение временного ряда;
Причем, если a>0, то динамика роста положительная,
Если а =ЛИНЕЙН(C2:O2;LN(C1:O1);ИСТИНА;ИСТИНА)
Теперь формулу вводим как формулу массива, выделяем 2 ячейки (подробнее о формулах массива) и нажимаем F2, а затем одновременно — клавиши CTRL + SHIFT + ВВОД.
Коэффициенты «а» и «b» логарифмического тренда y(x)=a*ln(x)+b рассчитаны;
Получаем уравнение тренда y=2673492*ln(x)+2913281
Для прогнозирования нам необходимо продлить линию тренда и определить её значения. При её продлении нам будет известен только один параметр — это время, т.е. значения по оси X.
Рассчитываем значения тренда с 1-го месяца (ноябрь) до 20 (июнь)— y=2673492*ln(14)+2913281=9968782
3-й способ — с помощью функции Excel =ТЕНДЕНЦИЯ().
Расчет значений логарифмического тренда с помощью функции Excel =ТЕНДЕНЦИЯ().
Для этого в функцию =ТЕНДЕНЦИЯ() вводим:
1. Известные значения y — объёмы продаж за анализируемый период;
2. Известные значений x — порядковые номера периодов (месяцев), причем введенные как LN(Известные значений x);
3. Новые значения x— порядковые номера периодов, для которых хотим рассчитать значения трендов, причем введенные как LN(Новые значения x);
4. Константа — ставим «1», если хотим рассчитать значения тренда y(x)=a*ln(x)+b с коэффициентом b.
Формула будет выглядеть вот так =ТЕНДЕНЦИЯ(C4:O4;LN(C2:O2);LN(Q2:W2);1)
Затем, вводим формулу =ТЕНДЕНЦИЯ(), как формулу массива. Для этого
1. Выделяем диапазон ячеек с 1-го по 20-й период, в первой ячейке введена формула =ТЕНДЕНЦИЯ();
2. Нажимаем F2, а затем одновременно — клавиши CTRL + SHIFT + ВВОД.
Значения логарифмического тренда с помощью формулы Excel =тенденция() рассчитаны.
4-й способ — функция Excel =предсказ().
Расчёт значений логарифмического тренда — с помощью функции Excel =предсказ()
Для этого вводим в функцию =предсказ(
1. X — номер периода, для которого рассчитываем прогноз, причем вводим как LN(x);
2. Известные значения y — объёмы продаж по месяцам, фиксируем диапазон, выделяем его и нажимаем F4. Получаем ссылку, как на картинке:
3. Известные значения x — порядковые номера периодов, для которых хотим рассчитать значения логарифмического тренда, причем вводим как LN(Известные значения x) + фиксируем выделенный диапазон, выделяем его и нажимаем F4;
Получаем формулу =ПРЕДСКАЗ(LN(Q2);$C$4:$O$4;LN($C$2:$O$2))
Протягиваем формулу, значения логарифмического тренда рассчитаны.
5-й способ — Forecast4AC PRO
Расчет значений логарифмического тренда — с помощью программы Forecast4AC PRO.
1. Устанавливаем курсор в начало временного ряда, выбираем в настройках программы:
— Что рассчитываем — значения тренда;
— Тренд – Логарифмический тренд;
— Временной ряд — месячный;
2. Заходим в меню программы и нажимаем «Start_Forecast» — готово, значения логарифмического тренда рассчитаны!
Для того чтобы рассчитать прогноз с учетом роста и сезонности, мы умножаем рассчитанные значения тренда на коэффициенты сезонности.
Коэффициенты сезонности рассчитаем с помощью программы Forecast4AC PRO (лист » Лист2FYMLn «) или по аналоги, как описано в данной статье, только для рассчета коэффициентов сезонности вместо линейного тренда используем логарифмический.
Теперь значения тренда умножаем на коэффициенты сезонности и прогноз готов.
Отношение прогноза к предыдущему периоду получилось 116%, т.е. прогнозируется рост на 16%.
Как мы можем скорректировать прогнозные значения логарифмического тренда?
Если нас рост не устраивает, и мы планируем, что он будет больше, мы можем увеличить рост, скорректировав коэффициенты логарифмического тренда.
Скорректируем значение «a» и «b» рассчитанного нами выше тренда y=2673492*ln(x)+2913281
При изменении значений «a» и «b» логарифмического тренда y(x)=a*ln(x)+b, получаем увеличение значений тренда, причем увеличение коэффициента «а» на 10% даёт больший рост, чем увеличение коэффициента «b» на 20%.
Теперь рассчитаем коэффициенты сезонности для логарифмического тренда с помощью Forecast4AC PRO (лист » Лист2FYMLn «). Умножим скорректированные значения тренда на сезонность. Также при прогнозировании стоит учесть дополнительные факторы, которые значительно влияют на объём продаж. Прогноз продаж готов!
С помощью программы Forecast4AC PRO вы сможете в Excel одним нажатием клавиши рассчитать значения логарифмического тренда, коэффициенты сезонности и прогноз для более чем 5000 строк одновременно.
Точных вам прогнозов!
Присоединяйтесь к нам!
Скачивайте бесплатные приложения для прогнозирования и бизнес-анализа:
- Novo Forecast Lite — автоматический расчет прогноза в Excel .
- 4analytics — ABC-XYZ-анализ и анализ выбросов в Excel.
- Qlik Sense Desktop и QlikView Personal Edition — BI-системы для анализа и визуализации данных.
Тестируйте возможности платных решений:
- Novo Forecast PRO — прогнозирование в Excel для больших массивов данных.
Получите 10 рекомендаций по повышению точности прогнозов до 90% и выше.
Интерполяция + (линейная | логарифмическая) шкала + С++
Понадобилось мне как-то сделать интерфейс для загрузки в микроконтроллер график функции «сопротивление -> температура» (график решили задавать по нескольким точкам, а потом их интерполировать). По ходу дела выяснилось, что график будет оч-чень нелинейным (180 Ом -> 100 o , 6 000 Ом -> 0 o , 30 000 Ом -> -30 o ). Поэтому пришлось мне погрузиться в тему логарифмических шкал… и сразу вынырнуть, так как я не нашел того, что мне нужно. А нужно-то мне было всего лишь понять математику (и реализацию на С++) таких дел. ЧуднО — вроде такая нужная тема, а не расписано! Ну да ладно — мозги заскрипели и вспомнили высшую математику из университета, и программа была написана. Решил описать я свои мытарства тут — может, кому пригодится.
В этой статье я распишу теорию (а также базовые виртуальные классы), в следующей возьмусь за конкретные реализации средствами Qt.
Осторожно: в тексте много графики!
Откуда растут ноги у задачи
В общем, надо мне сделать регулятор холостого хода — такая штука для автомобиля, которая при холостом ходе в зависимости от температуры двигателя должна поддерживать определенные обороты. Поддерживает она их, регулируя заслонку шаговым двигателем.
В общем, мне надо знать текущую температуру. Было решено измерять ее штатными средствами — с терморезистора. Измеряем падение напряжения на нем — получаем сопротивление. Далее из таблицы (поскольку это микроконтроллер) получаем требуемые обороты.
Таблицу эту надо задать (для этого программа пишется средствами Qt). У меня есть несколько точек «сопротивление => температура». Мне надо для каждого кода АЦП (для ряда значений сорпотивлений) получить соответствующую температуру. Поскольку у разных автомобилей эти значения могут быть разными, то надо на экране, сверившись с таблицей, задать несколько точек на кривой.
По ходу дела оказалось, что график этот будет явно в логарифмическом масштабе. Значит, надо его вывести на экран. Как это сделать — читаем дальше.
Постановка задачи
Давайте немного подробнее опишем что нам надо:
- задание функции — необходимо задать несколько точек, по которым строится график. Вобщем, вспоминаем интерполяцию;
- построение графика функции — да-да, я знаю про Qwt. Может, не очень хорошо я его знаю, т. к. я не нашел в нем следующей возможности:
- интерактивное задание функции — мне нужно двигать точки, по которым строится функция, прямо на экране, в текущих экранных координатах шкалы, которые переводятся в реальное значение;
- линейная/логарифмическая шкала — поскольку значения вот такие, как я написал, мне пришлось заложить возможность менять шкалу. Причем как одну, так и обе сразу.
Вот такое ТЗ… Ну да ничего, я справился! Давайте и вам помогу.
Да, пока не нырнули — спасибо Equation Editor-у от CodeCogs! С их помощью я лихо построил все математические формулы без всяких Microsoft Equation Editor, которые потом надо еще экспортировать в графику со вставкой сюда. Кстати, там есть и русский редактор. В общем, рекомендую!
Ну и если вместо формул вы видите пустые квадратики — это тоже «спасибо» Equation Editor-у…
Прикрепленный Excel-файл
По ходу написания статьи я все расчеты строил и проверял в таблице Excel с формулами. Оказалось очень удобно. И я решил его выложить для общественного пользования. Там внизу перечислены страницы по разделам. На каждой странице параметры, которые можно менять, отмечены как ячейки с желтым фоном. Остальные клетки лучше не трогать. Впрочем, все формулы можно смело смотреть. Скачивайте файлик и пробуйте на здоровье! Если проблемы с файлом — пишите, вышлю.
Функциональная зависимость
Итак, у нас есть некоторая зависимость — обозначим ее как . Здесь у нас — горизонтальная ось графика, — вертикальная. В моем случае было значение сопротивления, — температура.
Почему не ? Ведь вроде бы должно быть так? Так-то оно так, но только в школе в простейшем случае.
— это координаты точки на плоскости. Для простоты определимся использовать Декартову систему координат: задает вертикальное смещение горизонтальной оси относительно нуля, задает горизонтальное смещение вертикальной оси относительно нуля.
Все хорошо тогда, когда мы рисуем на бумаге эту самую систему координат и в ней ставим точки. Там и вправду — выбрали центр, линейкой отложили сюда, потом туда. А вот при построении графика в какой-то программе уже тонкости начинаются — что считать нулем? Что считать за «+», а что за «-«? Я рисую для этой статьи графику в CorelDRAW — там центр считается снизу слева (его можно передвинуть куда надо).
Да и в каких единицах график-то? В сантиметрах? А почему? У меня следующий этап будет реализация на С++ средствами Qt, так там я сделаю окно QWidget, у которого по умолчанию ноль — это слева сверху; единицы измерения — экранные пиксели.
Ну и не забываем о том, что это все эти красивые рассуждения справедливы пока что для линейной шкалы, а у нас маячит за горизонтом логарифмическая. Там вообще черт знает что будет!
Но это только лишь точка. А у нас будет какая-то линия, точнее — много линий. Что там будут за преобразования?
Вот именно поэтому мы с самого начала должны четко разделить функциональную зависимость и преобразования координат.
Итак, давайте договоримся о следующем: у нас есть некоторый абстрактный процесс, который описывается функциональной зависимостью . При отображении на экран используется преобразование в координаты , где , . Следующие шаги — это прояснить эти самые и .
Но отложим пока в сторону координаты — нам надо как-то задать нашу функцию (помните ТЗ)? Причем задать в тех самых абстрактных координатах . Этим и займемся.
Интерполяция
В моем случае был известен ряд точек :
, Ω | , ˚ |
---|---|
180 | 100 |
6 000 | 0 |
30 000 | -30 |
Не ахти какая сложна и большая таблица, но тут явно куча пустых мест. А какое сопротивление соответствует 60˚, -40˚, . В общем, надо проставить отсутствующие точки. И в этом нам помогут интерполяция, аппроксимация и экстраполяция. Впрочем, не пугайтесь — одной интерполяции хватит за глаза.
Методов интерполяции много, все рассматривать я тут не буду. Лично мне приглянулся вначале интерполяционный многочлен Лагранжа. Он весьма прост в расчете и реализации, а также в настройке. Там предполагается, что задано множество из точек вида (тут мы на время таки вернемся к заданию точек в виде — так уж принято в математике).
Многочлен вычисляется как , где .
Математика испугала? Хм… Ладно, напишу на языке С++:
Как видите, все достаточно тривиально (насколько тривиальными могут быть полиномы).
Еще одно большое достоинство полиномов Лагранжа — их легко можно промоделировать в таблице Excel-я, что я и делал.
Потом, правда, все стало немного печально, т. к. у этих полиномов, как и у любых других, на графике видны вибрации. Т. е. они не могут дать прямые линии — постоянные значения. В моем случае я не смог их настроить дОлжным образом — они выгибались в явно недопустимые числа. Поэтому мне пришлось от них отказаться…
Работая в Corel, я был близко знаком с кривыми Безье — тоже достаточно удобное и простое представление табличных данных. Весьма легко реализуется в программировании. Однако это уже не интерполяция, а, скорее, аппроксимация, т. к. тут приходится подгонять кривую к нужному виду.
В итоге, внимательно присмотревшись к своей функции, я понял, что у меня вполне прокатит кусочно-линейная интерполяция — прямые отрезки между заданными линиями. Не то, чтобы совсем уж фен-шуйно, но зато легко реализуемо и удобно настраиваемо.
Говоря языком математики, мы между точками и проводим прямые линии вида .
Опять же, на языке С++ это будет выглядеть так:
Тоже ничего революционного, не так ли?
Есть одно существенное различие между полиномом Лагранжа и линейной интерполяцией: у первого нельзя явно задать значения за пределами точек — они вычисляются, у второго можно это дело контролировать. Также и поэтому я в конечном итоге остановился на линейном варианте. Более того — в логарифмическом масштабе, к которому я стремился, линейные отрезки дают более подходящий мне вариант.
Впрочем, не будем заморачиваться сейчас на методах интерполяции. Давайте лучше мы сделаем базовый класс, от которого будем наследовать реализации различных методов $#*@!поляции.
Базовый класс для задания/расчета функции
Что этот класс должен уметь делать? Мне кажется, что такой класс должен:
- давать значение функции в зависимости от аргумента — собственно, ради чего мы его и городим;
- реагировать (перемещать и пересчитывать) на изменение точек интерполяции — на вход подается факт нажатия/отпускания в некоторой координате, в результате чего производится пересчет параметров;
- различать одиночный и двойной щелчок мышки — одиночное нажатие, как по мне, указывает на передвижение точки; двойное создает новую точку;
- прорисовывать точки интерполяции как при их движении, так и без оного — т. к. у разных методов интерполяции будет разное интуитивно понятное значение точек интерполяции, то и выводить их должен производный класс (например, в интерполяции точка является частью графика; в аппроксимации точка не обязательно лежит на графике; в кривых Безье часть точек лежит на графике, часть задают форму);
- давать координаты текущей передвигаемой точки — это нужно для вывода текста координаты данной точки;
- давать сервисную информацию — например, «определена ли функция?», «сколько точек для интерполяции используется?», «получить координаты точек» и т. п. Эти данные позволят сохранить текущие настройки;
- производить настройку — «распределить столько-то точек», «задать координаты точки» — это нам позволит восстановить сохраненные настройки.
Еще есть мысли? Если будут — пишите в комментариях, добавим!
Получается такой вот класс:
(Тем, кто недоволен моим стилем и структурой — предложите объективно лучше!)
(Тем, кто найдет ошибки в коде — спасибо!)
Думаю, тут все очевидно.
Для координат используется представление точки в виде QPointF (пара чисел в виде qreal, qreal. «На всех платформах, кроме ARM, используется double» — так написано для Qt 4.8).
Нажатия на кнопки мышки реализованы функциями MouseClicked , MouseDblClicked , MouseReleased и MouseMove . Предполагается, что в конкретных реализациях будут соответствующие реакции.
Для прорисовки точек используются методы DrawPoints и DrawCurPoint . Если для всех методов, кроме этих, координаты используются абстрактные, то тут нужны самые что ни на есть экранные. Поэтому сюда передаются два объекта класса ScaleBase для преобразований. Этот класс — тоже виртуальный. Его предки реализуют преобразование из абстрактных координат в текущие экранные. Сам же этот класс будет описан ниже.
Текущее значение функции возвращает метод f (const qreal) и перегруженная операторная функция operator() (const qreal) .
Для задания структуры используются функции set_points (Num) — задание количества точек, point (Num) , set_point (Num) , get_point (Num) — задание координат конкретной точки. num_points () const — возвращает количество точек, point (Num) const , get_point (Num) const возвращают координаты точки. is_specified () const возвращает true , если структура функции задана.
В следующей статье мы распишем пару вариантов реализации этого класса.
Функция преобразования для вертикальной/горизонтальной шкалы
Есть линейные и логарифмические шкалы. Учитывая, что вертикальная шкала может быть сделана в одном формате, а горизонтальная — в другом, мы получаем четыре варианта графика:
Вариант первый — обе шкалы линейные. Вариант второй — обе логарифмические. Варианты третий и четвертый — смешанные графики. Кстати, в моем случае именно смешанный случай в итоге и подошел, т. к. по горизонтали у меня потребовался логарифмический масштаб, по вертикали — линейный.
Следовательно, задачу отображения нужно решать отдельно для обеих осей.
Напомним, что при отображении на экран используется преобразование в координаты , где , . Наша дальнейшая задача — построить эти функции для линейного и логарифмического случаев.
Что это за функции такие? На вход они получают координату в абстрактных (для компьютерной подпрограммы отображения на экран) координатах, на выход дают в экранных («экранные» координаты будут для разных операционных систем разными»). Для расчета им нужно знать следующее:
- пределы абстрактных координат — те предельные значения аргумента и функции, что нас интересуют. Это будут , для горизонтальной оси и , для вертикальной. Не нужно допускать классическую ошибку: , ! В приведенном примере это проиллюстрировано;
- пределы экранных координат — границы картинки, в которой рисуется график. Естественно, в текущих экранных координатах. На графике это , для горизонтальной оси и , для вертикальной;
- шаг экранной координаты — текущий шаг пикселя , . В простом случае это будет единица. Но в Qt вертикальный ноль — это верх окна. Следовательно, . А еще могут быть применены всякие трансформации, и шаг уже будет отнюдь не единичным.
Обратите внимание — для задачи преобразования не важно, вертикальная это ось или нет! Она (задача) оперирует граничными значения входного, выходного, а также шагом выходного параметров. Следовательно, задачу можно обобщить: необходимо преобразовать параметр на основе его пределов , в выходную величину с учетом ее пределов , и шага . Тут намеренно введены обозначения , вместо привычных , , т. к. иначе будет путаница. Одно существенное дополнение: val_
Базовый класс для преобразований шкал
Давайте сформулируем желаемую функциональность виртуального класса преобразований для шкалы, от которого будут унаследованы реализации шкал:
- преобразований из экранных координат в абстрактные и наоборот — логично, ради этого мы его и делаем;
- настройка преобразования — это тоже логично;
- свойства — текущие свойства преобразования (минимальные/максимальные значения, шаг для разных значений);
- информация по сетке — позиции для крупной и мелкой сетки, подписи под шкалой.
Реализация может выглядеть так:
Настройка шкалы производится функциями set_. (Val) . Пересчет необходимых значений должен производится в этих же функциях. При изменении размера окна вызывается метод Resized (Size) .
Для повышения производительности можно один раз рассчитать соответствие точки на экране и ее значение в исходных, абстрактных координатах. Этот массив возвращается методом scr_values () const . Далее, для построения крупной и мелкой сетки рассчитываются массивы (возвращают их, соответственно, функции scr_maj_grid () и scr_min_grid () ). Длина массива соответствует количеству оных линий, значение — смещению относительно начала шкалы на экране (т. е. индексу первого массива). Также заранее рассчитываются два массива — текст подписи к шкале (функция scr_text_str () ) и смещения этих подписей относительно начала (функция scr_text_pos () ).
Наконец, прямое преобразование — из абстрактных в экранные координаты — производится функцией scr (Val) , обратное — функцией val (Scr) .
Линейное преобразование
Давайте отдельно рассмотрим линейное преобразование для горизонтальной и вертикальной оси.
Мы имеем некоторую функцию — кривую в одном представлении. Для другого нам пришлось ее сузить и сместить вправо (окно на экране уменьшили и сдвинули вправо). Для другого представления нам пришлось сместить ее влево (окно сдвинули влево). Как это описывается математически? Достаточно просто: . В первом случае, похоже, , во втором .
В другом случае нам пришлось сузить вертикальное представление кривой и сдвинуть вверх. А потом и вообще — перевернуть. Оба этих преобразования описываются как . В первом случае , 0″ alt=»image»/>. Во втором случае .
Оба преобразования имеют одно и то же математическое описание: . В данном описании есть две константы, которые определяют преобразование — и . Первая определяет угол наклона, вторая — смещение относительно нуля.
Расчет этих констант достаточно прост — это решение системы двух уравнений:
Еще важно уметь делать обратное преобразование — скажем, координаты указателя мыши перевести в абстрактные координаты. Также ничего сложного:
Шаг в данном случае для расчета не используется, но он потом нам пригодится в реализации на С++ для расчета смещения.
Как это будет использоваться на практике? Да все просто! Горизонтальное преобразование: — граница картинки графика, соответствующая (как правило, слева), — (как правило, справа), — шаг вывода картинки по горизонтали. Вертикальное преобразование — аналогично, но по вертикали (у нас в Qt будет нижней границей картинки, — верхней, причем scr_
Логарифмическое преобразование
А теперь окунемся туда, ради чего все это закрутилось:
(на графике не логарифм нарисован, а что-то похожее на него. Сделано это специально, т. к. логарифм тут будет не очень нагляден)
Если один и тот же на всей шкале, то будет везде разным! По какому закону он меняется? Правильно — по логарифмическому! Давайте первым делом научимся определять этот самый .
Всего точек у нас будет (например, , , ; тогда у нас будет 3 точки). Этому соответствует диапазон входных значений . Значению соответствует , соответствует . Последняя точка имеет индекс . Чему соответствует ?
Для линейной шкалы , где определяется диапазоном входных значений. Тут можно поступить аналогично, только вместо умножения будет возведение в степень: (помним, что ). Есть один, правда, ньюанс: при у нас , а должно бы. Это решается просто — вычтем единицу: . И тогда для нулевого случая все сходится. Как рассчитать в данном случае? Есть разные варианты. Я это предпочитаю сделать следующим образом.
Нам известно, что . В то же время мы теперь знаем, что . Получается уравнение: . Решим его относительно : . Вспомнив, чему равно и заменив корень возведением в степень, получим приемлемый для компьютера вид: (напоминаю, что val_
Фактически, мы получили алгоритм преобразования из экранной координаты в абстрактную — обратная задача. Теперь режим прямую задачу — преобразование из абстрактной координаты в экранную. Задача решается несложно. Фактически, нужно найти , а для него несложно и .
Для нахождения надо решить уравнение относительно : . Ну а дальше уже из свойств логарифма получим, что . Ну и далее, рассматривая экранные координаты как линию с наклоном, получим, что (для полной красоты надо еще заменить на ).
Вроде бы базовую математику рассмотрели. Нашли ошибки или неточности — пишите в комментариях, буду благодарен!
Со временем напишу следующую статью — реализацию этой математики средствами Qt языка C++.
Логарифмическая шкала для Форекс
достоинство лог шкалы это хорошеевизуальное отображение мелких деталей рядом с крупными, а то появился пик — и все, вся мелочь невидна
Опции: |
Свой человек
Зарегистрирован: 09/12/2003
Сообщений: 98
Re: Логарифмическая шкала для индикатора [re: Xaoc] # 49631 — 07/10/2004 22:37 |
|
———————
Углы губ в улыбке пропорциональны степени свободы (с) С.Лец
Опции: |
|
|