Индикаторы: ChartBuilder

 

ChartBuilder:

Позволяет легко строить любые синтетические графики с участием любого количества торговых интрументов. Достаточно лишь задать формулу.

Author: Alexey Navoykov

 

Для стат. арбитража при построении соответствующих синтетиков необходимы либо функции возведения в степень (с умножением), либо взятие логарифма (со сложением).

 
hrenfx:

Для стат. арбитража при построении соответствующих синтетиков необходимы либо функции возведения в степень (с умножением), либо взятие логарифма (со сложением).

Ок, учту это пожелание. Хотя честно говоря впервые слышу о такой необходимости. Видимо у вас какая-то изощрённая форма стат.арбитража.
 

А как прописать индикатор в советнике? Что-то типа,

iCustom(NULL, 0, "ChartBuilder",Formula1,Formula2,Formula3,PrecisionDigits, ShowBidAsk,TimeShiftFromMainChart_minutes,BarTimeSyncSize,......,0, 0); ?

И будет ли он тестировать на двух(трех, четырех) инструментах?

 
prononsens:

А как прописать индикатор в советнике? Что-то типа,

iCustom(NULL, 0, "ChartBuilder",Formula1,Formula2,Formula3,PrecisionDigits, ShowBidAsk,TimeShiftFromMainChart_minutes,BarTimeSyncSize,......,0, 0); ?

И будет ли он тестировать на двух(трех, четырех) инструментах?

Ну в принципе да, прописывается именно так, только там у вас Formula4 пропущена.

А насчёт "тестировать на двух (трёх, четырёх) инструментах" я не понял, что вы имеете ввиду.

Кстати, если кому нужно делать расчёт формулы в советнике, то можно использовать импорт внешних функций из индикатора, у меня они там специально предусмотрены.

Вначале для создания формулы с индексом n нужно вызвать функцию функцию: bool SetFormula(string formula, int n);

А потом при необходимости расчёта: bool CountMyFormulaValue(int n, int bar, double& result[]);

где result[0] будет содержать вычисленное значние

А также есть расширенная функция, где можно указать доп.параметры: bool CountMyFormulaValueExt(int n, int bar, int param[], double& result[]);
где param[0]=TimeShiftFromMainChart_minutes; param[1]=BarTimeSyncSize (в минутах)

 
Алексей, идея построения такого индикатора - супер.
Вопросы "по ходу":
1)как должна выглядеть формула чтобы отобразить график индекса отдельной валюты (например USD)
2)как задать в формуле конкретное значение пары в истории (как константу). Например, курс евробакса в момент 2012.02.27 10:04 Close. И\или значение пары n баров (минут, часов) назад.
3) неплохо было бы если ввести режим отображения inverse. (или это проще осущесвить задав в самой формуле: 1/f?)
 
Pavlo:
Алексей, идея построения такого индикатора - супер.
Вопросы "по ходу":
1)как должна выглядеть формула чтобы отобразить график индекса отдельной валюты (например USD)
2)как задать в формуле конкретное значение пары в истории (как константу). Например, курс евробакса в момент 2012.02.27 10:04 Close. И\или значение пары n баров (минут, часов) назад.
3) неплохо было бы если ввести режим отображения inverse. (или это проще осущесвить задав в самой формуле: 1/f?)

Что касается формул индексов, то там для них необходимы операции возведения в степень. Меня уже тут просили добавить такую возможность. И я уже реализовал это в обновлённой версии индикатора, вот теперь жду когда модераторы проверят её и выложат здесь.

Чтобы взять значение цены в конкретный момент времени, можно воспользоваться функциями LineOpen, LineClose, LineHigh, LineLow. Описание их я давал выше.

Насчёт inverse вы уже сами ответили :) Весь смысл моего индикатора именно в том, чтобы избавиться от кучи всяких параметров, коэффициентов и режимов, заменив их одной лишь формулой.

p.s. Кстати, заметил что рейтинг моего индикатора снижается прям не по дням, а по часам :) Ещё несколько дней назад он был 10, потом стал 5, сейчас уже 3.3... Интересно, кому это мой индикатор так не угодил...

 
Meat:
Pavlo:
Алексей, идея построения такого индикатора - супер.
Вопросы "по ходу":
1)как должна выглядеть формула чтобы отобразить график индекса отдельной валюты (например USD)
2)как задать в формуле конкретное значение пары в истории (как константу). Например, курс евробакса в момент 2012.02.27 10:04 Close. И\или значение пары n баров (минут, часов) назад.
3) неплохо было бы если ввести режим отображения inverse. (или это проще осущесвить задав в самой формуле: 1/f?)

Что касается формул индексов, то там для них необходимы операции возведения в степень. Меня уже тут просили добавить такую возможность. И я уже реализовал это в обновлённой версии индикатора, вот теперь жду когда модераторы проверят её и выложат здесь.

Чтобы взять значение цены в конкретный момент времени, можно воспользоваться функциями LineOpen, LineClose, LineHigh, LineLow. Описание их я давал выше.

Насчёт inverse вы уже сами ответили :) Весь смысл моего индикатора именно в том, чтобы избавиться от кучи всяких параметров, коэффициентов и режимов, заменив их одной лишь формулой.

p.s. Кстати, заметил что рейтинг моего индикатора снижается прям не по дням, а по часам :) Ещё несколько дней назад он был 10, потом стал 5, сейчас уже 3.3... Интересно, кому это мой индикатор так не угодил...


Если не в тягость, не можна ль немного поподробнее про функции LineOpen, LineClose, LineHigh, LineLow. А то у меня ни красной линни, ни графика - черное табло индикатора, даже на написаном вами примере LineClose(EURUSD,M15,0). Мало того, сам принцип как можно указать конкретное время неясен.
 
Pavlo:
Если не в тягость, не можна ль немного поподробнее про функции LineOpen, LineClose, LineHigh, LineLow. А то у меня ни красной линни, ни графика - черное табло индикатора, даже на написаном вами примере LineClose(EURUSD,M15,0). Мало того, сам принцип как можно указать конкретное время неясен.

Введите например такую формулу: EURUSD-LineClose(EURUSD) и увидите красную линию. Перемещайте её и наблюдайте за значениями индикатора. Сама форма графика разумеется будет неизменна, а вот цифры будут меняться.

 
Meat:
Pavlo:
Если не в тягость, не можна ль немного поподробнее про функции LineOpen, LineClose, LineHigh, LineLow. А то у меня ни красной линни, ни графика - черное табло индикатора, даже на написаном вами примере LineClose(EURUSD,M15,0). Мало того, сам принцип как можно указать конкретное время неясен.

Введите например такую формулу: EURUSD-LineClose(EURUSD) и увидите красную линию. Перемещайте её и наблюдайте за значениями индикатора. Сама форма графика разумеется будет неизменна, а вот цифры будут меняться.


Красная линия появилась. Но она не фиксируется на месте, а "бегает" вместе с прокруткой графика. Кроме того, я все равно не понимаю (вы уж извините за назойливость) как можно с ее помощью задать хотя бы такую простую формулу как процентное изменение цены относительно определенного момента времени, т.е. f=EURUSD/EURUSD(2012.02.27 20:00)*100. При незафиксированной красной линии это крайне тяжело.
 
Pavlo:
Красная линия появилась. Но она не фиксируется на месте, а "бегает" вместе с прокруткой графика. Кроме того, я все равно не понимаю (вы уж извините за назойливость) как можно с ее помощью задать хотя бы такую простую формулу как процентное изменение цены относительно определенного момента времени, т.е. f=EURUSD/EURUSD(2012.02.27 20:00)*100.
Ну уж не знаю что у вас там бегает. Я проверил, у меня линия на месте стоит.
Причина обращения: