Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Уроки по программированию на языке MQL4 от eevviill
для того чтобы выучить mql4 (без ООП) достаточно недели. это без какого либо опыта программирование, совсем с нуля. Протестировано на подопытном ) При условии конечно соображающей головы.
Но как и во всем нужен опыт. Во первых писать будите хорошо, во вторых решение каких либо задачь у вас будет занимать не пару дней, а пару десятков минут ) На это нужно года 3 минимум.
То что языки "меняются" и "добавляются новые функции" не должно вас пугать. Во первых они редко меняются, т.е. так чтобы ваше решение которое вы писали месяц назад перестало работать.. + если соблюдать некоторые правила то такое врятли произойдет с вашим кодом. А вот новому вы будите радоваться, и осваивается это "новое" очень быстро в дальнейшем.
Здравствуйте, eevviill. Я попробовал написать советник на основании вашего шаблона.
И вылезла такая ошибка: 'securyty_f' - function not defined. Вот тот самый код:
int OnInit()
{
//securyty
if(!securyty_f()) return(INIT_FAILED);
Там у вас несколько вариантов мартини, то Не хватает функций закрытия всего при достижении профита:
1. В пунктах n+
2. В валюте депо $+
3. В процентах %+
Пояснение. 1)Пишем пользовательскую функцию типа int(целые числа), так как пункты дробными быть не могут.
2)Объявляем переменную в которую будем записывать количество пунктов.
3)Перебераем все ордера и выбираем по нужному нам меджику.
4)Если ордер бай то записываем в нашу переменную (цену-цену открытия ордера)/размер 1-го пункта 5)Если ордер сел то записываем в нашу переменную (цену открытия ордера-цену)/размер 1-го пункта
А как узнать цену или количество пунктов, которое пройдет цена, когда прибыль достигнет определенного уровня, причём если есть два ордера, один Sell, один Buy с разными объёмами.
Пример:
Советник по сигналу открывает ордер Sell объёмом 0,01. При прохождении цены вверх, расстояния равного Distance(в нашем случае 30 пунктов), сов открывает встречный ордер Buy увеличенным лотом (LotSell * LotMultipler), к примеру, LotMultipler=2, тогда Buy=0.02. Прибыль от одного ордера должна составлять 20 пунктов, т.е. при лоте 0,01 прибыль в валюте будет =2. Поскольку у нас открыто 2 ордера, то общая прибыль должна составить 2+2=4. Меня интересует формула расчёта, как получить цену безубытка и цену закрытия обоих ордеров, когда сумма профита достигнет 4(ордера разнонаправленные). Если цена развернулась и пошла в другую сторону от последнего открытого ордера, то через расстояние Distance, открывается противоположный ордер от последнего открытого, также увеличенным лотом, т.е. 0,02*2=0,04 и т.д. Ордеров может быть и не 2, а 3, 4, 5, N.. число. Т.е. если ордеров 3, то сумма общего профита должна быть 6, если 4 ордера - то 8 и т.д.
Как узнать цену безубытка и цену закрытия всех ордеров или кол-во пунктов от последнего ордера если известен общий профит в валюте, а не в пунктах, причем ордера разнонаправленные? (см. скрин)
Добрый день!
Подскажите пожалуйста функцию:
пробитие 50% предыдущей свечи с выбором отрабатываемого старшего таймфрейма. Открытие на бай и на селл.
Спасибо!