Заработай до
50000$
на приглашении друзей
получить StartUp Bonus
от ИнстаФорекс
Вложений не требуется!
Начни торговлю
без вложений и риска
С новым STARTUP бонусом 1000$
Получи бонус
55%
от ИнстаФорекс
на каждое пополнение
Ответить в теме
Страница 5 из 6
Первая ... 4 5 Последняя ◄╝

Показаны сообщения: с 81 по 100 из 112

Тема: Самостоятельное обучение программированию

 Перейти в классический вид темы
  1. Линк#81
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    приветствую! прошу мнения и совета от бывалых - насколько эффективно самостоятельное обучение программированию? я имею в виду изучение учебника и просмотр видеоуроков. понятно, что лучше всего индивидуальное обучение, но насколько менее эффективно саообучение и какие в этом есть подводные камни? и вообще на что надо обратить внимание в самом начале пути... спс


  2.  
  3. ТОП сообщений
    2020-01-14   19:35
    Лучший ответ #1
    Накопленные выплаты 160034 RUB

    Ну да... Нам бы мед, да еще и ложку. "Меда" у вас просто валом(справочник, учебник, примеры, кодобаза, форумы), а вот какой "ложкой" вы его хлебать будете - зависит только от вас.

    2020-01-13   14:27
    Лучший ответ #2
    Накопленные выплаты 160034 RUB
    2020-01-14   16:28
    Лучший ответ #3
    Накопленные выплаты 160034 RUB

    Самый первый вопрос обычно: С чего начать? Ответ: С инструментария. Начну с алегории... Как и любой новорожденный ребенок, появляясь на свет он еще ничего не знает и не понимает. Но даже у него уже есть стойкая ассоциация, что тот, кто держит его на руках не даст его в обиду, накормит, напоит, спать уложит и будет всячески ухаживать за ним. Это мама. Потом, через некоторое короткое время в его сознании появляется второй персонаж - папа. Ну и затем благодаря этим двум особам начинается постепенное знакомство с окружающим миром и другими персонажами, которые будут появляться в жизни этого маленького человечка по мере его взросления и набора опыта. Отсюда и аналогия с инструментарием. У вас есть терминал - это папа. Он строг, но справедлив, будет жестко ругать вас за ваши ошибки, но в отсутствие этих ошибок он будет ласков и снисходителен. Еще у вас есть редактор - это мама. Он будет позволять вам лепить всякую отсебятину, часто воспитывать, журить за мелкие ошибки, типа неправильного произношения буквы "Р", и будет учить, как правильно нужно себя вести в среде кода. И вот эти два персонажа(инструмента) есть его семья и они в принципе вполне достаточны, чтоб начать хоть что-то делать и произнести свое первое слово в этом бренном мире - "мама". Т.е. написать свой первый, избитый как этот мир, и еще не понимаемый по сути код скрипта, с выводом на график сообщения "Hello World". //+------------------------------------------------------------------+ //| HelloWorld.mq4 | //+------------------------------------------------------------------+ #property copyright "" #property link "" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { Comment("Hello World!!!"); } //+------------------------------------------------------------------+ Т.е. первое с чего начинается любое изучение программирования - это инструментарий. Если с терминалом вы уже по стольку по скольку знакомы, то с редактором стоит хотя бы бегло ознакомиться, понажимать всякие кнопочки, менюшки, вкладочки, проштудировать справку на предмет чего он может, чего не может и что для чего там нужно. Попробовать посоздавать какие либо, пусть пока даже пустые варианты проектов. Попробовать скомпилировать их. Посмотреть чего и куда там выводится при компиляции, где сохранаются файлы. Разобраться со структурой каталогов, в которых хранятся разные варианты проектов и т.д. и т.п.

    2020-01-14   04:36
    Лучший ответ #4
    Накопленные выплаты 21138 RUB

    Честно говоря подробности уже не помню(это было лет 6-7 назад). Наверное потому что у Ковалева они на картинке квадратные(и это у меня почему то отложилось в голове). Если бы он хотя бы второе измерение сделал на своей картинки другой длинны, то понимание было бы намного лучше на мой взгляд. Хотя сейчас вспоминая тот мой "граальный алгоритм" понимаю, что даже если бы я и понимал как делать все равно бы "не зашло". Там требовалось переменная длинна массива для второго измерения, а mql так "не могет"(даже сейчас). Если мне не изменяет память то это называется "зубчатый массив".





    Изображение
    Превью
    2020-01-13   15:55
    Лучший ответ #5
    Накопленные выплаты 21138 RUB

    А зачем мне его популязировать? Он и сам с этим не плохо справляется(в интернете инфы о нем за 100 лет не перечитать). Без биржи мне программирования в повседневной жизни как бы без надобности, потому форум тот.

    2020-01-14   10:17
    Лучший ответ #6
    Накопленные выплаты 21138 RUB

    Вы четко понимаете как работает ваш код.

    Изображение
    Превью
  4. Линк#88
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,552
    Деньги за посты (Подробнее):
    51054 RUB
    Поставил лайков:
    270
    Получено лайков:  588
    в 532 сообщениях
    38%
    Цитата Сообщение от buza Посмотреть сообщение
    MonyaMaker,
    напишу здесь, чтоб не загромождать общую ветку
    Вложение 3396394
    я понял так, что надо поместить информацию в массивы, потом импортировать ее оттуда и обрабатывать (пересечения, совпадения)? как вариант экспортировать в массивы сами пересечения, а потом импортировать и работать с ними (линии, алерты, ордера)? или криво понял?

    Первое ключевое слово - понял.
    Второе ключевое слово - увидел.
    Есть такой аспект работы, как проектирование данных.
    Правильно сделаешь, легко развивать будет. В переменных, массивах, базах данных, в чем угодно.
    Не совочком будешь копать, а роторным эссссковатором. Мащща! Портировать, импортировать, экспортировать до беспредела.
    Там и видно будет куда и что размещать, как долго хранить, было бы с чем работать.
    Не, можно конечно фуршет устраивать, по поводу пересечения машек каждый раз. На твое усмотрение.

    Так вот,ты для начала значения двух машек, на двух барах сравнил, а счастья нет. И все потому, что могут быть и другие комбинации, которые в момент твоего визуального анализа находятся за пределами экрана, и не попадают в твой мозК.
    Например ночью, когда волотильность падает, и машки пункт в пункт совпадают на нескольких десятках (может и не десятках, таймфрем в помощь) баров.

    "Портировать пересечения в массив, а потом работать с ними" - а зачем тебе это надо? Ответь на вопрос.
    Как ты понял, сказать не могу, понял ты или не понял, об этом твой код скажет.
    Или ты напишешь и забудешь, и он, код, будет работать без нареканий годами, или будешь спать с напильником, постоянно допиливая его (код).
    Процесс обучения, с том числе и самостоятельного, заточен на то, что если ты задаешь себе вопрос: "На кой?", то и убедительно себе отвечаешь: "Потому, что!", тогда будешь понимать и двигаться в направлении которое считаешь правильным, а не делать, что тебе кто то скажет, а ты его и послать не сможешь, даже понимая что он гонит туфту.
    Понятно, что с направлением у тебя проблема, но чем раньше начнешь, тем проще будет в дальнейшем.

    Если бы, ты скрипт сам написал, ты бы уже знал для чего он тебе нужен, а поскольку получил готовый, то и спрашиваешь: "На кой?",
    ответ простой, для понимания и утверждения, что все происходит именно так, как ты понимаешь.

    Скобки "[","][", "]" , удобно использовать для разделения данных при выводе На печать в журнал.
    А про массивы почитай в документации.

    Последний раз редактировалось MonyaMaker; 30.01.2020 в 11:54.

  5. post_thanks Получено лайков: 3

    buza (30.01.2020), Незарегистрированный (2 пользователя)

  6. Линк#89
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Просто MonyaMaker привел вам отладочный скрипт, в котором отображение информации представлено в квадратных скобках. Но это не есть массивы. Это всего лишь формат отображения. А в индикаторе у вас есть буферы, к которым можно привязать реальные массивы и работать уже с ними.
    я не из-за квадратных скобок про массивы подумал(в скрипте они текстовые в кавычках), а из-за характера информации в вкладке "эксперты"(№ бара, дата, время открытия, цена мувингов на момент открытия) - всю эту инфу в массивы, массивы в буферы(но это не обязательно, хотя видимо удобней), я про это имел в виду.
    если у меня задача, чтоб при пересечении быстрым МА медленного сверху отрисовывалась красная вертикальная линия (как вариант стрелка вниз, ордер селл и т.п), а если снизу вверх соответственно синяя и линии рисовались вглубь истории, то я использую 2 буффера (если 2 мувинга), а массивов могу прописать в них несколько?
    пс. что такое "отладочный" скрипт?


  7. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  8. Линк#90
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,061
    Деньги за посты (Подробнее):
    160034 RUB
    Поставил(а) лайков:
    912
    Получено лайков:  7,170
    в 3,425 сообщениях
    102%
    Цитата Сообщение от buza Посмотреть сообщение
    всю эту инфу в массивы, массивы в буферы(но это не обязательно, хотя видимо удобней),
    А эта инфа нужна вам для нормальной работы вашей задумки? Ответ - нет.
    Цитата Сообщение от buza Посмотреть сообщение
    что такое "отладочный" скрипт?
    Отладочным называется такой код, который не несет в себе рабочего функционала, но позволяет программисту отследить качество и логику работы основного кода. Проще говоря - при помощи отладочного вывода можно проконтролировать значения переменных и логику работы кода в реальных условиях. И тем самым выщемить различные ошибки, которые при написании кода могут быть не учтены или не замечены. И это самое главное, что должен уметь делать каждый кодер. Каждый кодер должен уметь сам проверять свою писанину - в обиходе "заниматься отладкой". И на это будет уходить львиная доля времени.


  9. post_thanks Получено лайков: 2

    buza (30.01.2020), Незарегистрированный (1 пользователь)

  10. Линк#91
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,061
    Деньги за посты (Подробнее):
    160034 RUB
    Поставил(а) лайков:
    912
    Получено лайков:  7,170
    в 3,425 сообщениях
    102%
    Цитата Сообщение от buza Посмотреть сообщение
    если у меня задача, чтоб при пересечении быстрым МА медленного сверху отрисовывалась красная вертикальная линия (как вариант стрелка вниз, ордер селл и т.п), а если снизу вверх соответственно синяя и линии рисовались вглубь истории, то я использую 2 буффера (если 2 мувинга), а массивов могу прописать в них несколько?
    Каждый буфер может иметь только один массив. В индикаторах может быть до восьми отображаемых буферов.


  11. post_thanks Получено лайков: 1

    buza (30.01.2020)

  12. Линк#92
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    MonyaMaker, это ты мощно задвинул, внушает!(с)

    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Не, можно конечно фуршет устраивать, по поводу пересечения машек каждый раз
    смешно

    признателен за мысли и советы специалиста, они особенно ценны на ранней стадии обучения, дабы не нахвататься всякого срамного, которое потом придется мучительно лечить


    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Если бы, ты скрипт сам написал, ты бы уже знал для чего он тебе нужен, а поскольку получил готовый, то и спрашиваешь: "На кой?",
    ответ простой, для понимания и утверждения, что все происходит именно так, как ты понимаешь.
    а по поводу скрипта, таки да, не догоняю, что он выводит на печать...


  13. Линк#93
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,552
    Деньги за посты (Подробнее):
    51054 RUB
    Поставил лайков:
    270
    Получено лайков:  588
    в 532 сообщениях
    38%
    Цитата Сообщение от buza Посмотреть сообщение
    MonyaMaker, это ты мощно задвинул, внушает!(с)

    смешно

    признателен за мысли и советы специалиста, они особенно ценны на ранней стадии обучения, дабы не нахвататься всякого срамного, которое потом придется мучительно лечить



    а по поводу скрипта, таки да, не догоняю, что он выводит на печать...
    В текущем контексте "печать", это вывод в журнал.


  14. Линк#94
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    В текущем контексте "печать", это вывод в журнал
    да(в нашем частном случае в "экспертах"). по какому принципу он делает выборку? сначала в 99 году каждую свечу несколько месяцев , потом по 8 свечей в разные годы.


  15. Линк#95
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,552
    Деньги за посты (Подробнее):
    51054 RUB
    Поставил лайков:
    270
    Получено лайков:  588
    в 532 сообщениях
    38%
    Цитата Сообщение от buza Посмотреть сообщение
    да(в нашем частном случае в "экспертах"). по какому принципу он делает выборку? сначала в 99 году каждую свечу несколько месяцев , потом по 8 свечей в разные годы.
    Это у тебя история по символам и тамфреймам в терминале кривая.
    Принцип простой, данные по всем барам на текущем графике, текущего таймфрейма.
    Можешь в Print(...) еще дописать вывод данных по барам Оpen/Close/High/Low. а также определить по дате какому дню недели этот бар принадлежит, какой номер дня года, имеет день, к которому принадлежит бар. Ну и сам чё ни будь придумай.
    Тем не менее, вопрос по наличию данных уже возник.

    Последний раз редактировалось MonyaMaker; 30.01.2020 в 13:39.

  16. Линк#96
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Это у тебя история по символам и тамфреймам в терминале кривая.
    Принцип простой, данные по всем барам на текущем графике, текущего таймфрейма.
    Тем не менее, вопрос по наличию данных уже возник.
    Нажмите на изображение для увеличения
Название: 2020-01-30_16-39-07.png
Просмотров: 1
Размер:	60.8 КБ
ID:	3397491
    я понимаю, что могут быть пробелы, но не такие же дыры!


  17. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  18. Линк#97
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,552
    Деньги за посты (Подробнее):
    51054 RUB
    Поставил лайков:
    270
    Получено лайков:  588
    в 532 сообщениях
    38%
    Цитата Сообщение от buza Посмотреть сообщение
    Вложение 3397491
    я понимаю, что могут быть пробелы, но не такие же дыры!
    Именно такие.
    Есть правда ещё глюки с выводом больших объемов данных в терминале.
    Ты по ходу сам файл журнала найди и посмотри там.
    Если не следить за их состоянием. (В пятерке проще.)
    А ты думал, что "оно" все работает автоматически?!!! Таки нет.
    Кое-где руки прикладывать надо, кое где мозги.
    Ты главное учись, и помни, что детство кончилось, и ты сам за себя в ответе.
    Проверять надо, пред тем как юзать.

    Последний раз редактировалось MonyaMaker; 30.01.2020 в 13:56.

  19. Линк#98
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,061
    Деньги за посты (Подробнее):
    160034 RUB
    Поставил(а) лайков:
    912
    Получено лайков:  7,170
    в 3,425 сообщениях
    102%
    Цитата Сообщение от MonyaMaker Посмотреть сообщение
    Есть правда ещё глюки с выводом больших объемов данных в терминале.
    Это вероятнее всего. У тебя принт в цикле. Поэтому может "печатать", как бог на душу положит.


  20. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  21. Линк#99
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,552
    Деньги за посты (Подробнее):
    51054 RUB
    Поставил лайков:
    270
    Получено лайков:  588
    в 532 сообщениях
    38%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Это вероятнее всего. У тебя принт в цикле. Поэтому может "печатать", как бог на душу положит.
    Да индифферентно. Я по 1000000 значений не выгружаю, и это не есть проблема, которой стоит уделять столько внимания.
    Когда у человека нет понимания (или ещё нет понимания) что он делает, то надо с чего то начать, пусть и начинает разбираться.
    Иначе поверит в себя раньше времени, и так и не научится летать, "наш орел". Как в мультике.


  22. Линк#100
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    подскажите, что может значить в индикаторе LoopBegin?
    MQL код:
    if(nDays==0) LoopBegin=Bars-10;
    else LoopBegin=nDays*1440/Period();
    LoopBegin=MathMin(Bars-10,LoopBegin);


    extern int nDays = 2; // Количество дней обсчёта (0-все)


  23. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  24. Линк#101
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,061
    Деньги за посты (Подробнее):
    160034 RUB
    Поставил(а) лайков:
    912
    Получено лайков:  7,170
    в 3,425 сообщениях
    102%
    Цитата Сообщение от buza Посмотреть сообщение
    подскажите, что может значить в индикаторе LoopBegin?
    Хороший пример того, как не надо обзывать свои переменные.
    В данном случае LoopBegin - это количество баров текущего ТФ, которые будет обсчитывать индикатор.
    Код:
    if(nDays==0)                      \\Если количество дней в параметрах не задано
      LoopBegin=Bars-10;              \\берем кол-во баров равным Bars-10
    else                              \\В противном случае
      LoopBegin=nDays*1440/Period();  \\расчитываем кол-во баров за указанное в параметрах кол-во дней.
    
    LoopBegin=MathMin(Bars-10,LoopBegin);  \\Ну и округляем значение к лижайшему минимуму.


  25. post_thanks Получено лайков: 2

    buza (31.01.2020), Незарегистрированный (1 пользователь)

  26. Линк#102
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    Цитата Сообщение от ir0407 Посмотреть сообщение
    Хороший пример того, как не надо обзывать свои переменные
    спасибо. вот только не ясно, почему Bars-10? -1 мне понятно, а вот в чем смысл -10?


  27. Линк#103
    Специалист
    ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация ir0407 отличная репутация Аватар для ir0407
    Регистрация:
    02.12.2010
    Сообщений:
    7,061
    Деньги за посты (Подробнее):
    160034 RUB
    Поставил(а) лайков:
    912
    Получено лайков:  7,170
    в 3,425 сообщениях
    102%
    Цитата Сообщение от buza Посмотреть сообщение
    вот только не ясно, почему Bars-10? -1 мне понятно, а вот в чем смысл -10?
    Это связано с особенностями индикатора и для того, чтоб не рисовать "кракозябры", связанные с нехваткой данных, в начале расчетного периода.


  28. post_thanks Получено лайков: 2

    buza (31.01.2020), Незарегистрированный (1 пользователь)

  29. Линк#104
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%

    Название: 2020-02-01_11-32-49.png
