Антон Ш
Антон Ш личный блог
12 ноября 2016, 18:18

ABC Easy/power language Урок 5.

Урок 1.
Урок 2.
Урок 3.
Урок 4.

Урок 5. Текст и линии тренда.

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

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

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

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

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

 Программная логика.

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

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

  Как видно, работы не очень много. Давайте создадим новый индикатор в PowerLanguage редакторе. Дадим, ему запоминающееся имея, чтобы мы смогли легко найти его позже. Я начну с кода для линий и текста, и я постараюсь сделать так, чтобы этот код работал как на Multicharts, так и на Tradestation. Это означает, что я не буду включать некоторые зарезервированные слова, которые используются в Multicharts, и вы убедитесь, что это никак не повлияет на результат.  Теперь давайте взглянем на код для создания текста и линий.

Линии.

  Каждую линию, которую вы создадите с помощью кода, имеет специальный ID, который вы можете использовать для последующей модификации этой линии. Вам не нужно беспокоиться о создании этого ID, так как программа создает его сама. Единственное, что мы должны сделать, так это присвоить значение ID переменной, для того чтобы мы могли использовать его позже. Линия рисуется при помощи зарезервированного слова “TL_New”, после чего следуют шесть параметров в скобках. Когда мы хотим нарисовать линию в реальной жизни, или в программном коде, нам нужно иметь как минимум две точки – начальную точку и конечную точку. Однако вы можете не ограничиваться только этими двумя точками, вы можете добавлять справа и слева неограниченное количество точек. Почему у “TL_New” шесть параметров? Эти шесть параметров нужны для установки двух точек  на графике. Когда вы посмотрите на график, то вы увидите, что расположение каждого значения можно описать тремя параметрами – дата, время и цена этого значения. А так как нам нужно указать две опорные точки, то “TL_New”, включает 6 параметров:

ABC Easy/power language Урок 5.

Вот как это выглядит на графике.

ABC Easy/power language Урок 5.

  Переместитесь на начало графика, и найдите линию. Скорее всего, линия оранжевого цвета, так как это стандартный цвет, но не волнуйтесь если вы видите другой цвет.  

  При помощи пары дополнительных зарезервированных слов мы сможем изменить цвет, размер, и стиль нашей линии. Первый параметр зарезервированного слова, который меняет свойства линии – это всегда ID, иначе программа не будет знать, какую линию необходимо изменить. “TL_SetColor” устанавливает цвет линии, “TL_Setsize”  устанавливает толщину линии от 0 до 6, TL_SetStyle устанавливает стиль линии, в соответствии со списком расположенным внизу.  Хотя это не имеет значения, если вы используете зарезервированные слова, такие как “Tool_Solid”,  “Tool_Dashed” и подобные меняющие стиль слова. Я буду использовать эти значения в течении всего урока.
ABC Easy/power language Урок 5.
Добавим зарезервированное слово, и параметры, для того чтобы изменить внешний вид линии.

ABC Easy/power language Урок 5.

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

ABC Easy/power language Урок 5.

Текст.

  Так же как и для линий, для текста нужны опорные точки, но правда, только одна, в отличие от линии. Помимо трех параметров, таких как Date, Time и Price, у зарезервированного слова “Text_New” есть еще четвертый параметр для текстовой строки, которая должна быть создана на графике. Как и линия, каждый текстовый объект имеет свой ID, который вы можете использовать, чтобы изменить вид текста. Простейший код для создания текста в EasyLanguage выглядит так:

ABC Easy/power language Урок 5.

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

 ABC Easy/power language Урок 5.

  Вот как это должно выглядеть в итоге:

ABC Easy/power language Урок 5.

   Результат выглядит не очень привлекательно, так как текст расположен на середине последнего бара и в конце нашей лини. При помощи зарезервированных слов, мы можем изменить результат, и улучшить внешний вид текста. Помимо того, что мы можем менять цвет и размер текста, мы можем поменять расположение текста относительно бара, и относительно цены. Это делается при помощи зарезервированного слова “Text_SetStyle”, который  имеет три параметра – ID, размещение по вертикали и горизонтали. Горизонтальное размещение имеет три значения:

  1. 0 — Текст будет размещен справа от бара.
  2. 1 — Текст будет размещен слева от бара.
  3. 2 — Текст будет размещен в центре от бара.

Вертикальное размещение так же имеет три значения:

  1. 0 — Текст будет размещен под указанной ценой.
  2. 1 — Текст будет размещен над указанной ценой.
  3. 2 — Размещает текст посередине указной цены.

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

ABC Easy/power language Урок 5.

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

ABC Easy/power language Урок 5.

… Продолжение в следующем уроке.

0 Комментариев

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн