Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2286

 
Maxim Dmitrievsky:

Зачем это, если ТС не на тиках? достаточно средний спред вбить

этого точно достаточно
Передается не средний а минимальный. Если средний за несколько бар - то это будет средний среди минимальных. Чтобы реальный средний найти - придется реальные тики грузить.
Тестер на ценах открытия или OHLC сработает по минимальному спреду.
А на реальных тиках часть ТП и СЛ которые сработали на OHLC с мин. спредом, на верху или низу свечи не сработают с реальным спредом.
Может это 1-2 % всего от всего количества сделок, но это может быть существенным, когда борьба идет за каждый процент.
Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
HistoryDealsTotal - Торговые функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
elibrarius:

Хотелось бы вместо минимального спреда для Bid баров, иметь вторую свечу c ценами OHLC по Ask.

сделайте кастомный символ, например так:

//+------------------------------------------------------------------+
#include <fxsaber\Symbol.mqh> // https://www.mql5.com/ru/code/18855
//+------------------------------------------------------------------+
void OnStart()
{
   const SYMBOL SymbDB(_Symbol + "ask");
   if(!SymbDB.IsExist()) // Если символ не создан, выход
   {
      Alert("Error create ", _Symbol + "ask symbol");
      return;
   }
   SymbDB.Off();
   SymbDB.CloneProperties(); // Скопировали свойства
   if(CustomRatesDelete(SymbDB.Name, 0, TimeCurrent()) == -1)
   {
      Alert("Error CustomRatesDelete , GetLastError = ", GetLastError());
      return;
   }
   MqlTick ticks[];
   if(CopyTicksRange(_Symbol, ticks, COPY_TICKS_ALL, D'2021.01.01' * 1000) == -1)
   {
      Alert("Error CopyTicksRange , GetLastError = ", GetLastError());
      return;
   }
   for(int i = ArraySize(ticks) - 1; i >= 0; i--)
   {
      ticks[i].bid = ticks[i].ask;
   }
   if(SymbDB.On()) // Включили в Обзор рынка
   {
      CustomTicksAdd(SymbDB.Name, ticks);
      ChartOpen(SymbDB.Name, PERIOD_M1); // Открыли график нового символа
   }
}
 
Igor Makanu:

сделайте кастомный символ, например так:

Не люблю кастомные, первое впечатление не очень, давно это было, не помню что именно не понравилось. Пользуюсь файлами.

И опять же - это скачивать хоть и 1 раз, но все тиковые данные.

[Удален]  
elibrarius:
Передается не средний а минимальный. Если средний за несколько бар - то это будет средний среди минимальных. Чтобы реальный средний найти - придется реальные тики грузить.
Тестер на ценах открытия или OHLC сработает по минимальному спреду.
А на реальных тиках часть ТП и СЛ которые сработали на OHLC с мин. спредом, на верху или низу свечи не сработают с реальным спредом.
Может это 1-2 % всего от всего количества сделок, но это может быть существенным, когда борьба идет за каждый процент.

самому задать нужный спред, с запасом

 
Maxim Dmitrievsky:

самому задать нужный спред, с запасом

Это не точно. Я лучше тики покачаю)
Закину оба  OHLC в файлы - а дальше как обычно...
 
Renat Fatkhullin: 

Рынок и время рассудят. MQL5 отличный продукт, лучший в своем роде,но имеет все шансы не вписаться в новый рынок.
Кстати, ссылка на noname сайт где только поиском в браузере удалось найти что то про MQl не лучший пример успеха ))

 
Igor Makanu:

сделайте кастомный символ, например так:

Как тестировать по нему? Покупать один символ по Bid, а продавать другой по Ask?

В тестере ТП сработает по ( Bid - мин. спред), а не по Ask из кастомного символа. Или я ошибаюсь?
 
Maxim Dmitrievsky:

Возможно, есть смысл сделать с заделом на автоматическое дифференцирование (как, например, в PyTorch). Т.е. тензоры с возможностью вычисления градиента по ним, ну а сверху можно любые нейросети лепить

но это очень большая работа, наверное, все равно что свой нейросетевой движок писать

Смысл есть, и не только, еще логарифмирование и др. Вообще функции подготовки данных для обучения это важная тема. без нее никак. Хотя согласен, тема тяжелая, к тому же алгоритмы со временем будут устаревать и требовать соответствие запросам.

 

В общем нужна вторая версия реальных тиков, но в котором всего 6 тиков:
Open: Bid и Ask

High Bid

High Ask

Low Bid

Low Ask

Close: Bid и Ask

Для всех High и Low Надо сохранить порядок их прихода по вемени, т.е. они могут быть не в таком порядке, как я их написал.

Таким инструментом можно Бары оценивать с точностью реальных тиков. С гораздо меньшим траффиком. И тестер научить торговать с ними конечно надо - но думаю, что движок реальных тиков подойдет без переделок.

 
Evgeny Dyuka:

Я весь мир представляю как коммерсант. Имею продукт и продвигаю его. Ищю лучшие способы. MQL5 для продвижения продукта не работает никак, это мой личный опыт, не более того.

- попытался в MQL статью по моей теме разместить, послали нах..., с формулировкий "недостаточный объем, поэтому, сорри, но даже читать не будем",
- маркет MQL5 недоступен для моего продукта,
- из 10 клиентов только 1 (в лучшем случае) пользуется или пользовался терминалом MQL,
- "просто найдите МТ5 брокера с прямыми интеграциями с криптобиражми" это костыль который в реальной жизни не работает потому, что криптобиржа это и есть единственный прямой брокер, и у них у всех прекрасный api.

По моему, вы (MQL) погружаететсь в какой то свой мир и мереетесь там у кого код длиннее и толще.

Что значит погружаетесь?

Мы создали этот мир сами, пройдя от MQL (2001), MQL2 (2002), MQL4(2005) до MQL5(2008). В то время, как остальные говорили как и вы "у вас ничего не получится. вот тут есть лучше решения".

Это вы имеете ограниченное восприятие мира с 10 клиентами, а только вчера на этом сайте было более 300 000 живых посетителей. За 2020 год сайт посетили 43 миллиона людей.

На этом 7 язычном сайте:

  • 8.5 млн зарегистрированных пользователей
  • 12 000 программ в исходниках только в Codebase
  • 24 000 программ в маркете