Тестер: Автоматическая оптимизация торгового робота в процессе реальной торговли - страница 4

 
Paha:
Уважаемый Xeon!
Ваша идея использовать параллельный терминал очень интересна, если не сочтете за труд, ответьтте пожалуйста на один вопрос отвлеченный от темы вашей разработки.

Есть проблемма и тема для размышления: диллер не принимает скользящие стоп ордера и не разрешает использовать советники в процессе торговли, без каких либо ограничений.
Как можно запрет обойти?
Есть в принципе идея: Отправка запросов осуществляется по нажатию кнопки Бай или Селл. Может можно, допустим, в параллельном терминале осуществлять, на демосчете, процесс торговли с помощью советника, а приказы транслировать через реальный терминал. Правда возникнет вопрос по обмену данными исходящими и входящими. Но я не программист
и в кодах не разбираюсь. А вопрос данный я думаю волнует многих.
Спасибо!
Теоретически это возможно, например "Демо-терминал" может отправлять через внешнюю dll команды по нажатию кнопок на "Реал-Терминале", но реализация этого алгоритма потребует усилий которые вряд-ли этого стоят, в ветке 'Вопрос: Как обойти запрет на торговлю с помощью советников?' вам уже ответили на этот вопрос.
Проще поменять ДЦ.
 
Если бы в Харькове было ДЦ побольше было-бы проще. ИХ Всего 3 штуки, один "лучше" другого, у каждого свои прибамбасы, приходится выбирать что есть.
Спасибо за ответ!
 
Paha:
Если бы в Харькове было ДЦ побольше было-бы проще. ИХ Всего 3 штуки, один "лучше" другого, у каждого свои прибамбасы, приходится выбирать что есть.
Спасибо за ответ!

а почему так принципиально ДЦ именно из Харькова?  насколько я знаю большинство ДЦ работают с электронными деньгами WebMany, а их даже в америке принимают.
 
xeon:
Paha:
Если бы в Харькове было ДЦ побольше было-бы проще. ИХ Всего 3 штуки, один "лучше" другого, у каждого свои прибамбасы, приходится выбирать что есть.
Спасибо за ответ!

а почему так принципиально ДЦ именно из Харькова? насколько я знаю большинство ДЦ работают с электронными деньгами WebMany, а их даже в америке принимают.
А если какая проблема? Ее легче решить в Америке или по местному? Хотя может это наш менталитет сказывается? Не очень мы привычны к зарубежным банкам. Когда говорят минимальное депо 5000 и ваш счет будет открыт в офшоре.... Извени но просто нет доверия.... Может я и не прав, но лучше перестраховаться. Тут чтоб заработать начальное депо приходилось вкалывать... А потерять его где нибуть на Багамах ну не хооочуууу! :-) Есть российские представительства, но и у них банк в латвии. В принципе ничего плохого и работают не первый год, может к ним и подамся.
 
здравствуйте!
ну когда же победа будет за мной???
вопрос в следующем. я разобрался почему у меня не оптимизировал и т.д. но что в результате.
взял  ваш файл с MACD и его оптимизировал.  оптимизация идет, файл с отчетом оптимизатора создается, и создаются файлы  сортированные, но в них в строке GrossProfit - всегда  0, а размер профита отображается в строке TotalTrades. Н иже приведу копию сторк из файла. И на экран результаты теста выдаются а вот в советник не заносятся.
Если говорить о советнике с которым я работаю и автооптимизация которого меня интересует, то оптимизируя он выбирает очень плохой результат из тех что есть. В чем может быть ошибка?
И еще поясните суть следующего поподробнее
// Ограничение на минимальное количество сделок в день
double MinTr = TestDay - 2;
// Ограничение на максимальное количество сделок в день
double MaxTr = (60 / Period()*TestDay) + 2;
// Количество попыток скопировать файл отчета
int KvoPptk = 10;
// Количество строк для сортировки
int StepRes = 12;

Как понять TestDay - 2 - чему равно это ограничение - кол-во дней тестирования - 2 - тогда к примеру я тестирую на 14 дней и мне нужно чтобы совершалось 14-2 сдлеки = 12 в день? или я неправильно понимаю.
тоже по максимальному тестированию.
 Спасибо. привожу данные из файла .csv
GrossProfit TotalTrades ProfitFactor ExpectedPayoff FastEMA SlowEMA SignalSMA
0 8 1000.00000000 0.00000000 17 27 13 0
0 10 1000.00000000 0.00000000 17 27 12 0

...да... Метатрейдер 203 билд
 

Здравствуйте всем!
На прошлой неделе занялся оптимизацией AI и мне дали ссылку на эту ветку. Смотрю СDR, Paha занимаются тем-же. Я прогнал на 12 инструментах с 2го по 19 апреля на всех ТФ. Оптимизировал х1, х2, х3, х4, tp, sl. Лучшие результаты на 5м и 1h. Сегодня с начала сесси поставил их соответственно на два разных демо-счета. Если еще и с автооптимизацией на h1 запустить один счет было бы здорово. XEON, если можно мне бы то-же сразу встроить в AI автооптимизатор. И еще, первые ордера выставляются 0,01 лота, как я изменил в самом b-lots, а следующие по 0,1 лоту. Хотя в настройках по выбору лота выставлено вот так extern int LotsWayChoice = 0; // Способ выбора рабочего лота: // 0-фиксированный. Хотелось бы чтобы сразу под небольшой реал тестировалось. И тип исполнения ордеров в моем ДЦ Execution by Market у меня есть переделанный AI, но если не трудно сразу-бы сделать под это исполнение. Какие заинтересуют отчеты, результаты буду выкладывать. С уважением. Дмитрий

 
Dmitriy2:

Здравствуйте всем!
На прошлой неделе занялся оптимизацией AI и мне дали ссылку на эту ветку. Смотрю СDR, Paha занимаются тем-же. Я прогнал на 12 инструментах с 2го по 19 апреля на всех ТФ. Оптимизировал х1, х2, х3, х4, tp, sl. Лучшие результаты на 5м и 1h. Сегодня с начала сесси поставил их соответственно на два разных демо-счета. Если еще и с автооптимизацией на h1 запустить один счет было бы здорово. XEON, если можно мне бы то-же сразу встроить в AI автооптимизатор. И еще, первые ордера выставляются 0,01 лота, как я изменил в самом b-lots, а следующие по 0,1 лоту. Хотя в настройках по выбору лота выставлено вот так extern int LotsWayChoice = 0; // Способ выбора рабочего лота: // 0-фиксированный. Хотелось бы чтобы сразу под небольшой реал тестировалось. И тип исполнения ордеров в моем ДЦ Execution by Market у меня есть переделанный AI, но если не трудно сразу-бы сделать под это исполнение. Какие заинтересуют отчеты, результаты буду выкладывать. С уважением. Дмитрий

Я Ai гоняю уже с декабря и я туда добавил изменения лота. а размер лота какой ниже указан  0. 01? но пока не понял что у тебя там происходит. А результаты хорошие дает на тестах на всех фреймах.  Я счас на минуты подсел . Там убытки могут быть меньше.
 
CDR:
здравствуйте!
ну когда же победа будет за мной???
вопрос в следующем. я разобрался почему у меня не оптимизировал и т.д. но что в результате.
взял ваш файл с MACD и его оптимизировал. оптимизация идет, файл с отчетом оптимизатора создается, и создаются файлы сортированные, но в них в строке GrossProfit - всегда 0, а размер профита отображается в строке TotalTrades. Н иже приведу копию сторк из файла. И на экран результаты теста выдаются а вот в советник не заносятся.
Если говорить о советнике с которым я работаю и автооптимизация которого меня интересует, то оптимизируя он выбирает очень плохой результат из тех что есть. В чем может быть ошибка?
И еще поясните суть следующего поподробнее
// Ограничение на минимальное количество сделок в день
double MinTr = TestDay - 2;
// Ограничение на максимальное количество сделок в день
double MaxTr = (60 / Period()*TestDay) + 2;
// Количество попыток скопировать файл отчета
int KvoPptk = 10;
// Количество строк для сортировки
int StepRes = 12;

Как понять TestDay - 2 - чему равно это ограничение - кол-во дней тестирования - 2 - тогда к примеру я тестирую на 14 дней и мне нужно чтобы совершалось 14-2 сдлеки = 12 в день? или я неправильно понимаю.
тоже по максимальному тестированию.
Спасибо. привожу данные из файла .csv
GrossProfit TotalTrades ProfitFactor ExpectedPayoff FastEMA SlowEMA SignalSMA
0 8 1000.00000000 0.00000000 17 27 13 0
0 10 1000.00000000 0.00000000 17 27 12 0

...да... Метатрейдер 203 билд

Выложите здесь код советника который вы хотите автооптимизировать, тогда можно будет разобратся в причинах.
 
Dmitriy2:

Здравствуйте всем!
На прошлой неделе занялся оптимизацией AI и мне дали ссылку на эту ветку. Смотрю СDR, Paha занимаются тем-же. Я прогнал на 12 инструментах с 2го по 19 апреля на всех ТФ. Оптимизировал х1, х2, х3, х4, tp, sl. Лучшие результаты на 5м и 1h. Сегодня с начала сесси поставил их соответственно на два разных демо-счета. Если еще и с автооптимизацией на h1 запустить один счет было бы здорово. XEON, если можно мне бы то-же сразу встроить в AI автооптимизатор. И еще, первые ордера выставляются 0,01 лота, как я изменил в самом b-lots, а следующие по 0,1 лоту. Хотя в настройках по выбору лота выставлено вот так extern int LotsWayChoice = 0; // Способ выбора рабочего лота: // 0-фиксированный. Хотелось бы чтобы сразу под небольшой реал тестировалось. И тип исполнения ордеров в моем ДЦ Execution by Market у меня есть переделанный AI, но если не трудно сразу-бы сделать под это исполнение. Какие заинтересуют отчеты, результаты буду выкладывать. С уважением. Дмитрий

хорошо, выкладывайте код, а я подключу к нему автооптимизатор, но это будет не раньше выходных, сейчас к сожалению совершенно нет свободного времени. Не забудте указать переменные которые вы хотите оптимизировать автоматически.
 
xeon:
CDR:
здравствуйте!
ну когда же победа будет за мной???
вопрос в следующем. я разобрался почему у меня не оптимизировал и т.д. но что в результате.
взял  ваш файл с MACD и его оптимизировал.  оптимизация идет, файл с отчетом оптимизатора создается, и создаются файлы  сортированные, но в них в строке GrossProfit - всегда  0, а размер профита отображается в строке TotalTrades. Н иже приведу копию сторк из файла. И на экран результаты теста выдаются а вот в советник не заносятся.
Если говорить о советнике с которым я работаю и автооптимизация которого меня интересует, то оптимизируя он выбирает очень плохой результат из тех что есть. В чем может быть ошибка?
И еще поясните суть следующего поподробнее
// Ограничение на минимальное количество сделок в день
double MinTr = TestDay - 2;
// Ограничение на максимальное количество сделок в день
double MaxTr = (60 / Period()*TestDay) + 2;
// Количество попыток скопировать файл отчета
int KvoPptk = 10;
// Количество строк для сортировки
int StepRes = 12;

Как понять TestDay - 2 - чему равно это ограничение - кол-во дней тестирования - 2 - тогда к примеру я тестирую на 14 дней и мне нужно чтобы совершалось 14-2 сдлеки = 12 в день? или я неправильно понимаю.
тоже по максимальному тестированию.
 Спасибо. привожу данные из файла .csv
GrossProfit TotalTrades ProfitFactor ExpectedPayoff FastEMA SlowEMA SignalSMA
0 8 1000.00000000 0.00000000 17 27 13 0
0 10 1000.00000000 0.00000000 17 27 12 0
//+------------------------------------------------------------------+
//|                                       ArtificialIntelligence.mq4 |
//|                               Copyright © 2006, Yury V. Reshetov |
//|                                         http://reshetov.xnet.uz/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2006, Yury V. Reshetov ICQ:282715499  http://reshetov.xnet.uz/"
#property link      "http://reshetov.xnet.uz/"
//---- input parameters
extern int    x1 = 135;
extern int    x2 = 127;
extern int    x3 = 16;
extern int    x4 = 93;
// StopLoss level
extern double sl = 85;
extern int MagicNumber = 888;
static int prevtime = 0;
#include <b-Lots.mqh>
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
   if(Time[0] == prevtime) 
       return(0);
   prevtime = Time[0];
   int spread = 3;
//----
   if(IsTradeAllowed()) 
     {
       RefreshRates();
       spread = MarketInfo(Symbol(), MODE_SPREAD);
     } 
   else 
     {
       prevtime = Time[1];
       return(0);
     }
   int ticket = -1;
