int init()

 

Как вставить  эту функцию в советник? 

int init()

  {

   SetIndexBuffer(2, HighesBuffer);

   SetIndexBuffer(3, LowesBuffer);

   return;

  } 

void OnTick(void) Советник начал писать переделывая Магди сипмл. Суть советника в следующем . Используем ЕМА5 и ЕМА20, Stoc 5,3,3. Если Stoc больше 80 и 5 ЕМА развернулась вниз и 20 ЕМА растет и 5 ЕМА -20 ЕМА >50 пунктов, то вызываем функцию High и записываем в буфер максимальное значение Bars-1. Затем когда Stoc меньше 20 и 5 ЕМА развернулась вверх и 20 ЕМА снижаетсят и 5 ЕМА -20 ЕМА <-50 пунктов, то вызываем функцию Low и записываем в буфер минимальное значение Bars-1. Затем когда в третий раз Stoc больше 80 и 5 ЕМА развернулась вниз и 20 ЕМА растет и 5 ЕМА -20 ЕМА >50 пунктов, то вызываем функцию High и записываем в буфер максимальное значение Bars-1. Когда получено 3 точки для расширения Фибо проверяем растет или снижается. Затем по формулам определяем величину ордера и открываем позицию.

Отсюда вопрос как в советнике объединить  void OnTick(void)  и  int init(). Заодно объясните чайнику, что такое глобальная область видимости?

 
gergi:

Как вставить  эту функцию в советник?

int init()

  {

   SetIndexBuffer(2, HighesBuffer);

   SetIndexBuffer(3, LowesBuffer);

   return;

  } 

Эту - никак. В советник уже есть своя функция инициализации
 
gergi:

Как вставить  эту функцию в советник? 

int init()

  {

   SetIndexBuffer(2, HighesBuffer);

   SetIndexBuffer(3, LowesBuffer);

   return;

  } 

void OnTick(void) Советник начал писать переделывая Магди сипмл. Суть советника в следующем . Используем ЕМА5 и ЕМА20, Stoc 5,3,3. Если Stoc больше 80 и 5 ЕМА развернулась вниз и 20 ЕМА растет и 5 ЕМА -20 ЕМА >50 пунктов, то вызываем функцию High и записываем в буфер максимальное значение Bars-1. Затем когда Stoc меньше 20 и 5 ЕМА развернулась вверх и 20 ЕМА снижаетсят и 5 ЕМА -20 ЕМА <-50 пунктов, то вызываем функцию Low и записываем в буфер минимальное значение Bars-1. Затем когда в третий раз Stoc больше 80 и 5 ЕМА развернулась вниз и 20 ЕМА растет и 5 ЕМА -20 ЕМА >50 пунктов, то вызываем функцию High и записываем в буфер максимальное значение Bars-1. Когда получено 3 точки для расширения Фибо проверяем растет или снижается. Затем по формулам определяем величину ордера и открываем позицию.

Отсюда вопрос как в советнике объединить  void OnTick(void)  и  int init(). Заодно объясните чайнику, что такое глобальная область видимости?

  

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

Если будете редактировать то у Вас диалог не получится. 

 
Vinin:

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

Если будете редактировать то у Вас диалог не получится. 

Vinin:

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

Если будете редактировать то у Вас диалог не получится. 

Я разобрался  как использовать буфер и получить значение цены. Пока вопросов нет спасибо.
 
Vinin:

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

Если будете редактировать то у Вас диалог не получится. 

Доброго времени суток. Посмотрите пожалуйста код. При написании нет ни ошибок ни замечаний, а в тестере  останавливается и пишет критическая ошибка советника. Что я сделал не так?
Файлы:
lrqipols.mq4  13 kb
 
gergi:
Доброго времени суток. Посмотрите пожалуйста код. При написании нет ни ошибок ни замечаний, а в тестере  останавливается и пишет критическая ошибка советника. Что я сделал не так?

Динамические массивы в советниках не используются.

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

Для получения значений пользовательского индикатора необходимо использовать функцию iCustom() 

 
Vinin:

Динамические массивы в советниках не используются.

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

Для получения значений пользовательского индикатора необходимо использовать функцию iCustom() 

То есть мне нужно написать индикатор и потом вызывать его значения в советнике?
 
Vinin:

Динамические массивы в советниках не используются.

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

Для получения значений пользовательского индикатора необходимо использовать функцию iCustom() 

Проблема в том, что все массивы строятся на двух индикаторах. Как быть в этом случае? А мт5 использует массивы в советниках?
 
gergi:
То есть мне нужно написать индикатор и потом вызывать его значения в советнике?

Необязательно.

Но есть другое.

Где этим массивам

LowesBuffer11[];

HighesBuffer12[];

LowesBuffer13[];

HighesBuffer21[];

LowesBuffer22[];

HighesBuffer23[];

присваиваются значения. И где определяется размер этих массивов 

 
Из советника так же необходимо убрать все функции, которые используются только в индикаторах
 
Vinin:

Динамические массивы в советниках не используются.

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

Для получения значений пользовательского индикатора необходимо использовать функцию iCustom() 

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