Скачать MetaTrader 5

int init()

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Георгий Ковальчук
182

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

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(). Заодно объясните чайнику, что такое глобальная область видимости?

Victor Nikolaev
Модератор
14666
Victor Nikolaev  
gergi:

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

int init()

  {

   SetIndexBuffer(2, HighesBuffer);

   SetIndexBuffer(3, LowesBuffer);

   return;

  } 

Эту - никак. В советник уже есть своя функция инициализации
Victor Nikolaev
Модератор
14666
Victor Nikolaev  
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(). Заодно объясните чайнику, что такое глобальная область видимости?

  

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

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

Георгий Ковальчук
182
Георгий Ковальчук  
Vinin:

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

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

Vinin:

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

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

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

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

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

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

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

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

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

Георгий Ковальчук
182
Георгий Ковальчук  
Vinin:

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

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

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

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

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

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

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

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

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

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

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

LowesBuffer11[];

HighesBuffer12[];

LowesBuffer13[];

HighesBuffer21[];

LowesBuffer22[];

HighesBuffer23[];

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

Victor Nikolaev
Модератор
14666
Victor Nikolaev  
Из советника так же необходимо убрать все функции, которые используются только в индикаторах
Георгий Ковальчук
182
Георгий Ковальчук  
Vinin:

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

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

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

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