// check for opened position
   int total = OrdersTotal();   
//----
   for(int i = 0; i < total; i++) 
     {
       OrderSelect(i, SELECT_BY_POS, MODE_TRADES); 
       // check for symbol & magic number
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber) 
         {
           int prevticket = OrderTicket();
           // long position is opened
              Lots=GetSizeLot();
                   if(OrderType() == OP_BUY) 
             {
               // check profit 
               if(Bid > (OrderStopLoss() + (sl * 2  + spread) * Point)) 
                 {               
                   if(perceptron() < 0) 
                     { // reverse
                       ticket = OrderSend(Symbol(), OP_SELL, Lots * 2, Bid, 3, 
                                          Ask + sl * Point, 0, "AI", MagicNumber, 0, Red); 
                       Sleep(30000);
                       //----
                       if(ticket < 0) 
                           prevtime = Time[1];
                       else 
                           OrderCloseBy(ticket, prevticket, Blue);   
                     } 
                   else 
                     { // trailing stop
                       if(!OrderModify(OrderTicket(), OrderOpenPrice(), Bid - sl * Point, 
                          0, 0, Blue)) 
                         {
                           Sleep(30000);
                           prevtime = Time[1];
                         }
                     }
                 }  
               // short position is opened
             } 
           else 
             {
               // check profit 
               if(Ask < (OrderStopLoss() - (sl * 2 + spread) * Point)) 
                 {
                   if(perceptron() > 0) 
                     { // reverse
                       ticket = OrderSend(Symbol(), OP_BUY, Lots * 2, Ask, 3, 
                                          Bid - sl * Point, 0, "AI", MagicNumber, 0, Blue); 
                       Sleep(30000);
                       //----
                       if(ticket < 0) 
                           prevtime = Time[1];
                       else 
                           OrderCloseBy(ticket, prevticket, Blue);   
                     } 
                   else 
                     { // trailing stop
                       if(!OrderModify(OrderTicket(), OrderOpenPrice(), Ask + sl * Point, 
                          0, 0, Blue)) 
                         {
                           Sleep(30000);
                           prevtime = Time[1];
                         }
                     }
                 }  
             }
           // exit
           return(0);
         }
     }
// check for long or short position possibility
   if(perceptron() > 0) 
     { //long
       ticket = OrderSend(Symbol(), OP_BUY, Lots, Ask, 3, Bid - sl * Point, 0, "AI", 
                          MagicNumber, 0, Blue); 
       //----
       if(ticket < 0) 
         {
           Sleep(30000);
           prevtime = Time[1];
         }
     } 
   else 
     { // short
       ticket = OrderSend(Symbol(), OP_SELL, Lots, Bid, 3, Ask + sl * Point, 0, "AI", 
                          MagicNumber, 0, Red); 
       if(ticket < 0) 
         {
           Sleep(30000);
           prevtime = Time[1];
         }
     }
//--- exit
   return(0);
  }
//+------------------------------------------------------------------+
//| The PERCEPTRON - a perceiving and recognizing function           |
//+------------------------------------------------------------------+
double perceptron() 
  {
   double w1 = x1 - 100;
   double w2 = x2 - 100;
   double w3 = x3 - 100;
   double w4 = x4 - 100;
   double a1 = iAC(Symbol(), 0, 0);
   double a2 = iAC(Symbol(), 0, 7);
   double a3 = iAC(Symbol(), 0, 14);
   double a4 = iAC(Symbol(), 0, 21);
   return(w1 * a1 + w2 * a2 + w3 * a3 + w4 * a4);
  }
//+------------------------------------------------------------------+


...да... Метатрейдер 203 билд

Выложите здесь код советника который вы хотите автооптимизировать, тогда можно будет разобратся в причинах.
такое происходит с Вашим советником MACD. а потимищировать я хочу все тот же Ai  в который добавил изменения лотов. необходимо оптимизировать 5 переменных  х1, х2,х3,х4, sl. ну если не составит труда кнечно. я  тут не один такой.
И еще по поводу библиотеки. думаю Вам уже приходила такая мысль добавить возможномть тестировать раз в неделю и раз в месяц. ну и меня интересует фильр по минимальным убыткам.
Обещание предоставлять результаты использования автооптимизатора в силе. как только настрою с своим советником.
Удачи
Причина обращения: