Вопросы по программированию в МТ4

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Re: Вопросы по программированию в МТ4

Сообщение Рэндом » 22 фев 2016, 07:52

Вот.
Код: выделить все
int GetLosses()
{
   int cnt=0;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) break;
            if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == MagicNum))
        {
              if (OrderProfit()<=0) break;
              //Print("#",OrderTicket()," = ",OrderProfit());
              cnt++;
        }
     }
   return (cnt);
}
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Вопросы по программированию в МТ4

Сообщение 111111 » 22 фев 2016, 08:11

Рэндом писал(а):Вот.
Код: выделить все
int GetLosses()
{
   int cnt=0;
   for(int i=OrdersHistoryTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)==false) break;
            if ((OrderSymbol() == Symbol()) && (OrderMagicNumber() == MagicNum))
        {
              if (OrderProfit()<=0) break;
              //Print("#",OrderTicket()," = ",OrderProfit());
              cnt++;
        }
     }
   return (cnt);
}

эта функция, после серии убыточных сделок вернуть первоначальный лот, а нужна функция после серии прибыльных вернуть первоначальный лот.
Аватар пользователя
111111
 
Сообщений: 245
Зарегистрирован: 06 ноя 2013, 14:51
Средств на руках: 7.60 Доллар
Группа: Базовая
Благодарил (а): 148 раз.
Поблагодарили: 15 раз.

Re: Вопросы по программированию в МТ4

Сообщение Рэндом » 22 фев 2016, 08:15

Я ее переделал. Она считает серию прибыльных сделок и выдает их количество. Если надо чтобы кто-нибудь переделал советник, то в стол заказов обращайтесь.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Re: Вопросы по программированию в МТ4

Сообщение Рэндом » 22 фев 2016, 08:29

По моему тех изменений, что я сделал достаточно для ваших целей. Замените функцию и протестируйте советник.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Вопросы по программированию в МТ4

Сообщение stawros » 28 фев 2016, 20:17

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

eurusd-d1-9.png


Помогите пожалуйста разобраться в чем дело и как добиться того,чтобы советник по индикатору "ТТТТТ" можно было бы без проблем прогнать в тестере. Почему функция iCustom() советника без проблем получает данные от индикатора "ТТТТТ" на текущем графике и не может получит их в тестере?
TTTTT.mq4
(5.52 KB) Скачиваний: 18
Аватар пользователя
stawros
 
Сообщений: 41
Зарегистрирован: 16 фев 2015, 20:18
Средств на руках: 7.00 Доллар
Группа: Базовая
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Вопросы по программированию в МТ4

Сообщение Рэндом » 29 фев 2016, 06:41

Посмотрел код. Не знаю что ответить, по идее должен нормально работать в тестере.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Вопросы по программированию в МТ4

Сообщение stawros » 29 фев 2016, 10:44

Рэндом писал(а):Посмотрел код. Не знаю что ответить, по идее должен нормально работать в тестере.

Но Вы его не проверяли в тестере? Вот кстати фрагмент кода советника,получающий данные от индикатора.По сути это мини-эксперт так сказать.В нем всего несколько строк и пара функций - iCustom(), получающая данные из буферов индикатора(на 1-м баре или любом,который укажете), и Alert() - сообщающая полученные значения в окошке Алерт или в журнале тестера.Можете сами убедиться в том,что на текущем графике индикатор исправно дает значения кривых канала, а в тестере не хочет.
Вложения
5T_2_Expert.mq4
(2.48 KB) Скачиваний: 14
Последний раз редактировалось stawros 29 фев 2016, 10:48, всего редактировалось 1 раз.
Аватар пользователя
stawros
 
Сообщений: 41
Зарегистрирован: 16 фев 2015, 20:18
Средств на руках: 7.00 Доллар
Группа: Базовая
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Вопросы по программированию в МТ4

Сообщение Рэндом » 29 фев 2016, 10:46

Возможно ошибка в тестере.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.

Вопросы по программированию в МТ4

Сообщение stawros » 29 фев 2016, 11:13

Рэндом писал(а):Возможно ошибка в тестере.

Да я уже прогонял в тестере этот мини-советничек с несколькими индикаторами как из стандартного набора МТ4 ,чертящими на графике различные кривые,так и пользовательскими,такими как например vhpchannel_03 , чертящим аналогичный (правда гораздо более грубый)канал из трех кривых на графике, и везде все в порядке - значения кривых в тестере исправно выдаются.А с этим нет.Если прогоните в тестере ,сможете убедиться сами.В журнале тестера появляется запись-предупреждение " TTTTT EURUSD,Daily: array out of range in 'TTTTT.mq4' (137,15)" Что это означает? Английского увы не знаю,Но это же я так понимаю по сути прямая подсказка,что с индикатором "ТТТТТ" не так,как с остальными.
Аватар пользователя
stawros
 
Сообщений: 41
Зарегистрирован: 16 фев 2015, 20:18
Средств на руках: 7.00 Доллар
Группа: Базовая
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Вопросы по программированию в МТ4

Сообщение Рэндом » 29 фев 2016, 12:13

Это означает выход за границы массива и строка указана в которой происходит ошибка.
Аватар пользователя
Рэндом
Специалист MQL
 
Сообщений: 13700
Зарегистрирован: 18 июл 2013, 08:05
Средств на руках: 31.45 Доллар
Группа: Администраторы
Благодарил (а): 1131 раз.
Поблагодарили: 3174 раз.
Каждый заблуждается в меру своих возможностей.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 75

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения