Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Уважаемые!
Ответьте пожалуйста на вопрос.
Как и где в коде нужно обозначить внешние переменные?
Из приведенного примера это не понятно.
Как сделать, чтобы внешние переменные в настройках приложения были не обезличены АТ_1...АТ_32, а то ведь не запомнишь что за каждым номером значится?
Значения внешних переменных для стратегий указываются (как и любые значения внешних переменных) в настройках эксперта.
Названия внешних переменных в эксперте Вы изменить не сможете, т.к. они зашиты в код эксперта AG_exp.ex4.
Внешние переменные из эксперта передаются в присоединяемый файл стратегии через массив Instrument.
Названия локальных переменных в стратегии, соответствующие внешним переменным в эксперте, можно изменить в стратегии.
В этом примере так и сделано:
Вы по своему усмотрению можете задать свои названия.
Например, вместо АТ[i] указать Alfa, Beta и т.д.
Массив Instrument [][][][]: http://autograf.dp.ua/Pages/2/26/267/2676.htm
Стратегии в функции AG_AT(): http://autograf.dp.ua/Pages/2/26/267/26711/26711_1.htm
Присоединяемые стратегии: http://autograf.dp.ua/Pages/2/26/267/26711/26711_2.htm
Примеры кодирования стратегий:
http://autograf.dp.ua/Pages/2/26/267/26712/26712_1.htm
и http://autograf.dp.ua/Pages/2/26/267/26712/26712_2.htm
Вот теперь понятно. А то без опыта программирования сразу не доходит ещё. Спасибо.
Если программно, то можно воспользоваться функцией ObjectDelete() или ObjectsDeleteAll().
А куда её в моей стратегии прописывать? Или объекты будут создаваться и удаляться при каждом обращении к пользовательской функции?
Вот теперь понятно. А то без опыта программирования сразу не доходит ещё. Спасибо.
А куда её в моей стратегии прописывать? Или объекты будут создаваться и удаляться при каждом обращении к пользовательской функции?
Её не нужно прописывать в пользовательскую функцию или в стратегию.
Сделайте простой отдельный скрипт. После выключения стратегии набросите его в окно, он всё лишнее и удалит.
(придётся в AG 5 сделать некое подобие deinit в стретегии; но решение будет зависеть от возможностей MQL 5)
Спасибо за дельный совет. Только Вы меня переоцениваете. Со скриптами я еще не разбирался, но пойду в этом направлении. Если возможно дайте ссылку на какой-нибудь аналог.
Я пока только с индикатором познакомился.
Взял за аналог TD_Points&Line_mgtd1.1.mq4 Vladislav Goshkov (VG), дабавил log.mq4 Copyright © 2006, komposter для создания отчетов и получил более 2 000 строк своего индикатора.
Сделал его схему. Получилось около 500 строк. Можно наверно еще порезать, но пока так.
Значком
// --- // ---
обозначены вырезанные места.
Пока что в голове держится структура, хочется достичь желаемой функциональности. Потом все причесывать по правилам (цена качества в геометрической прогрессии затрат).
Ну вот, в SRC не вставить 521 строку: "текст больше допустимого размера". Придется крепить файл
На этом этапе Вам нужно познакомиться со специальными функциями и видами прикладных программ.
Для этого лучше всего взять учебник по MQL4 и читать с начала, последовательно. Будут вопросы - выкладывайте, постараюсь ответить.
На этом этапе Вам нужно познакомиться со специальными функциями и видами прикладных программ.
Для этого лучше всего взять учебник по MQL4 и читать с начала, последовательно. Будут вопросы - выкладывайте, постараюсь ответить.
Ваш учебник - моя настольная книга. С него все и началось. Скачал, распечатал и постоянно пользуюсь.
Вопросы возникают если не понимаю сути прочитанного или не раскрыты какие-то вопросы.
Вот есть там два примера с записью данных во внешний файл или чтение из файла новостей, так это за одно обращение к функции Start(). Больше месяца ковырялся пока у Andrey Khatimlianskii (komposter) не нашёл пример из которого сделал то что мне нужно. А именно: init() – формирование шапки таблицы отчета (порядка 30 столбцов), start() – формирование строки с параметрами каждой сделки за сессию, deinit() – формирование итогов сессии. Причем сделал три вида отчетов (таблица с параметрами по каждой сделке, столбец с итогами сессии, таблица с итогами сессии) и можно их лепить сколько хочешь в разных конфигурациях, чтобы потом обрабатывать в Excel. К слову, в deinit() ObjectsDeleteAll(). Но это было потом, а с начала наворочал кучу графики чтобы в тестере и реале все оставалось на графиках и все видеть и анализировать. Это очень помогает при программировании, ведь в MQL-4 нет отладчика, а так на графике видно какие линии (условия открытия и закрытия, цели, линии сделок) строит программа и как она это делает. Но это все в рамках индикатора, а он не торгует реально. Поэтому есть необходимость прикрепиться к эксперту, чтобы получить возможность не виртуальной торговли, плюс возможность использования данных отчета тестера с возможностью автоматической оптимизации. И все это без потери имеющейся функциональность реализуемой пока в индикаторе.
К сожалению в рамках 495 стр. учебника, 180 стр. справочника, 370 стр. описания AutoGraf-4, справок по MetaEditor, MT, все не изложишь, а форум прочитать – жизни не хватит. Но это так, все лирика.
А вот конкретно сделал я схему кода функции стратегии (на основе алгоритма индикатора) и не знаю, куда и как туда воткнуть скрипт для ObjectsDeleteAll()? Правильно ли воткнул торговые функции(они выделены “жжжжжж”? Посмотрите пожалуйста это хозяйство:
Схема кода функции стратегии (на основе алгоритма индикатора)
А вот конкретно сделал я схему кода функции стратегии (на основе алгоритма индикатора) и не знаю, куда и как туда воткнуть скрипт для ObjectsDeleteAll()? Правильно ли воткнул торговые функции(они выделены “жжжжжж”? Посмотрите пожалуйста это хозяйство:
Думаю, что Вы сильно забегаете вперёд в своей деятельности.
В программировании нельзя действовать наощупь.
В собственном коде недопустимо использование чего-либо такого, что программист не вполне понимает или не понимает вовсе.
Так ничего не выйдет.
Программирование, возможно, как никакая другая деятельность, по воей сути требует полной ясности и полного самоотчёта.
Начните с написания элементарных кодов. Переходите к более сложным только тогода, когда полностью сможете объяснить каждую букву в Вашем коде.
--
Примеры простого и обычного экспертов есть в учебнике.
Раньше, во введении в программирование, даётся классификация прикладных программ (признаки и отличия экспертов, скриптов и индикаторов).
Скрипт нельзя "воткнуть" в эксперт. Это - отдельная самостоятельная программа.
Навскидку про Ваш код можно сказать, что он составлен небрежно с точки зрения форматирования.
Кроме того, бОльшую часть блоков можно оформить в виде функций. Так было бы наглядней (иначе через пару месяцев Вы не сможете прочесть собственный код)
Вы совершенно правы. Согласен с Вами по всем позициям. Спасибо что нашли время на конструктивную критику!
Под “воткнуть” имелось ввиду прописать код, связывающий работу скрипта с функцией AG_AT() или прикрепленной к ней функцией, реализующей стратегию.
В учебнике, в примере простого эксперта присутствует start(), а в обычном, все специальные функции. Проблем нет, но как говориться, “апетит приходит во время еды”.
Вопрос-то в том, чтобы пользоваться всеми замечательными возможностями AutoGraf-4. Как тут быть?