Уровень 0 - страница 2

 
Ivan Vagin:

В очередной раз есть намерение постигнуть науку программирования на МКЛ.

Беру на себя обязательство задавать внятные задачи и поддерживать ветку в актуальном состоянии.

Коли ветка будет расти, в части кодирования, предлагаю в первую очередь следовать направлению которое задаю я, если поверите на слово - имею приличный преподавательский опыт, даже форекс преподавал под маркой одного известного брокера... народ да сих пор торгует....

  Помню  на каком-то семинаре преподаватель говорил что-то типа " если 3 подряд свечи белые а следующая черная то следующая должна быть белая". Попробуйте запрограммировать эту шнягу, или то чему Вы обучали студентов. Но для начала неплохо было-бы https://book.mql4.com/ruпочитать учебник Ковалева.
Учебник по MQL4
  • book.mql4.com
Учебник по MQL4
 
Yuri Evseenkov:
  Помню  на каком-то семинаре преподаватель говорил что-то типа " если 3 подряд свечи белые а следующая черная то следующая должна быть белая". Попробуйте запрограммировать эту шнягу, или то чему Вы обучали студентов. Но для начала неплохо было-бы https://book.mql4.com/ruпочитать учебник Ковалева.
Можете считать меня идиотом, не осилил....
 

АФИГЕТЬ - ничего не нашел на сайте по запросу "#property"

Аааа нужно "property"

https://www.mql5.com/ru/docs/basis/preprosessor/compilation

Попробуем переварить 

Сразу возникает вопрос, зачем нужен значек - "#" 

Все это применительно к коду первого кода скрипта. 

Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
Документация по MQL5: Основы языка / Препроцессор / Свойства программ (#property)
  • www.mql5.com
Основы языка / Препроцессор / Свойства программ (#property) - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ivan Vagin:
Можете считать меня идиотом, не осилил....
Да нам несколько операторов для этого нужно if , Print..пара торговых функций почитайте про них, что непонятно спросите. Пока не лезте в дебри читайте учебник.
 
Yuri Evseenkov:
Да нам несколько операторов для этого нужно if , Print..пара торговых функций почитайте про них, что непонятно спросите.
Потом спрошу, не теряйтесь!
 
Ivan Vagin:
Потом спрошу, не теряйтесь!
К сожалению сейчас вынужден потерятся.
 
Yuri Evseenkov:
К сожалению сейчас вынужден потерятся.
:-) Функция "потом" - предполагает неопределённое количество времени.... просьба... реже постить если не по сути... я могу утонуть в количестве разветвлений общения, как в логике программы с бесконечным количеством связей.
 

Вернемся к основам чисто кнопочным, берем код, любезно предоставленный нам Anatoli Kazharski 

1 Копируем в буфер код 

2 Терминал - Сервис - Редактор

 

3 Создать

4 Скрипт

5 Далее

 

6 Придумываем имя, например "1"(без кавычек)

7 Готово

8 В открывшемся окне - заменяем ВЕСЬ текст содержимым нашего буфера 

9 Нажимаем - Компилировать

10 Обращаем мимолетом внимание на сообщение внизу "0 error(s), 0 warning(s)" - это означает, что  ошибок 0 и предупреждений 0, иными словами - наш код идеален, с точки зрения компилятора.

Все - редактор(Editor) - можно закрывать 

11 Ищем в навигаторе терминала, в скриптах, название нашего нового скрипта, в моем случае это "1", двойной щелчок мышью, и, наблюдаем результат работы созданного нами скрипта :-)

результат 

Разрабам - Вин8 Хром, при редактировании сообщения картинки вставляются с 3го или 4го раза.... 

Пару раз выдавало сообщение "Неверный формат файла", файлы не менял, вставились с нескольких попыток. 

 
Ivan Vagin:
Можете считать меня идиотом, не осилил....

Там не слишком сложно. Вот реализовал на четверке(скрипт выводит все участки, где срабатывал этот патерн):

void OnStart()
  {
for(int i=Bars-6;i>=1;i--)
{
if (Close[i+4] > Close[i+5] && Close[i+3] > Close[i+4] && Close[i+2] > Close[i+3] && Close[i+1] < Close[i+2])
{
Print("три белых, одна черная=",Time[i]);
}
}
   
  }

 Так как нам нужно три бара подряд, которые закрываются в плюс и потом после них следующий закрывающийся снижением и нулевой бар(тот, что крайний справа, якобы должен закрыться повышением этот бар нулевой). То есть, четвертый бар больше пятого, третий больше четвертого и т.д. Затем первый ниже второго. Это все в условии оператора "if"

Далее, если условие срабатывает, выводится принт, с датой нулевого бара(который предполагается, что будет расти, нулевой это еще не сформированный бар, текущий) 

В пятом MQL индексация на сколько знаю, с точностью наоборот и нужно будет копировать массив с ценами закрытия.

 

Не совсем так...


Например:

Если надо три свечи белые и одна чёрная

//   | белая свеча № 4  |    | белая свеча № 3  |    | белая свеча № 2  |    | чёрная свеча № 1  |
if ( Open[i+4]<Close[i+4] && Open[i+3]<Close[i+3] && Open[i+2]<Close[i+2] && Open[i+1]>Close[i+1] )

и т.д.


по такой же схеме -- любой набор свечей.

Можно видоизменить, но суть та же.