Форекс индикатор ChartBuilder позволяет очень легко строить любые синтетические графики с использованием любого количества торговых инструментов. Всё что для этого требуется — задать нужную математическую формулу. Например так:
EURUSD / MA(EURUSD,D1,10) — USDCHF / MA(USDCHF,D1,10)
(пробелы между знаками ставить необязательно)
В результате строится график:
Для построения берутся цены закрытия соответствующих баров по каждому инструменту.
Поддерживаются только основные арифметические действия: + — * /
Кроме того автор предусмотрел использование некоторых стандартных индикаторных функций: MA, ATR, StdDev, Open, Close, High, Low
Их синтаксис тот же самый что и в языке MQL4 (MA соответствует iMA, ATR соответствует iATR и т.д.).
Т.е. например функция MA имеет такой вид: MA(symbol, timeframe, period, ma_shift, ma_method, applied_price, shift)
Единственное их отличие от MQL — это то что timeframe задаётся в привычном текстовом виде: M1, M5..., H1, D1 и т.д.
При этом можно указывать не все параметры. Например MA(symbol, timeframe, period). Все остальные опущенные параметры заполняются нулями. Можно также пропускать параметры и в начале, но тогда обязательно нужно ставить запятые, чтобы отделять их от последующих.
Если в качестве таймфрейма указывается 0, то берётся текущий таймфрейм. Если таймфрейм вообще не указывается, то по умолчанию используется D1.
Если в качестве символа указывается 0, то берётся текущий символ. Если символ вообще не указывается, то по умолчанию берётся предыдущий символ, использовавшийся ранее в этой же формуле.
Допустим, можно построить график, заданный такой формулой:
EURUSD / MA(EURUSD,D1,10) — GBPUSD / MA(GBPUSD,D1,10)
либо, с учётом допустимых сокращений, его можно задать и так:
EURUSD / MA(,,10) — GBPUSD / MA(,,10)
Теперь немного про настройки индикатора.
Formula1 — в этих четырёх полях собственно и задаются формулы. Для каждой будет построен свой график.
Formula2
Formula3
Formula4
PrecisionDigits — это точность получаемых значений индикатора (количество знаков после запятой). Если задано -1, то точность назначается автоматически.
ShowBidAsk — если стоит TRUE, то отображаются уровни bid/ask для каждого синтетического графика
TimeShiftFromMainChart_minutes — здесь задаётся сдвижка по времени (в минутах) относительно текущего графика
BarTimeSyncSize — синхронизация баров по времени между разными чартами. Здесь задаётся предельное расхождение во времени между барами с разных чартов (либо в виде количества баров, либо в виде количества минут, в зависимости от параметра BarTimeSyncMode_ByMinutes). Если задано -1, то синхронизация не используется
BarTimeSyncMode_ByMinutes — если TRUE, то используются синхронизация по количеству минут, иначе по количеству баров
OnlyClosePrice — если TRUE (по умолчанию), то графики строятся только по ценам закрытия. Если FALSE, то строятся в виде баров с ценами open/close/high/low. Но во втором случае можно будет построить не более двух графиков, ибо количество индикаторных буферов к сожалению ограничено. И кроме того, данный вид отображения графиков будет правдоподобным лишь в том случае, если в формуле присутствует только один торговый символ. Ибо в противном случае для каждого символа необходима внитрибаровая синхронизация с использованием младших таймфреймов, а у меня она не используется. Так что этот режим годится лишь для показа графика "чужого" символа.
DrawMode — режим отображения графика: 0-LINE (по умолчанию), 1-SECTION, 2-HISTOGRAM, 3-POINTS
Color1 — здесь задаются цвета каждого графика
Color2
Color3
Color4
LabelsOnTheRight — если TRUE, то формулы отображатся в правой части графика, иначе в левой (по умолчанию)
SignalValueHigh — здесь можно задать верхний ценовой уровень, при достижении которого линией графика начнут подаваться звукове сигналы, а в лог будет печататься сообщение
SignalValueLow — аналогично для нижнего сигнального уровня
SignaLineHigh — здесь можно указать название верхней сигнальной линии, т.е. любой построенной на графике линии (горизонтальной или трендовой), которая будет являться верхней границей, при пересечении которой будет так же выдаваться сигнал и сообщение.
SignalLineLow — аналогично для нижней сигнальной линии
SignalChartNumber — номер графика, для которого используются сигнальные значения и сигнальные линии