Jump to content
Programmer

Советник: Seregin

Recommended Posts

TarasBY

Выложите скрин графика я посмотрю что у вас на графике пишется. так. как у меня нет пока возможности подключиться к вашему ДЦ, я использую Альпари.

 

Выкладываю. Самое простое объяснение - на сайте не самая последняя версия советника. :roll:

post-55250-1404212075,8789_thumb.jpg


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
sergey1294
Выкладываю. Самое простое объяснение - на сайте не самая последняя версия советника. :roll:

 

Все ясно в чем проблема у вас четыре знака а советник заточен под пять знаков, умножте мин. уровень стопа на 10 это и будет минимальным значением дельта, должно заработать. Раз у вас четыре знака, у меня просьба когда выставит отложенники посмотрите правильно ли определено расстояние между ними.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
TarasBY
Все ясно в чем проблема у вас четыре знака а советник заточен под пять знаков, умножте мин. уровень стопа на 10 это и будет минимальным значением дельта, должно заработать. Раз у вас четыре знака, у меня просьба когда выставит отложенники посмотрите правильно ли определено расстояние между ними.

 

Немножко странненько получается: Profit в одном "летоисчислении", а Delta в другом... ;)

В подправленном варианте расстояние м\у отложенниками выставилось правильно! Но правильнее было бы подправить код... :no:


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
TarasBY

Ещё хочу уточнить: MA_timeframe = 0. Я предполагаю, что 0 - означает текущий таймфрейм для расёта MA. График M5, я выставляю MA_timeframe = 15 и мне выдаёт 131 ошибку.

Правда, я ещё измнил K с int на double и решил поставить вместо 2 дробное значение 1,5. Это и дало, видимо, упомянутую ошибку 131. Где-то в коде нужно (имхо) подправить, чтобы можно было выставлять дробный коэффициент, по аналогии с Мартингейлом.

А ещё было бы не плохо, чтобы, как в моём случае, если при инициализации советника, произошла ошибка, то после её устранения, чтобы советник, подхватывал эти изменённые условия. А то, если выставлен ордер рыночный, а при ошибке не выставлены отложенные, то пока не удалится рыночный, отложенники не выставятся, а у рыночного ордера может быть всякая судьба без стопов... :roll:

Edited by TarasBY
Дополнение

Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
sergey1294
Немножко странненько получается: Profit в одном "летоисчислении", а Delta в другом... ;)

В подправленном варианте расстояние м\у отложенниками выставилось правильно! Но правильнее было бы подправить код... :no:

 

Как раз этим сейчас и занимаюсь.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
sergey1294
Ещё хочу уточнить: MA_timeframe = 0. Я предполагаю, что 0 - означает текущий таймфрейм для расёта MA. График M5, я выставляю MA_timeframe = 15 и мне выдаёт 131 ошибку.

Разъясните что не так. :termomet:

 

Правильно, 0 - означает текущий таймфрейм для расёта MA. Если же вы ставите MA_timeframe = 15 значит расчет будет произвоиься на 15-минутке, а сами можете быть привязаны к любому графику. Ошибка 131, что то вы на путали с объемом лота, либо так как при выставлении отложенников идет увеличение лотов для последних в серии превышен максимальный размер, уменьшите максимальное колличество ордеров в серии или коэфициэнт увеличения К.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
TarasBY
Ошибка 131, что то вы на путали с объемом лота, либо так как при выставлении отложенников идет увеличение лотов для последних в серии превышен максимальный размер, уменьшите максимальное колличество ордеров в серии или коэфициэнт увеличения К.

 

Сергей, Вы мне теорию рассказали, я скумекал, а я Вам предлагаю практику изменить. При расчёте лота, нужно сделать округление полученного числа в соответствии с шагом изменения лота у конкретного брокера и тогда тип переменной K можно будет изменить с int на double и выставлять дробное значение коэффициента K. :lamp:

И что Вы по поводу изложенного мной в предыдущем посте про ошибки скажете?


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
sergey1294
Сергей, Вы мне теорию рассказали, я скумекал, а я Вам предлагаю практику изменить. При расчёте лота, нужно сделать округление полученного числа в соответствии с шагом изменения лота у конкретного брокера и тогда тип переменной K можно будет изменить с int на double и выставлять дробное значение коэффициента K. :lamp:

И что Вы по поводу изложенного мной в предыдущем посте про ошибки скажете?

 

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


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
TarasBY

