Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Форматируй текст в редакторе сообщений. Это удобно!
Георгий Ковальчук
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
Модератор
14337
Victor Nikolaev 2015.10.31 11:20  
gergi:

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

int init()

  {

   SetIndexBuffer(2, HighesBuffer);

   SetIndexBuffer(3, LowesBuffer);

   return;

  } 

Эту - никак. В советник уже есть своя функция инициализации
Victor Nikolaev
Модератор
14337
Victor Nikolaev 2015.10.31 12:20  
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
Георгий Ковальчук 2015.10.31 15:58  
Vinin:

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

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

Vinin:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

LowesBuffer11[];

HighesBuffer12[];

LowesBuffer13[];

HighesBuffer21[];

LowesBuffer22[];

HighesBuffer23[];

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

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

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

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

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

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