Автор Тема: Индикаторы  (Прочитано 733382 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн zennin

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 78
  • +7/-1
    • Просмотр профиля
Всем добрый день.
Помогите пожалуйста с индикатором #MTF_MovingAverage, изображение скользящей средней с другого таймфрейма.
К сожалению в програмировании "не бум-бум", не могли бы мне помочь с одной деталью в этом индикаторе? При использовании параметра MA_Shift, положительных значений, т.е. со сдвигом вперед, линия скользящей средней обрезается на последнем, текущем баре. Что нужно прописать в коде, чтобы этого не происходило, т.е. линия сдвинутой вперед средней изображалась и в будущем.
Заранее благодарю.

Оффлайн Sadhu

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 388
  • +62/-23
    • Просмотр профиля
Re: Индикаторы
« Ответ #451 : 23.10.2008 20:06 »
Во входные параметры дописать extern int Shift=0; а в инит прописать SetIndexShift(0,Shift);

Оффлайн zennin

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 78
  • +7/-1
    • Просмотр профиля
Re: Индикаторы
« Ответ #452 : 23.10.2008 21:45 »
Во входные параметры дописать extern int Shift=0; а в инит прописать SetIndexShift(0,Shift);
Спасибо Sadhu за содействие... но что-то не так выходит.
наверно так объяснил.
выкладываю рисунок, чтобы более наглядней и индюк такой же, но в первом, что я выкладывал как-то не так рисуется

Оффлайн mastercel

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 222
  • +53/-3
    • Просмотр профиля
Re: Индикаторы
« Ответ #453 : 24.10.2008 19:46 »
Доброго времени суток! В программировании понимаю но совсем немного. Работал с экспертами основанными на стандартных индикаторах. Но сейчас необходимо создать эксперт в котором будет выдаваться звуковой сигнал при изменении сигнала индикатора Triggerlines. Понятия не имею как получать данные с нестандартного индикатора. Не могли бы вы мне помочь?

Оффлайн Sadhu

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 388
  • +62/-23
    • Просмотр профиля
Re: Индикаторы
« Ответ #454 : 24.10.2008 19:47 »
SetIndexShift задает сдвиг в барах. Сответственно, чтобы получить сдвиг на шаг, надо знать длину шага в барах. Если речь идет о недельной средней на дневном графике, то сдвиг равен 5 (или 6 в зависимости от дц).

Оффлайн Sadhu

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 388
  • +62/-23
    • Просмотр профиля
Re: Индикаторы
« Ответ #455 : 24.10.2008 19:49 »
Цитировать
Понятия не имею как получать данные с нестандартного индикатора.
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)
Расчет указанного пользовательского индикатора. Пользовательский индикатор должен быть скомпилирован (файл с расширением EX4) и находиться в директории каталог_терминала\experts\indicators.
Параметры:
symbol   -   Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
timeframe   -   Период. Может быть одним из периодов графика. 0 означает период текущего графика.
name   -   Имя пользовательского индикатора.
...   -   Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
mode   -   Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.
shift   -   Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

Пример:
  double val=iCustom(NULL, 0, "SampleInd",13,1,0);

 

Оффлайн mastercel

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 222
  • +53/-3
    • Просмотр профиля
Re: Индикаторы
« Ответ #456 : 24.10.2008 20:59 »
Цитировать
Понятия не имею как получать данные с нестандартного индикатора.
double iCustom( string symbol, int timeframe, string name, ..., int mode, int shift)
Расчет указанного пользовательского индикатора. Пользовательский индикатор должен быть скомпилирован (файл с расширением EX4) и находиться в директории каталог_терминала\experts\indicators.
Параметры:
symbol   -   Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
timeframe   -   Период. Может быть одним из периодов графика. 0 означает период текущего графика.
name   -   Имя пользовательского индикатора.
...   -   Список параметров (при необходимости). Передаваемые параметры должны соответствовать порядку объявления и типу внешних (extern) переменных пользовательского индикатора.
mode   -   Индекс линии индикатора. Может быть от 0 до 7 и должен соответствовать индексу, используемому одной из функций SetIndexBuffer.
shift   -   Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

Пример:
  double val=iCustom(NULL, 0, "SampleInd",13,1,0);

Что такое " Индекс линии индикатора"? И например если прописать double val=iCustom(NULL, 0, "Triggerlines",...), то в переменной val не будет изменение показания индюка. val так и остается равным 0.

Оффлайн zennin

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 78
  • +7/-1
    • Просмотр профиля
Re: Индикаторы
« Ответ #457 : 24.10.2008 21:29 »
SetIndexShift задает сдвиг в барах. Сответственно, чтобы получить сдвиг на шаг, надо знать длину шага в барах. Если речь идет о недельной средней на дневном графике, то сдвиг равен 5 (или 6 в зависимости от дц).
всё понял... работает, спасибо за помощь