Обнаружил сходство Ваших трудов с Richrd'ом.

Надо отдать Вам должное, что Вам удалось "вылечить" детские "болезни" Ричарда, в отличие от "папы" Ричарда - профессионального программера! РЕСПЕКТ! =D>

Я с момента рождения Ричарда дал ему две пары (EURUSD и GBPUSD) на возмужание. На первой паре он просел на - 6104 $, а на второй подрос на 5 591 $ с 27.04.2009 по сей день. Нужно быть справедливым и отметить, что минус на EURUSD закрылся случайно другим советником. Ну, а так бы этот минус болтался при сосответствующем размере депо без зарабатывания...

Жаль, что Кирилл (папа Ричарда) охладел к своему творению.

В сеточных стратегиях нужно добавить немножко логики для выставления в рынок ордеров и в тактике чуть-чуть применить "подпольности" (скрытности)... :casha:

Надо работать! :flower2:


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
sergey1294
Обнаружил сходство Ваших трудов с Richrd'ом.

Надо отдать Вам должное, что Вам удалось "вылечить" детские "болезни" Ричарда, в отличие от "папы" Ричарда - профессионального программера! РЕСПЕКТ! =D>

Я с момента рождения Ричарда дал ему две пары (EURUSD и GBPUSD) на возмужание. На первой паре он просел на - 6104 $, а на второй подрос на 5 591 $ с 27.04.2009 по сей день. Нужно быть справедливым и отметить, что минус на EURUSD закрылся случайно другим советником. Ну, а так бы этот минус болтался при сосответствующем размере депо без зарабатывания...

Жаль, что Кирилл (папа Ричарда) охладел к своему творению.

В сеточных стратегиях нужно добавить немножко логики для выставления в рынок ордеров и в тактике чуть-чуть применить "подпольности" (скрытности)... :casha:

Надо работать! :flower2:

 

Скрывать не буду брал за основу код Ричарда.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
sergey1294

Жаль, что Кирилл (папа Ричарда) охладел к своему творению.

 

Вот тут я думаю вы не правы. Кирилл у нас один, и на всех разорваться не может. И по мере возможности он исправляет ошибки. Ему отдать дожное нужно только за то что он просто написал какого либо советника по чьей-то просьбе. И еще все зависит на сколько активно ведется тестирование, и выкладывания результатов в ветку советника какими бы они не были. Это чисто мое мнение.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
sergey1294

Исправил проблему с колличеством знаков после запятой.

 

Советник Seregin v2.2

Seregin v2.2.mq4


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
TarasBY
Вот тут я думаю вы не правы. Кирилл у нас один, и на всех разорваться не может. И по мере возможности он исправляет ошибки. Ему отдать дожное нужно только за то что он просто написал какого либо советника по чьей-то просьбе. И еще все зависит на сколько активно ведется тестирование, и выкладывания результатов в ветку советника какими бы они не были. Это чисто мое мнение.

 

Я Кирилла не критиковал, я только выразил сожаление по поводу судьбы конкретного его творения. Обстоятельства превыше нас... :3:

Я так понимаю, что Вы, не будучи программистом по образованию, пытаетесь довести "до ума" чужие идеи...

И я в таком же положении... :crazy:


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
sergey1294
Я Кирилла не критиковал, я только выразил сожаление по поводу судьбы конкретного его творения. Обстоятельства превыше нас... :3:

Я так понимаю, что Вы, не будучи программистом по образованию, пытаетесь довести "до ума" чужие идеи...

И я в таком же положении... :crazy:

 

Действительно у меня нет образования программиста, я самоучка, даже в школе у меня не было предмета информатики. Программированием заинтересовался когда узнал что такое компьютер, а когда появился у меня свой первый начал пробовать писать программы на древнем бейсике и компе типа ZX-spectrum, он у меня еще дома где-то валяется.

 

Ну а теперь о свем творении подправил код, теперь если не правильно установлен уровень Delta, то есть меньше минималного уровня стопов советник не устанавливает серию ордеров. Чуть позже выложу исправленную версию, кое-что еще нужно подправить.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
sergey1294

Исправил последние обнаруженные ошибки. И у меня просьба ко всем использующим даный советник обратить внимание правильно ли срабатывает следующие условие. Когда в серии сработало колличество ордеров выставленных в параметре SeriesNorm, серия должна закрыться при достижении уровня ProfitDanger. По умолчанию стоит значение ноль, то есть безубыток. О любых результатах сразу сообщаем в данную ветку.

 

