AkaEdie #: мнекажется мне нужно выбрать "Максимум комплексного критерия", я так и сделал но что означает цифра 40 в результате желтого цвета, при просадке в 26 процентов и прибыли 675
я так понимаю это коэфицент текущего от стартового капитала в процентах дохода?
Скорее всего, нет. Это просто число, вычисляемое по некоторой формуле из нескольких расчётных характеристик прохода в тестере. Эта формула написана так, что максимальное её значение равно 100. Соответственно, чем ближе к 100 результат, тем лучше. Если вы получаете 40, то это значит, что результаты не особо хороши, ниже средних.
Терминал МetaTrader 5 дает новые возможности для оптимизации параметров создаваемых экспертов. Кроме уже имеющихся в тестере критериев оптимизации, разработчики получили инструмент для создания собственных критериев. Это открывает поистине безграничные возможности в тестировании и оптимизации экспертов. В статье рассматриваются практические способы построения таких критериев - как простых, так и достаточно сложных.
Верно ли я понимаю, что в данном случае position_symbol и magic относятся именно к данному ticket? Работает ли конкатенация, вроде ticket.magic или ticket.symbol? Верна ли запись теперь?
Верна ли следующая запись?
int total = PositionsTotal();
for(int i=total-1; i>=0; i--)
{
int position_magic = position.Magic();
string position_symbol = position.Symbol(); /*PositionGetString(POSITION_SYMBOL)*/;
ulong position_ticket = position.SelectByIndex(i);
string symbol = Symbol();
if(total == 0 || (position_ticket > 0 && position_symbol == symbol && position_magic != Magic_m))
я так понимаю это коэфицент текущего от стартового капитала в процентах дохода?
Скорее всего, нет. Это просто число, вычисляемое по некоторой формуле из нескольких расчётных характеристик прохода в тестере. Эта формула написана так, что максимальное её значение равно 100. Соответственно, чем ближе к 100 результат, тем лучше. Если вы получаете 40, то это значит, что результаты не особо хороши, ниже средних.
Проверил.
Ваша конструкция идентична моей, но без ChartSetSymbolPeriod и проверки, что МА не вернула результат
Она начинает работать только вот так
Я не знаю что у вас там не так работает
Что-то гифка нормальная не получается. Ткни в неё…
Я не знаю что у вас там не так работает
Что-то гифка нормальная не получается. Ткни в неё…
Вот и Вы ткните, это тоже гифка
Как видим, не работает без ChartSetSymbolPeriod
работает только с родным периодом, на котором создана МА: hMA1=iMA(Symbol(), PERIOD_H1, MA1, 0, Metod_MA, Price_MA);
Вот и Вы ткните, это тоже гифка
Как видим, не работает без ChartSetSymbolPeriod
работает только с родным периодом, на котором создана МА: hMA1=iMA(Symbol(), PERIOD_H1, MA1, 0, Metod_MA, Price_MA);
Виталий, я только на гифке заметил что в коде
Такая хрень.
Удалите эти строки и попробуйте повторить.
Я не понимаю, зачем надо вносить свои поправки и говорить о том, что совет не работает…
потом на гифке у вас не тот индикатор который вы показываете тут…
Выбрать "Максимум пользовательского критерия"
В код советника добавить, что то типа такого.
ого спасибо тебе большое
Виталий, я только на гифке заметил что в коде
Такая хрень.
Удалите эти строки и попробуйте повторить.
Я не понимаю, зачем надо вносить свои поправки и говорить о том, что совет не работает…
потом на гифке у вас не тот индикатор который вы показываете тут…
if(rates_total-prev_calculated==0)Это не выполнится, если будет ошибка получения данных от МА и return(0); вернёт 0
На гифке тот-же индикатор.
Можно убрать, но проблему это не решит, только будет пересчёт индикатора на каждом тике, а это не нужно.
PS. И да, убрал и проверил - проблема не ушла, только ChartSetSymbolPeriod(0,Symbol(),PERIOD_CURRENT);
Это не выполнится, если будет ошибка получения данных от МА и return(0); вернёт 0
На гифке тот-же индикатор.
Можно убрать, но проблему это не решит, только будет пересчёт индикатора на каждом тике, а это не нужно.
PS. И да, убрал и проверил - проблема не ушла, только ChartSetSymbolPeriod(0,Symbol(),PERIOD_CURRENT);
Ну как знаешь. Если без этого жить не можешь, то пусть будет так…
Как можно говорить о том, что индикатор тот-же, если в примере просто распечатка значения, а на гифке строятся графические элементы…
Ну да… Больше вносит проблему эта строка
int res=Start(rates_total); // если "0" - то данные от МА не полученыУберите её вниз и проверьте ещё раз. И даже перерисовка графика не нужна.
Да, Виталий, извини это у меня закралась ошибка и печать шла из другого места.
Ну как знаешь. Если без этого жить не можешь, то пусть будет так…
Как можно говорить о том, что индикатор тот-же, если в примере просто распечатка значения, а на гифке строятся графические элементы…
Ну да… Больше вносит проблему эта строка
Уберите её вниз и проверьте ещё раз. И даже перерисовка графика не нужна.
Да, Виталий, извини это у меня закралась ошибка и печать шла из другого места.
объекты строятся по расчетам МА
нашел такую статью https://www.mql5.com/ru/articles/286
и в исходнике его советника такой код
но никак не соображу как выставить нужные параметры, а конкретно:
Нет.
Выбирать позицию надо не по символу, а по тикету функцией PositionGetTicket(i) и потом проверять магик и символ.
Верно ли я понимаю, что в данном случае position_symbol и magic относятся именно к данному ticket? Работает ли конкатенация, вроде ticket.magic или ticket.symbol? Верна ли запись теперь?
Верна ли следующая запись?