От теории к практике - страница 532

 
Igor Makanu:

т.е. идеи проще в Матлабе проверить (или  с нуля на MQL сделать), а если идею нужно портировать в MQL - тогда уже придется ALGLIB изучать

Зачем? Кроме Алглиба полно хорошо документированных либов и пакетов. Хоть в R, хоть под Питон. И много шире алглиба. Почти все на С++. Портируй и пользуйся.

Ну, вообще, без предварительного моделирования на стороне, какую-либо более-менее сложную стратегию сходу сделать на MQL - эт вряд-ли. А потом и переводить на MQL не захочется.))

ЗЫ За 10 лет по разным причинам сменил несколько терминалов, и пришел к выводу, что АТС не должна зависеть от терминала. И сейчас на 2-х разных работаю. Терминал должен быть только поставщиком данных и "исполнителем" заявок.

 
Yuriy Asaulenko:

Зачем? Кроме Алглиба полно хорошо документированных либов и пакетов. Хоть в R, хоть под Питон. И много шире алглиба. Почти все на С++. Портируй и пользуйся.

Ну, вообще, без предварительного моделирования на стороне, какую-либо более-менее сложную стратегию сходу сделать на MQL - эт вряд-ли. А потом и переводить на MQL не захочется.))

ЗЫ За 10 лет по разным причинам сменил несколько терминалов, и пришел к выводу, что АТС не должна зависеть от терминала. И сейчас на 2-х разных работаю. Терминал должен быть только поставщиком данных и "исполнителем" заявок.

ну я АлгЛиб портировал в качестве практики программирования под МТ5 - изучаю еще и чтобы понять концепцию, так сказать,  как построен Алглиб - потратил неделю, результат положительный

ну и в части проверки идей - под МТ5 реально что то быстро портировать, но до момента пользовательского интерфейса, тогда задача усложняется, с Матлабом проще - вот формула бери пиши и проверяй и визуализируй

ну и не маловажное достоинтство Матлаба - реально много готового материала в сети, увы с R и с Питон ну ни как не охота разбираться, это еще на месяца 3-4 чтения и тестирования ))))

ЗЫ: кто то писал на форуме, что сейчас ценят в ИТ компаниях не качество написания кода, а только скорость проверки идей , понятно почему весь новый софт прожорлив по ресурсам, но для наших задач концепция правильная!

 
Igor Makanu:

ну и в части проверки идей - под МТ5 реально что то быстро портировать, но до момента пользовательского интерфейса, тогда задача усложняется, с Матлабом проще - вот формула бери пиши и проверяй и визуализируй

ну и не маловажное достоинтство Матлаба - реально много готового материала в сети, увы с R и с Питон ну ни как не охота разбираться, это еще на месяца 3-4 чтения и тестирования ))))

ЗЫ: кто то писал на форуме, что сейчас ценят в ИТ компаниях не качество написания кода, а только скорость проверки идей , понятно почему весь новый софт прожорлив по ресурсам, но для наших задач концепция правильная!

Ну, о преимуществах МатЛаба для моделирования разногласий нет - быстро, удобно, оперативно. R, Питон и пр. в этом не уступают, разве, что бесплатные.

Питон (сейчас в фоновом режиме пытаюсь что-то реальное сделать, оч неспеша) понравился тем, что он хорош и как среда моделирования, и как среда разработки. Т.е. после моделирования имеем сразу уже готовую систему. Остается только подключить ее к терминалу. https://www.mql5.com/ru/forum/269426

Делаем торговую систему на Python для МТ.
Делаем торговую систему на Python для МТ.
  • 2018.07.30
  • www.mql5.com
Возникла мысль написать торговую систему на Python, и коли уж возникла, почему-бы не сделать эту систему общедоступной...
 
Yuriy Asaulenko:

Ну, о преимуществах МатЛаба для моделирования разногласий нет - быстро, удобно, оперативно. R, Питон и пр. в этом не уступают, разве, что бесплатные.

Питон (сейчас в фоновом режиме пытаюсь что-то реальное сделать, оч неспеша) понравился тем, что он хорош и как среда моделирования, и как среда разработки. Т.е. после моделирования имеем сразу уже готовую систему. Остается только подключить ее к терминалу. https://www.mql5.com/ru/forum/269426

видел топик, неее не хочу Питон, я вообще на Делфи лет 10 программировал, С++ знаю, dll пишу, имхо проще или в Делфи все загнать от МТ взять только котировки и бары и торговые операции и сделать в течении дня любую визуализацию или наоборот все в МТ5 сделать, а всю математику в dll воткнуть, с того же Матлаба можно готовую dll получить

ну или по старинке 100% кода на чистом МТ4 написать )))

ЗЫ: тут в целом то не проблема проверять свои идеи все платформы довольно развиты - сужу по сообществам,  любой непонятный вопрос решается в течении суток - много русскоязычных форумов и активные участники, но проблема то  в другом.... в правильны направлениях исследований!

 
Igor Makanu:

 но проблема то  в другом.... в правильны направлениях исследований!

Дык, для того и моделирование, а не сразу пишем АТС.

Предыдущую АТС я моделировал примерно полгода. В итоге получилась оч. простая и красивая система. Но в процессе сложностей было более чем достаточно.)

Вот визуализации почти никакой. Все логи пишутся в БД Access.

 
RRR5:

как?


как линеаризовать функцию  y=ax2+bx+c?

берешь обычную множественную регрессию alglib, подаешь на вход 2 цены - обычную и в квадрате

а на выход просто цену

просто это нафиг не надо в голом виде

 
Maxim Dmitrievsky:

не компилится, можно пример использования?

Недосмотрел. Это файл поддержки дебаг-версии. Если брать еще и его - он потянет за собой много чего.

Удали инклуд этого файла, и удали все ASSERT'ы и TRACE'ы.

 
Georgiy Merts:

Это файл поддержки дебаг-версии.

Удали его, и удали все ASSERT'ы и TRACE'ы.

ага ок, уже разобрался, спасибо.. не знаю зачем она мне, просто позырить как умные люди кодят )

 

в том индюке полиномиальной регресии, что я выкладывал, регрессия реализована через функцию:

double regression_QRMA(int period,int shift,int price) 
  {
   double lwma= iMA(NULL,0,period,0,MODE_LWMA,price,shift);
   double sma = iMA(NULL,0,period,0,MODE_SMA,price,shift);
   double qwma= ma_qwma(period,shift,price);
   double value=3.0*sma+qwma *(10-15/(period+2))-lwma *(12-15/(period+2));
   return(value);
  }

где

double ma_qwma(int period,int shift,int price) 
  {
   double sum=0;
   int j,i;
   for(j=shift,i=1;j<shift+period; j++,i++) 
     {
      sum+=switch_getPrice(price,j)*MathPow(period-i+1,2);
     }
   double value=6.0/(period *(period+1) *(2*period+1));
   return(value*sum);
  }


double switch_getPrice(int price,int shift) 
  {
   switch(price) 
     {
      case 0:
         return(Close[shift]);
      case 1:
         return(Open[shift]);
      case 2:
         return(High[shift]);
      case 3:
         return(Low[shift]);
      case 4:
         return((High[shift]+Low[shift])/2);
      case 5:
         return((High[shift]+Low[shift]+Close[shift])/3);
      case 6:
         return((High[shift]+Low[shift]+Close[shift]+Close[shift])/4);
      default:
         return(Close[shift]);
     }
  }


это правильно?)
разве МНК можно реализовать через машки?)

 
RRR5:
в том индюке полиномиальной регресии, что я выкладывал, регрессия реализована через функцию:
это правильно?)
разве МНК можно реализовать через машки?)

Ну, правильность - гляди сам. Мне весьма странной выглядит формула вычисления value. Это явно не МНК, но, вполне возможно, что-то среднее получается.

Насчет "МНК через машки" - очень сомнительно. Метод наименьших квадратов - это нахождение таких коэффициентов аппроксимирующей кривой, чтобы сумма квадратов разностей исходных и аппроксимируемых значений точек была минимальной.

Берем исходные точки, для абсциссы каждой считаем аппроксимированные ординаты, вычитаем реальные ординаты, возводим в квадрат, и все квадраты - суммируем. Вот эту самую сумму дифференцируем по каждой неизвестной (неизвестные у нас коэффициенты аппроксимирующей кривой), получаем систему уравнений. Если аппроксимируем полиномом - то получаем систему линейных алгебраических уравнений. Решаем ее - получаем коэффициенты.  Мне кажется, как с машками не извращайся - тоже самое не получишь.