Советник Seregin v2.3

Seregin v2.3.mq4


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
sergey1294

Выкладываю первые результаты теста. Правда не получилось прогнать полностью на всей истории из-за обрыва связи с интернетом пришлось перезагружать комп.

 

Strategy Tester Report

Seregin v2.0

Alpari-Demo (Build 224)

 

Символ EURUSD (Euro vs US Dollar)

Период: 1 Час (H1) 1999.09.07 04:00 - 2009.05.29 22:00 (1999.01.01 - 2009.05.31)

Модель: Все тики (наиболее точный метод на основе всех наименьших доступных таймфреймов)

Параметры: Magic=1000000; Automat=true; SeriesNorm=8; SeriesMax=10; ProfitNorm=5; ProfitDanger=0; Lot=0.1; Delta=300; K=2; slip=3; MODE=2; s_mode_1="---MODE=1: AUTOMATIC---"; Type=0; NumberOfSeries=5; s_mode_2="---MODE=2: SIGNAL---"; s5="Setup: MA"; MA_timeframe=0; MA_period=8; MA_shift=0; MA_method=0; MA_applied_price=1;

Баров в истории 60455 Смоделировано тиков 24422257 Качество моделирования 89.85% Ошибки рассогласования графиков 0

 

Начальный депозит 5000.00

Чистая прибыль 9804.78

Общая прибыль 63583.56

Общий убыток -53778.78

Прибыльность 1.18

Матожидание выигрыша 5.05

Абсолютная просадка 1676.33

Максимальная просадка 4183.65 (44.11%)

Относительная просадка 53.73% (3860.07)

Всего сделок 1942

Короткие позиции (% выигравших) 1033 (86.06%)

Длинные позиции (% выигравших) 909 (81.96%)

Прибыльные сделки (% от всех) 1634 (84.14%)

Убыточные сделки (% от всех) 308 (15.86%)

Самая большая прибыльная сделка 460.80

Самая убыточная сделка -851.60

Средняя прибыльная сделка 38.91

Средняя убыточная сделка-174.61

Максимальное количество непрерывных выигрышей (прибыль) 31(251.31)

Максимальное непрерывных проигрышей (убыток) 4 (-200.33)Максимальная непрерывная прибыль (число выигрышей) 1310.73 (23)

Максимальный непрерывный убыток (число проигрышей) -851.60 (1)

Средний непрерывный выигрыш 6

Средний непрерывный проигрыш 1

 

f342bd0c5d94eb7bf94b6f11d36ef75f.gif


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
TarasBY
Выкладываю первые результаты теста. Правда не получилось прогнать полностью на всей истории из-за обрыва связи с интернетом пришлось перезагружать комп.

 

 

Символ EURUSD (Euro vs US Dollar)

Период: 1 Час (H1) 1999.09.07 04:00 - 2009.05.29 22:00 (1999.01.01 - 2009.05.31)

 

Начальный депозит 5000.00

Чистая прибыль 9804.78

 

Сергей! Ложечку скептицизма: в банк под 10 % на десять лет понадёжнее будет... :casha:


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
sergey1294
Сергей! Ложечку скептицизма: в банк под 10 % на десять лет понадёжнее будет... :casha:

 

Во блин! Сразу не обратил вниманиячт в отчет пишется толко выбранный дипазон. Это результат не за 10 лет, а за 1999.09.07 04:00 - 2000.11.02 09:22 т.к процесс прогона был прерван прудительно.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
Programmer
У Вас в цикле работы Semaphore стоит так:

 

RefreshRates();
SemaphoreTake("TRADECONTEXT");
.....
SemaphoreReturn("TRADECONTEXT");

Если на счёте работает десяток советников, то не будет ли правильнее прописать так:

 

SemaphoreTake("TRADECONTEXT");
RefreshRates();
.....
SemaphoreReturn("TRADECONTEXT");

 

Верно. Так будет эффективнее.

Share this post


Link to post
Share on other sites
Programmer
Во блин! Сразу не обратил вниманиячт в отчет пишется толко выбранный дипазон. Это результат не за 10 лет, а за 1999.09.07 04:00 - 2000.11.02 09:22 т.к процесс прогона был прерван прудительно.

 

