Главная > Обучение > Статьи > Типы переменных в конструкторе Visual JForex: CAN, INS, PER
Типы переменных в конструкторе Visual JForex: CAN, INS, PER

Откройте аккаунт, чтобы оценить удобство работы на MTBankFX.

Рекомендуем вам перед началом работы на реальном аккаунте обязательно потренироваться на демо-аккаунте.

Типы переменных в конструкторе Visual JForex: CAN, INS, PER

CAN – свеча или свечи

В практике конструирования роботов часто приходится получать данные по историческим барам. Например, их минимальные или максимальные цены (low, high). Для этого в конструкторе Visual JForex есть переменные типа candle и candles. Рассмотрим их особенности и как их использовать.

В панели переменных они подсвечиваются розовым цветом и обозначаются сокращением «CAN».

На рабочем пространстве имеют следующий вид.

В действительности CAN – это массив переменных, дающих полную информацию о нужном баре.

Операции с переменными CAN

Чтобы получить информацию о формирующемся баре, достаточно раскрыть уже готовый массив onCandleLastBidCandle (или LastAskCandle).

В нем содержатся все 4 цены свечи – open, high, low, close. Далее идут сведения об объемах, таймфрейме, инструменте, времени.

Однако для получения таких же данных, но о баре на истории, необходимо применить блок Get Historical Candle или Get Historical Candles.

Первый блок даст массив переменных только по одному бару. Второй – сразу по нескольким.

В автосоздаваемых переменных появится массив “candle14” (или любое другое число, конструктор придумывает его сам), в котором содержатся данные по нужному бару. Теперь их можно вставлять в другие блоки.

Множество баров и блок Loop Viewer

Если нужно узнать, например, все цены High последних 5-ти баров, то здесь поочередно применяются блоки Get Historical Candles и Loop Viewer.

Как только мы настроили блок Get Historical Candles, на выходе получаем candles23, однако его нельзя «раскрыть» (см. рис). Это делается через Loop Viewer. В него на первое место ставим candles23, а на выходе создаем новую переменную типа CAN с именем Candles23_LoopViewer (придумайте свое имя).

Этот массив можно раскрыть. Он появляется в пользовательских переменных.

Как работать с массивами свечей, мы расскажем в следующих статьях о блоках.

INS – инструмент: валютная пара, CFD и др.

В левой панели Variables переменная «инструмент» окрашивается желтым и обозначается сокращением “INS”.

На рабочем пространстве он обычно используется в первом блоке IF для выбора рабочего инструмента.

Эта переменная, по аналогии с CAN, на самом деле, тоже является массивом. Хотя чаще она работает как самостоятельная переменная.

Если раскрыть defaultInstrument, то мы получим еще две переменные. Это pipsSize и pipsScale. Они очень полезны, например, для расчета рабочего лота. Что они означают?

Для каждого инструмента pipsSize – это переменная типа Double, которая содержит значение одного пункта. Например, для пар EUR/USD, GBP/USD, USD/CHF и им подобных, где пункт – это 4-я цифра после точки, переменная pipsSize равна 0.0001.

Соответственно, для иеновых пар – USD/JPY, EUR/JPY и т.д. – это 0.01.

pipsScale – буквально «масштаб пункта» - обозначает, какая цифра по счету после точки является одним пунктом. Например, для первого набора валют выше (EUR/USD, GBP/USD и т.д.) – это 4. Для иеновых кроссов – это 2.

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

Тогда наряду с defaultInstrument можно создать сколько угодно новых переменных типа INS.

Кликаем «Создать новую переменную» и в графе «Тип» указываем инструмент. Выбираем валютную пару или CFD, даем имя – новый инструмент готов.

PER – период, или таймфрейм

Большинство роботов, построенных в Visual JForex имеют первые два блока IF, в которых задаются инструмент и рабочий таймфрейм.

В панели переменных PER можно найти в базовых переменных (default variables), onCandle, а также в массивах переменных, дающих подробную информацию по позиции, - Trade Message Position.

Часто период задают в одном из первых блоков любого робота. На изображении в первом блоке задается инструмент, во втором – период.

Как задать рабочий таймфрейм робота

Чтобы задать рабочий таймфрейм, необходимо в блок IF вставить Candle Period из Last Bid Candle, а также defaultPeriod из базовых переменных.

Робот с мультитаймфреймом

Для написания робота, совершающего сделки по нескольким инструментам, создаются дополнительные переменные типа INS.

Точно по такому же принципу создается дополнительная переменная PER.

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

Так получаем две скользящие средние (SMA) разных таймфреймов: рабочего (defaultPeriod – 4-часовой), и дополнительного – Period_2 (например, дневной).

Итоги

Переменные INS и PER являются ключевыми в настройке робота на определенный финансовый инструмент(ы) и рабочий таймфрейм(ы).

С помощью массива переменных CAN возможно получение и использование данных по любым барам из истории.