Оффлайн mastercel

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 222
  • +53/-3
    • Просмотр профиля
Re: Индикаторы
« Ответ #458 : 24.10.2008 21:58 »
Сейчас попробовал в советник прописать double val= iCustom(NULL, 0, "Triggerlines",30,15,1,0,0), где 30 и 15 это внешние параметры индюка. В результате он мне в val выдает ту цену напротив которой он находится на графике. А как мне получить изменение показаний этого индюка? То есть смену его цвета

Оффлайн SSP

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 166
  • +30/-25
    • Просмотр профиля
Re: Индикаторы
« Ответ #459 : 24.10.2008 22:02 »
Сейчас попробовал в советник прописать double val= iCustom(NULL, 0, "Triggerlines",30,15,1,0,0), где 30 и 15 это внешние параметры индюка. В результате он мне в val выдает ту цену напротив которой он находится на графике. А как мне получить изменение показаний этого индюка? То есть смену его цвета
Это надо смотреть индюка. Приложите, взгляну.

Оффлайн mastercel

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 222
  • +53/-3
    • Просмотр профиля
Re: Индикаторы
« Ответ #460 : 24.10.2008 22:59 »
Сейчас попробовал в советник прописать double val= iCustom(NULL, 0, "Triggerlines",30,15,1,0,0), где 30 и 15 это внешние параметры индюка. В результате он мне в val выдает ту цену напротив которой он находится на графике. А как мне получить изменение показаний этого индюка? То есть смену его цвета
Это надо смотреть индюка. Приложите, взгляну.
Индюк я выпладывал в первом своем посте. Но выложу еще раз. Кстати тут поковырялся и прописал в mode значение равное 3. В результате обнаружил что когда индюк показывает продажу то в val прописывается последовательность цифр "2147483647", а если продажу то просто ценовое значение индикатора, в результате написал такое:
if (iCustom(NULL, 0, "Triggerlines",30,15,1,3,0)==2147483647)
  Alert ("Продаем");
    else  Alert ("Покупаем");
Все работает, но если с профессиональной точки зрения это делается по другому, то прошу меня поправить.

Оффлайн SSP

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 166
  • +30/-25
    • Просмотр профиля
Re: Индикаторы
« Ответ #461 : 24.10.2008 23:25 »
Сейчас попробовал в советник прописать double val= iCustom(NULL, 0, "Triggerlines",30,15,1,0,0), где 30 и 15 это внешние параметры индюка. В результате он мне в val выдает ту цену напротив которой он находится на графике. А как мне получить изменение показаний этого индюка? То есть смену его цвета
Это надо смотреть индюка. Приложите, взгляну.
Индюк я выпладывал в первом своем посте. Но выложу еще раз. Кстати тут поковырялся и прописал в mode значение равное 3. В результате обнаружил что когда индюк показывает продажу то в val прописывается последовательность цифр "2147483647", а если продажу то просто ценовое значение индикатора, в результате написал такое:
if (iCustom(NULL, 0, "Triggerlines",30,15,1,3,0)==2147483647)
  Alert ("Продаем");
    else  Alert ("Покупаем");
Все работает, но если с профессиональной точки зрения это делается по другому, то прошу меня поправить.

1. Третий параметр (после ..,30,15, 1 ...) лишний, его надо убрать

2.Я бы на бай (закрытие селла) поставил условие
(iCustom(NULL, 0, "Triggerlines",30,15,0,0)>iCustom(NULL, 0, "Triggerlines",30,15,1,0))
3.на селл (закрытие бая) условие
(iCustom(NULL, 0, "Triggerlines",30,15,0,0)<iCustom(NULL, 0, "Triggerlines",30,15,1,0))

4. 2-я и 3-я линии работают, но только на бае, дублируют 0-ю и 1-ю соответственно

 

Оффлайн mastercel

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 222
  • +53/-3
    • Просмотр профиля
Re: Индикаторы
« Ответ #462 : 25.10.2008 10:51 »
Спасибо за отзывчивость! Попробую как вы советуете  :-)

Оффлайн Craft

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 9
  • +0/-0
    • Просмотр профиля
Re: Индикаторы
« Ответ #463 : 26.10.2008 00:36 »
Hi, братья!
Подскажите, каким индюком строятся волны Эллиота (EWA) на присоединённом изображении.

Оффлайн БИК

  • Thank You
  • -Given:
  • -Receive:
  • Сообщений: 106
  • +11/-0
    • Просмотр профиля
Re: Индикаторы
« Ответ #464 : 27.10.2008 01:03 »
Здравствуйте!
Ни каким, это ручная разметка, и скрипт на котором отражена нумирация волн. Бирешь готовый символ и ставишь по своему усмотрению на волну ( размечаешь на свой страх и риск). Таких скриптов в инете валом.