Оптимизировать торговую стратегию

 

Здравствуйте.

Торгую без использования советников, однако, возникла идея оптимизировать стратегию в тестере. Анализируя свои сделки предположил что с\л и т\п можно было ставить на иные цены. Хочу проверить своё предположение в тестере, на оптимизации этих двух параметров. Есть некий результат моей торговли по евродоллару за 7 месяцев. Как сделать чтобы советник   MACD Sample.mq4 из терминала, открывал на истории в 7 месяцев там позиции, где я их открывал? В советник добавил стоп лосс.

 
yiduwi:

Здравствуйте.

Торгую без использования советников, однако, возникла идея оптимизировать стратегию в тестере. Анализируя свои сделки предположил что с\л и т\п можно было ставить на иные цены. Хочу проверить своё предположение в тестере, на оптимизации этих двух параметров. Есть некий результат моей торговли по евродоллару за 7 месяцев. Как сделать чтобы советник   MACD Sample.mq4 из терминала, открывал на истории в 7 месяцев там позиции, где я их открывал? В советник добавил стоп лосс.

Чтобы оптимизировать свою стратегию, нужно создать советник, работающий по этой стратегии. Заказать советник можно здесь.

 
khorosh:

Чтобы оптимизировать свою стратегию, нужно создать советник, работающий по этой стратегии. Заказать советник можно здесь.

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

 
yiduwi:

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

1. Выгрузить ваши позиции в файл.

2. Написать простейший советник открывающий-закрывающий позиции по данным из файла.

 
yiduwi:

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

Ну если так, то используйте тестер для ручных стратегий. Это сторонний софт. Вариантов довольно много. Пояндексите и найдёте.
 
Boris Gulikov:
Ну если так, то используйте тестер для ручных стратегий. Это сторонний софт. Вариантов довольно много. Пояндексите и найдёте.

Вариант не подходит для оптимизации. На истории в 7 месяцев открывать позиции вручную, с тремя вариантами т\п и с\л)

 
Natalja Romancheva:

1. Выгрузить ваши позиции в файл.

2. Написать простейший советник открывающий-закрывающий позиции по данным из файла.

Это мысль! Нельзя без выгрузки, по ходу работы тестера читать историю? Если дата открытия реальной позиции совпала с текущей датой в тестере, то открыть позицию.

 
Natalja Romancheva:

1. Выгрузить ваши позиции в файл.

2. Написать простейший советник открывающий-закрывающий позиции по данным из файла.

не то чтобы совсем простейший, и нужны доп.настройки:

  * те же самые различные TP/SL

   * расписания по неделям/дням/часам

   * варианты трала

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

странно что таких простых тулзов нет в CodeBase/Market

---

ну это я так, поддержать толковую тему :-) штуковина на первый взгляд выглядит не слишком сложной, но при этом полезной...
глядишь кто и сделает себе имя 

 
Maxim Kuznetsov:

вполне разумное желание трейдера...

Благодарю за поддержку)

Задача несколько упростилась, поскольку торговал исключительно в шорт. Сохранил все даты сделок в txt файл, в таком формате:

2019.04.12 16:18
2019.04.17 10:36
2019.04.18 10:03
2019.04.18 14:12

Прочесть и вывести на принт получается, но сравнить со временем свечи нет.

Как узнать что время свечи равно одному из значений из файла?

Не работает условие 

if(time[i]>=FileReadString(file_handle) && time[i]<FileReadString(file_handle)+10)

здесь

   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)
     {
      ResetLastError();
      //--- откроем файл для чтения (если файл не существует, то произойдет ошибка)
      file_handle=FileOpen(InpFileName,FILE_READ|FILE_TXT);

      if(file_handle!=INVALID_HANDLE)
        {
         //--- распечатаем содержимое файла
         while(!FileIsEnding(file_handle))
           // if(time[i]>=FileReadString(file_handle) && time[i]<FileReadString(file_handle)+10)//
              {
               BufferUP[i]=low[i]-10*Point;//
              Print("txt dat: ",FileReadString(file_handle),"time: ",time[i] );
              }
         //--- закрываем файл
         FileClose(file_handle);
        }
      else
         PrintFormat("Ошибка, код = %d",GetLastError());

     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
 
yiduwi:

Благодарю за поддержку)

Задача несколько упростилась, поскольку торговал исключительно в шорт. Сохранил все даты сделок в txt файл, в таком формате:

Прочесть и вывести на принт получается, но сравнить со временем свечи нет.

Как узнать что время свечи равно одному из значений из файла?

Не работает условие 

здесь

Надо строку перевести в тип datetime

time[i]>=StringToTime(FileReadString(file_handle))
 
Alexey Viktorov:

Надо строку перевести в тип datetime

Признателен, однако, с этим условием, всё равно, что то не так. Стрелки где попало.

if(time[i]>=StringToTime(FileReadString(file_handle)) && time[i]<=StringToTime(FileReadString(file_handle))+10)

Как написать условие:- если любое время бара равно любому значению времени из файла?

Причина обращения: