Trabajo finalizado
Plazo de ejecución 1 día
Tarea técnica
Доброго дня, Всем.
Требуется помощь в написании кода для советника в 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 (точка отсчета). И данный цикл повторяется.
Han respondido
1
Evaluación
Proyectos
146
34%
Arbitraje
13
8%
/
62%
Caducado
26
18%
Libre
Ha publicado: 6 ejemplos
2
Evaluación
Proyectos
38
47%
Arbitraje
6
33%
/
50%
Caducado
10
26%
Libre
3
Evaluación
Proyectos
257
53%
Arbitraje
16
50%
/
38%
Caducado
83
32%
Libre
4
Evaluación
Proyectos
106
52%
Arbitraje
17
12%
/
65%
Caducado
25
24%
Libre
5
Evaluación
Proyectos
105
49%
Arbitraje
6
0%
/
17%
Caducado
21
20%
Libre
Información sobre el proyecto
Presupuesto
10 - 30 USD
Plazo límite de ejecución
de 1 a 4 día(s)