Работа завершена
Время выполнения 1 день
Техническое задание
Доброго дня, Всем.
Требуется помощь в написании кода для советника в MQL4. Я новичок в программировании, поэтому потребуется код с понятными и исчерпывающими комментариями. Для программиста, я думаю, моя задача покажется легкой, но я ломаю голову уже недели две - "чем дальше в лес, тем больше дров". Я думаю, Вы меня поняли :)
Я буду использовать переменные для объяснения сути, их можно менять.
Суть задачи:
Используемые обозначения:
Переменная "a" - типа double
Переменная "d" - тип double
Переменная "b" - типа int
Написать нужно алгоритм, который будет производить анализ исторических значений по "барам" на минутном тайм-фрейме, по каждому бару получить "Среднюю цену - (high+low)/2". Создать массив, в который помещать данные значения. Рассмотрим на примере месяц октябрь с 15 числа 00:00 (точка отсчета)
К примеру получается что 15 октября в 00:00 = 33119 значению массива, 24 октября в 23:59 = 0 значению массива. На сколько я понимаю 0 значение массива - это самый последний образованный бар.
Берем переменную "a" приравниваем значение 33119, допустим оно равно 1,3235, получаем "а" = 1,3235.
Берем переменную "d" и поочередно приравниваем ей значения из массива начиная с 33119 по 0. (допустим 1,3236, 1,3235, 1,3237 и т.п.)
Берем переменную "b", она изначально равна нулю, используем её как счетчик значений.
Дальше пишем условие, если ( a + 10*point < = d )
Ложно: если условие ложно, берем следующее значение "d" из массива и подставляем в условие и ждем пока оно не станет верно.
Верно: условие верно получаем "b" + 1 (используем как счетчик). Берем значению "d", на котором остановились и приравниваем его к "a" (допустим мы проверили 400 значений из массива и на 400 значении мы достигли верности условия), к примеру 400 значение равно 1,3265. В итоге получаем "d" = "a" = 1,3265.
И опять возвращаемся к проверки условий если ( a + 10*point < = d ), только уже с новым значением "a"=1,3265, а значение "d" также продолжаем перебирать 401,402,403,404,405 .... и т.д.
Ждем снова верности условий, зацикливаемся.
В итоге мы должны достигнуть "b" равным 200 (b==200), но нам не хватило значений и у нас появляются новые значения каждую минуту с 25 октября с 00:00,00:01,00:02 ... по каждому бару получаем "Среднюю цену - (high+low)/2", эти значения тоже добавляем в архив. Приравниваем их к "d" и проверяем на условие. Так и добавляем значения в массив, с каждой минутой, с каждым новым баром в массиве прибавляется на одно новое значение и оно проходит проверку. Ждем...
Дальше, если мы достигаем значения "b" равным 200 (b==200). Выводим сообщение и открываем позицию на покупку. Ставим тейк-профит на +10*point, стоп-лосс на -10*point.
Ждем пока закроется данный ордер.
Когда он закрылся мы берем новую точку отсчета смещенную на 3 дня вперед, в нашем случае с 18 октября с 00:00 (точка отсчета). И данный цикл повторяется.
Откликнулись
1
Оценка
Проекты
146
34%
Арбитраж
13
8%
/
62%
Просрочено
26
18%
Свободен
Опубликовал: 6 примеров
2
Оценка
Проекты
38
47%
Арбитраж
6
33%
/
50%
Просрочено
10
26%
Свободен
3
Оценка
Проекты
257
53%
Арбитраж
16
50%
/
38%
Просрочено
83
32%
Свободен
4
Оценка
Проекты
106
52%
Арбитраж
17
12%
/
65%
Просрочено
25
24%
Свободен
5
Оценка
Проекты
105
49%
Арбитраж
6
0%
/
17%
Просрочено
21
20%
Свободен
Информация о проекте
Бюджет
10 - 30 USD
Сроки выполнения
от 1 до 4 дн.