А за 10 лет с оптимальными настройками покажите?!

Share this post


Link to post
Share on other sites
sergey1294
А за 10 лет с оптимальными настройками покажите?!

 

К сожалению оптимизация это очень долгий процесс, уже делаю третью попытку, несколько раз комп зависал и приходилось перезагружать, как только оптимизация завершиться прогоню на всей истории за 10 лет с наилучшими параметрами. Пока могу сказать оптимизация прводиться на последнем месяце с начальным депозитом 1000 $ на счете микро и классике. На микро торгует отлично из графика оптимизации видно болше 50 % прогон завершаеться в плюсе, а на классике к сожалению результаты менее положительны, хотя если использовать депо болше 5000 $ я думаю результаты будут лучше.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
TarasBY

Сергей, у Вас в коде в функции void CloseSeries():

void CloseSeries()
{
  int i, total = OrdersTotal();
  bool [b]res[/b];
  int cmd, error2;
  double price;

  ...

              if (cmd == OP_BUY || cmd == OP_SELL)
              {
                  while (true)
                  {
                      if (cmd == OP_BUY) 
                      {price = MarketInfo (OrderSymbol(), MODE_BID);}
                      else             
                      {price = MarketInfo (OrderSymbol(), MODE_ASK);}
                      SemaphoreTake ("TRADECONTEXT");
                      res = OrderClose (OrderTicket(), OrderLots(), price, slip, CLR_NONE);                       
                      if ([b]res != TRUE[/b]) {error2 = GetLastError(); error (GetLastError());}
...                      

          if (OrderType() != OP_BUY && OrderType() != OP_SELL)
          {
              SemaphoreTake ("TRADECONTEXT"); 
              res = OrderDelete (OrderTicket());
              SemaphoreReturn("TRADECONTEXT");
              if ([b]res < 0[/b])  {error (GetLastError()); return (-1);}
             ...
}

 

Сначала идёт

if (res != TRUE) {error2 = GetLastError(); error (GetLastError());}

а потом

if (res < 0) {error (GetLastError()); return (-1);}

а res - переменная bool. Это к чему?


Человек тогда готов ЗАРАБАТЫВАТЬ, когда он готов ЗАПЛАТИТЬ (в той или иной форме) за свою удачу... :yes:

Мои наработки - www.plati.ru/asp/seller.asp?id_s=178687. :cowboy:

Share this post


Link to post
Share on other sites
sergey1294
Сергей, у Вас в коде в функции void CloseSeries():

void CloseSeries()
{
  int i, total = OrdersTotal();
  bool [b]res[/b];
  int cmd, error2;
  double price;

  ...

              if (cmd == OP_BUY || cmd == OP_SELL)
              {
                  while (true)
                  {
                      if (cmd == OP_BUY) 
                      {price = MarketInfo (OrderSymbol(), MODE_BID);}
                      else             
                      {price = MarketInfo (OrderSymbol(), MODE_ASK);}
                      SemaphoreTake ("TRADECONTEXT");
                      res = OrderClose (OrderTicket(), OrderLots(), price, slip, CLR_NONE);                       
                      if ([b]res != TRUE[/b]) {error2 = GetLastError(); error (GetLastError());}
...                      

          if (OrderType() != OP_BUY && OrderType() != OP_SELL)
          {
              SemaphoreTake ("TRADECONTEXT"); 
              res = OrderDelete (OrderTicket());
              SemaphoreReturn("TRADECONTEXT");
              if ([b]res < 0[/b])  {error (GetLastError()); return (-1);}
             ...
}

 

Сначала идёт

if (res != TRUE) {error2 = GetLastError(); error (GetLastError());}

а потом

if (res < 0) {error (GetLastError()); return (-1);}

а res - переменная bool. Это к чему?

 

Оп! сорри, Пропустил как то это, похоже осталось со старых версий. Спасибо за обнаруженные ошибки, хотя компилятор это не считает похоже за ошибку. Сейчас исправим.


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
sergey1294

Исправлены обнаруженные ошибки

 

Советник Seregin v2.4

Seregin v2.4.mq4


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites
sergey1294

Кто нибудь подскажет, когда пытаюсь сохранить данные в Exсel из вкладки результаты оптимизации некоторые значения сохраняються в виде даты. Это можно как-то исправить?


Конструктор портфеля ПАММ-Счетов:

http://kpps.info/

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×