Просмотров: 25

Размер: 40.0 КБ


    смутил этот пример - буферов 3, а во внешних настройках указан 1. дополнительные буферы не указываются в #property indicator_buffers? мах 8 буферов это с учетом дополнительных?


  30. post_thanks Получено лайков: 1

    Незарегистрированный (1 пользователь)

  31. Линк#105
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    MQL код:




    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 LightBlue
    #property indicator_color2 Salmon
    #property indicator_width1 2
    #property indicator_width2 2

    //------- Внешние параметры индикатора -----------------------------------------
    extern string Time1 = "02:00"; // Временная точка 1
    extern string Time2 = "07:00"; // Временная точка 2
    extern int nDays = 2; // Количество дней обсчёта (0-все)

    //------- Глобальные переменные ------------------------------------------------

    //------- Поключение внешних модулей -------------------------------------------

    //------- Буферы индикатора ----------------------------------------------------
    double dBuf0[],dBuf1[];
    //+----------------------------------------------------------------------------+
    //| Custom indicator initialization function |
    //+----------------------------------------------------------------------------+
    void init()
    {
    SetIndexBuffer(0,dBuf0);
    SetIndexEmptyValue(0,EMPTY_VALUE);
    SetIndexStyle(0,DRAW_LINE);

    SetIndexBuffer(1,dBuf1);
    SetIndexEmptyValue(1,EMPTY_VALUE);
    SetIndexStyle(1,DRAW_LINE);
    }

    //+----------------------------------------------------------------------------+
    //| Custom indicator deinitialization function |
    //+----------------------------------------------------------------------------+
    void deinit() { Comment(""); }
    //+----------------------------------------------------------------------------+
    //| Custom indicator iteration function |
    //+----------------------------------------------------------------------------+
    void start()
    {
    double up,dn; //верх, низ диапазона
    int i,LoopBegin,kd=0,nb1,nb2,nd=0; //i-индекс бара,kd-? nd-? nb1 nb2
    string sdt;

    if(Period()>PERIOD_H1) //проверка таймфрейма
    {
    Comment("Индикатору i-AnyRange нужен ТФ младше H4!"); return;
    }
    else Comment(""); //нужен ли else?
    //---------------------------------------------------
    if(nDays==0) LoopBegin=Bars-10; //блок определения периода обсчета
    else LoopBegin=nDays*1440/Period();
    LoopBegin=MathMin(Bars-10,LoopBegin);
    //---------------------------------------------------
    for(i=0; i {
    if(nd!=TimeDay(Time[i])) //если не первый день
    {
    nd=TimeDay(Time[i]); //nd - первый день?
    kd++; // добавляет дни ?
    if(kd>nDays && nDays>0) return; //kd - количество дней?
    sdt=TimeToStr(Time[i], TIME_DATE); //возвращает дату начала
    nb1=iBarShift(NULL, 0, StrToTime(sdt+" "+Time1)); //индекс начального бара диапазона
    nb2=iBarShift(NULL, 0, StrToTime(sdt+" "+Time2)); //индекс конечного бара диапазона
    if(nb1>nb2+1) //если начальный бар больше предпоследнего?
    {
    up=High[iHighest(NULL, 0, MODE_HIGH, nb1-nb2, nb2+1)]; //ищем максимальную цену
    dn=Low [iLowest (NULL, 0, MODE_LOW , nb1-nb2, nb2+1)]; //ищим минимальную цену
    }
    if(nb2>nb1+1) //если конечный бар больше второго?
    {
    up=High[iHighest(NULL, 0, MODE_HIGH, nb2-nb1, nb1+1)]; //ищем максимальную цену
    dn=Low [iLowest (NULL, 0, MODE_LOW , nb2-nb1, nb1+1)]; //ищим минимальную цену
    }
    }
    if((nb1>=i && i>nb2) || (nb2>=i && i>nb1)) //если начальный бар? или конечный бар?
    {
    dBuf0[i]=up; //буфер соотв. максимальной цене
    dBuf1[i]=dn; //буфер соотв. минимальной цене
    } else { //иначе не отрисовываем диапазон
    dBuf0[i]=EMPTY_VALUE;
    dBuf1[i]=EMPTY_VALUE;
    }
    }
    }
    //+----------------------------------------------------------------------------+



    пытался разобраться и прокомментировать код. ставил вопросы, где не догнал смысл. подскажите плз, где ошибся и что означают фрагменты с вопросами(те, с которыми не разобрался или сомневаюсь)? спс

    Последний раз редактировалось buza; 05.02.2020 в 08:16.

  32. post_thanks Получено лайков: 2

    Незарегистрированный (2 пользователя)

  33. Линк#106
    Частый гость
    buza приемлемый уровень репутации Аватар для buza
    Регистрация:
    14.09.2012
    Сообщений:
    192
    Деньги за посты (Подробнее):
    2098 RUB
    Поставил(а) лайков:
    92
    Получено лайков:  65
    в 62 сообщениях
    34%
    Цитата Сообщение от buza Посмотреть сообщение
    пытался разобраться и прокомментировать код. ставил вопросы, где не догнал смысл. подскажите плз, где ошибся и что означают фрагменты с вопросами(те, с которыми не разобрался или сомневаюсь)? спс
    народ, покритикуйте коменты в коде, что так, что не так! пытаюсь разобраться в понимании логики кода, нужна оценка правильности подхода


  34. <a href="https://www.instaforex.com/ru/pamm_system">Форекс портал</a>
  35. Линк#107
    Кандидат форумных наук
    MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация MonyaMaker хорошая репутация Аватар для MonyaMaker
    Регистрация:
    03.04.2017
    Пол:
    Мужчина
    Сообщений:
    1,552
    Деньги за посты (Подробнее):
    51054 RUB
    Поставил лайков:
    270
    Получено лайков:  588
    в 532 сообщениях
    38%
    Цитата Сообщение от buza Посмотреть сообщение
    народ, покритикуйте коменты в коде, что так, что не так! пытаюсь разобраться в понимании логики кода, нужна оценка правильности подхода
    Развивай самокритику. И найди в инете рекомендации по стилю программ. Есть рекомендации Стенфордского универа, посмотри их.
    Зачем? Чтобы потом читать код было легче и глюки искать проще.
    Выработанный стиль уже считай избавит тебя половины ошибок. (ИМХО)
    Один оператор - одна строка, один комментарий.
    Ну и код постах будет публиковаться без косяков.


    Код:
    #property indicator_chart_window
    #property indicator_buffers 2
    #property indicator_color1 LightBlue
    #property indicator_color2 Salmon
    #property indicator_width1 2
    #property indicator_width2 2
    
    //------- Внешние параметры индикатора -----------------------------------------
    extern string Time1 = "02:00";    // Временная точка 1
    extern string Time2 = "07:00";    // Временная точка 2
    extern int    nDays = 2;               // Количество дней обсчёта (0-все)
    //------- Глобальные переменные ------------------------------------------------
    //------- Поключение внешних модулей -------------------------------------------
    //------- Буферы индикатора ----------------------------------------------------
    double dBuf0[],dBuf1[];
    //+----------------------------------------------------------------------------+
    //|  Custom indicator initialization function                                  |
    //+----------------------------------------------------------------------------+
    void init()  {
       SetIndexBuffer(0,dBuf0);
       SetIndexEmptyValue(0,EMPTY_VALUE);
       SetIndexStyle(0,DRAW_LINE);
       SetIndexBuffer(1,dBuf1);
       SetIndexEmptyValue(1,EMPTY_VALUE);
       SetIndexStyle(1,DRAW_LINE);
    }
    
    //+----------------------------------------------------------------------------+
    //|  Custom indicator deinitialization function                                |
    //+----------------------------------------------------------------------------+
    void deinit(){
      Comment(""); 
    }
    
    //+----------------------------------------------------------------------------+
    //|  Custom indicator iteration function                                       |
    //+----------------------------------------------------------------------------+
    void start(){
       //---
       double up,              //верх диапазона    
                 dn;              //низ   диапазона
       //---
       int    i,                    // i-индекс бара
               LoopBegin,     //  ?
               kd = 0,          //  kd-?
               nb1,              // nb1
               nb2,              // nb2
              nd=0;            // nd-?     
      //---
      string sdt;              // 
      //---  
      if(Period() > PERIOD_H1){                                                      //если текущий период  больше требующегося
        Comment("Индикатору i-AnyRange нужен ТФ младше H4!");  //  Выводим сообщение на чарт
        return;                                                                                 // Прекращаем расчет 
      }
      else{                                                                                      // иначе ..
                                                                                                   // зачищаем чарт. Дальше думай про "else" :
        Comment("");  //нужен ли else?    *** Это тебе решать, если алгоритм требует, то надо, если нет, то не надо. 
      }                                             
    
       //---------------------------------------------------
       //--- блок определения периода обсчета
       if( nDays == 0 ){             // если  nDays  тождественно 0
          LoopBegin = Bars-10;    //  LoopBegin  присваиваем значение ....
       }                                
       else{                                               // иначе, если не тождественно
         LoopBegin=nDays*1440/Period();    //  LoopBegin  присваиваем значение ....
       }
      
       LoopBegin =  MathMin( Bars-10, LoopBegin);   // а тут, если сразу не угадали, так че нибудь прилепим :)))
       //---------------------------------------------------
       for(i=0; i .... ){  // косяки публикации
          if(nd!=TimeDay(Time[i])) {                                    //если не первый день  
             nd=TimeDay(Time[i]);                                      //nd - первый день?
             kd++;                                                             // добавляет дни ?  *** не, просто значение на единицу увеличивает, 
                                                                                   //а че там у тебя сидит и за сто отвечает, ты должен сам помнить
                                                                                   //kd - количество дней?  *** Просто имя переменной. 
             if( kd > nDays && nDays > 0 ){                        // если значение в  kd ....   и т.д.
                return;
             }                           
             sdt = TimeToStr(Time[i], TIME_DATE);            //возвращает дату начала *** чего начала? И зачем?
             //--- ***  
             /*
                int  iBarShift( 
                                   string           symbol,          // символ 
                                   int              timeframe,       // период 
                                   datetime         time,            // время               ****   дата не строка StrToTime(sdt+" "+Time1)  ?
                                    bool             exact=false      // режим 
                                 );
             */
             nb1 = iBarShift(NULL, 0, StrToTime(sdt+" "+Time1));         //индекс начального бара диапазона
             nb2 = iBarShift(NULL, 0, StrToTime(sdt+" "+Time2));         //индекс конечного бара диапазона
             Print ("[" +IntegerToString(nb1)+ "][" + IntegerToString() +"]" );   // Тут смотрим. что имеем, а не что думаем, что имеем.
             //---
             //--- *** ну и т.д. все через принты и анализируем, аналилизируем, анализируем, пока не получим то что надо.
             //--- 
             if(nb1>nb2+1)                                             //если начальный бар больше предпоследнего?  
               {
                up=High[iHighest(NULL, 0, MODE_HIGH, nb1-nb2, nb2+1)]; //ищем максимальную цену
                dn=Low [iLowest (NULL, 0, MODE_LOW , nb1-nb2, nb2+1)]; //ищим минимальную цену
               }
             if(nb2>nb1+1)                                             //если конечный бар больше второго?     
               {
                up=High[iHighest(NULL, 0, MODE_HIGH, nb2-nb1, nb1+1)]; //ищем максимальную цену   
                dn=Low [iLowest (NULL, 0, MODE_LOW , nb2-nb1, nb1+1)]; //ищим минимальную цену
               }                                      
            }
          if((nb1>=i && i>nb2) || (nb2>=i && i>nb1))   //если начальный бар? или конечный бар?
            {
             dBuf0[i]=up;                              //буфер соотв. максимальной цене
             dBuf1[i]=dn;                              //буфер соотв. минимальной цене
               } else {                                //иначе не отрисовываем диапазон
             dBuf0[i]=EMPTY_VALUE;
             dBuf1[i]=EMPTY_VALUE;
            }
         }
      }
    //+----------------------------------------------------------------------------+


  36. post_thanks Получено лайков: 3

    buza (06.02.2020), Незарегистрированный (2 пользователя)


Страница 5 из 6
Первая ... 4 5 Последняя ◄╝

Похожие темы

  1. Replies: 34
    Последнее сообщение: 03.03.2019, 15:23
  2. Replies: 4
    Последнее сообщение: 10.03.2017, 07:05
  3. Обучение программированию на MQL4
    от auto_fx в разделе Доска объявлений
    Replies: 0
    Последнее сообщение: 13.09.2016, 19:07
  4. Replies: 22
    Последнее сообщение: 09.06.2015, 20:41
  5. Обучение программированию советников на MQL
    от mql-expert в разделе Доска объявлений
    Replies: 4
    Последнее сообщение: 07.05.2015, 23:23