Блог им. Hummel

ABC Easy/power language Урок 1.

Пару лет назад, на одном иностранном сайте (ABC какойт-то там), я наткнулся на подборку неплохих уроков по easy/power language. После перевода с помощью гугл транслейт, они очень помогли мне освоить этот язык. Пожалуй выложу их здесь. Думаю кому нибудь пригодится.

Урок 1. Первые шаги к пониманию языка EasyLanguge/PowerLanguage

  Отлично, вот вы приступили к первому шагу на пути освоения программы Multicharts и Tradestation. Я очень рад отправиться вместе с вами в это увлекательное приключение.

   В этом уроке я покажу вам основы работы с PowerLanguage и PowerLanguage Editor. Я много думал над тем как лучше сделать эти занятия. С одной стороны, мы бы могли сразу погрузиться в программирование, а теорию я бы объяснял попутно. С другой стороны, мне кажется что лучше, сначала рассказать об основах, и затем строить практику на этом фундаменте. И когда мы будем делать что-то на следующих уроках, у вас уже будет представление о том, что мы будем делать. И эта информация поможет вам в изучении.

  Последний подход, по моему мнению, подойдет лучше для нашей учебы.


   В этом уроке мы начнем знакомиться с PowerLanguage Editor. Вы увидите, какая разница между inputs (вводными) и variables (переменными). Как объявлять и включать их (и конечно, вы узнаете, что означают эти два слова). В конце этого урока вы узнаете о правилах хорошего кода, которые существенно облегчат вашу жизнь, в качестве программиста.

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

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

  Давайте посмотрим на редактор Power Language, где и осуществляется кодирование и компиляция. Если редактор Power Language еще не запущен, то запустите его. Скорее всего, вы увидите подобную картину:

ABC Easy/power language Урок 1.

  Главное окно пусто. Если у вас открыто studies, то оно должно отобразиться в этом окне. Окно navigator справа, позволяет вам быстро получить доступ к вашим studies, и  словарю.

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

   Нижнее окно отображает три различные вкладки:

  • Build передает сообщения от компилятора. Например, если есть проблема с кодом, то эта информация поможет вам найти ошибку.
  • Output показывает информацию, поступающую из ваших studies. Вы можете добавить  код в ваши studies, который будет показывать значение переменных в окне output. Это так же будет полезно для проверки корректности работы вашего study.
  • Окно Help отображает информацию из файла справки. Вы можете выделить ключевое слово,  и нажать на клавишу F1 и редактор Power Language покажет вам справочную информацию для этого ключевого слова. Это может пригодиться, когда вам нужно подробнее узнать о том, как работает, то или иное ключевое слово.

 Давайте создадим новый индикатор, нажав File > New в редакторе PowerLanguage. Это откроет диалоговое окно. Поставьте переключатель в значение Indicator, и нажмите “OK”.

ABC Easy/power language Урок 1.
ABC Easy/power language Урок 1.

  Придумайте название для нашего индикатора. Единственное ограничение заключается в том, что это имя не должно использоваться в другом studies.

   Например, вы можете назвать индикатор “ABC_PowerLanguage Lesson 01”. Это имя будет отображаться на графике, и поможет вам быстро сориентироваться, так как оно отображает цель исследования. Мне нравится использовать префикс ABC_ для обозначения study, которые я разработал для себя или для этого сайта. Для других работ я буду использовать другие названия, чтобы было легче найти то, что мне нужно.  

  Каждое study может иметь inputs (вводную), которым можно назначить значение по умолчанию. Например, вы можете использовать вводную для того чтобы задать значение длины скользящего среднего. Значения вводных для индикаторов и систем могут меняться после того как вы наложили их на график. Так что имеет смысл сделать несколько вводных, чтобы study сделать более удобными.

   Когда вы объявляете вводную, дав ей имя и присвоив значение по умолчанию, вам необходимо определить тип вводной. Всего может быть три различных типа:

  1. Числовой
  2. Текстовый
  3. Логический (true/false)

     Чтобы объявить вводные, нужно использовать ключевое слово “Inputs” (или “Input”), затем “:”, а потом имя и значение по умолчанию в скобках. Вы можете объявить несколько вводных и отделять их запятыми.

  Вот как должны выглядеть три различных вводных:
ABC Easy/power language Урок 1.

  Попробуйте сделать это сами. Введите три Input, и когда закончите, нажмите Compile (или F3).

ABC Easy/power language Урок 1.

Вкладка Build в нижнем окне должна отображать что-то вроде этого:

ABC Easy/power language Урок 1.

  Это окно показывает имя study, время начала и время окончания процесса компиляции. Сообщение указывает на то, что вы только что успешно создали свой первый индикатор в Power Language для Multicharts.  Поздравляю!

  Если вы получили сообщение об ошибке, значит что-то не так с вашим кодом. Сравните ваш код с кодом на скриншоте, и проверьте, есть ли какие-нибудь различия. Причина может оказаться в простой ошибке, например в пропущенной запятой или в незакрытой скобке.

  Вы можете изменить значение вводной в ручную,  но его нельзя поменять при помощи кода, и тогда в игру вступают variables (переменные).   

  Variables(Переменные) используются для хранения числовых, текстовых и логических (истина/ложь) значений.  Значение, сохраненное в переменной можно найти в любом месте скрипта по имени переменной и изменить при помощи кода в любое время. Переменные должны быть объявлены перед использованием.

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

  Так же как и вводные, переменные в Power Language могут быть трех типов:

  1. Числовые переменные,
  2. Текстовые переменные,
  3. Логические переменные (Истина-ложь).

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

  Давайте добавим переменные в код. На скриншоте вы видите три разных вида переменных. После того как вы их объявили нажмите Compile (или F3).
ABC Easy/power language Урок 1.

  Но, это не работает, как ожидалось. Что не так с этим кодом? Посмотрите на окно отладки. Оно даст вам ответ.

ABC Easy/power language Урок 1.

  «Это слово уже определенно». Это относится ко второму названию переменной “A_Boolean_input”. Вы можете использовать только одно такое же имя внутри одного study. В Power Language нет зависимости от регистра.

  Таким образом, для него нет разницы между “VariableName” и “VARIABLENAME”.

  Измените имя переменной как на скриншоте ниже. Компиляция должна пройти без проблем.

ABC Easy/power language Урок 1.
  Пока мы изучаем переменные и вводные, давайте рассмотрим некоторые тонкости в их наименовании.

  Кроме зарезервированных ключевых слов, вы абсолютно свободны в выборе названия для переменных и вводных (за исключением специальных знаков, таких как %, & или $). Это означает, что вы можете назвать переменную var1 или WeightedAverage. Обе они могут хранить ту же самую величину. Тем не менее, последнее название дает представление о назначении переменной. Вы можете значительно облегчить вашу жизнь, когда вы будете использовать понятные имена для переменных и вводных.

  Это пригодиться, когда вы бы будете просматривать свой код в поисках ошибки.

Var1 = Var2 + Var3 * (Var4 – Var2);

ExponentialAverage = Average1BarAgo + WeightingFactor * (PriceValue — Average1BarAgo);

 

Улучшите читаемость вашего кода.

 

   Я считаю, что крайне полезно иметь определенную структуру кода. Это можно сделать при помощи пробелов.  Отступы и пустые строки после блоков кода, облегчат вам жизнь, когда вы будете работать с кодом. Никто не запрещает вам написать весь код в одну строку. Однако, в таком коде гораздо труднее разобраться. Пробелы никак не скажутся на производительности вашего кода в Power Language редакторе, так как компилятор уберет их при компиляции кода, с которым будет работать MultiCharts.

  Объявление наших переменных и вводных может выглядеть по-другому, но это не повлияет на результат. Но это будет гораздо труднее читать.
ABC Easy/power language Урок 1.

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

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

  Существуют два типа комментариев:

  • Комментарии,  от начала и до конца строки.
  • Комментарии, без ограничений по размеру.

  Первый тип комментария начинается с «//», это означает, что вся строка будет отведена под комментарий.

  Второй тип комментария будет начинаться с открывающей фигурной скобки «{» и заканчиваться закрывающей фигурной скобкой  « }».
ABC Easy/power language Урок 1.

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

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

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

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


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

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

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




 






 

 



















★9
1 комментарий
Долго чесал репу — как назвать inputs, — по русски обычно называют константой. Но я решил перевести как «вводная», по смыслу это больше подходит.
avatar

теги блога Антон Ш

....все тэги



UPDONW
Новый дизайн