Требуется помощь в написании кода для советника в MQL4

MQL4 Uzmanlar

İş tamamlandı

Tamamlanma süresi: 1 gün

Şartname

Доброго дня, Всем.

Требуется помощь в написании кода для советника в 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 (точка отсчета). И данный цикл повторяется.

Yanıtlandı

1
Geliştirici 1
Derecelendirme
(69)
Projeler
146
34%
Arabuluculuk
13
8% / 62%
Süresi dolmuş
26
18%
Serbest
Yayınlandı: 6 kod
2
Geliştirici 2
Derecelendirme
(8)
Projeler
38
47%
Arabuluculuk
6
33% / 50%
Süresi dolmuş
10
26%
Serbest
3
Geliştirici 3
Derecelendirme
(73)
Projeler
257
53%
Arabuluculuk
16
50% / 38%
Süresi dolmuş
83
32%
Serbest
4
Geliştirici 4
Derecelendirme
(40)
Projeler
106
52%
Arabuluculuk
17
12% / 65%
Süresi dolmuş
25
24%
Serbest
5
Geliştirici 5
Derecelendirme
(37)
Projeler
105
49%
Arabuluculuk
6
0% / 17%
Süresi dolmuş
21
20%
Serbest

Proje bilgisi

Bütçe
10 - 30 USD
Son teslim tarihi
from 1 to 4 gün