Multidimensional Space Trading Strategies
Введення
Приблизно три роки тому я написав свою першу і не вважаючи цієї єдину статтю на Хабрахабре «Як я зробив тестер-оптимізатор для знаходження прибуткових стратегій на Біржі». Спрацював ефект Хабрахабра, стаття виявилася дуже популярною і мене буквально засипали повідомленнями і різними пропозиціями трейдери. А через місяць цю ж статтю надрукували в журналі про фінанси One Financial. Звичайно, я не очікував такої уваги до моїх напрацювань і, можливо, завдяки цьому я прийняв остаточне рішення зайнятися алгоритмічної торгівлею на Біржі професійно.
З моменту написання статті багато чого змінилося. Встиг попрацювати в алгоритмічній і хедж-фонді, у процесі реалізував свої ідеї у вигляді повноцінної платформи для алгоритмічної торгівлі. До речі, скоро планую перевести частину алгоритмів і програмного коду в Open Source на GitHub. Розробити платформу було вельми непросто, довелося значно підтягнути свої навички програмування на C# і розібратися з безліччю нюансів і складнощів біржової торгівлі. 
При цьому в алгоритмічної торгівлі питання оптимізації стратегій і раніше стоять дуже гостро. У цій статті я б хотів поділитися отриманим досвідом і деякими особливостями оптимізації алгоритмічних торгових стратегій.

Читати далі →

ще трохи Заглибимося в малохоженные нетрі Data Science. Сьогодні у черзі на препарацію алгоритм кластеризації DBSCAN. Прошу під кат людей, які стикалися або збираються зіткнутися з кластеризацией даних, в яких зустрічаються згустки довільної форми — сьогодні ваш арсенал поповниться відмінним інструментом.



Читати далі →

Цікаві алгоритми кластеризації, частина перша: Affinity propagation

Якщо ви запитаєте початківця аналітика даних, які він знає методи класифікації, вам напевно перерахують досить пристойний список: статистика, дерева, SVM, нейронні мережі… Але якщо запитати про методи кластеризації, у відповідь ви швидше за все отримаєте впевнене «k-means ж!» Саме цей золотий молоток розглядають на всіх курсах машинного навчання. Часто справа навіть не доходить до його модифікацій (k-medians) або зв'язно-графових методів.

Не те щоб k-means так вже й поганий, але його результат майже завжди дешевий і сердитий. досконаліші способи кластеризації, але не всі знають, який коли слід застосовувати, і дуже мало хто розуміє, як вони працюють. Я б хотів прочинити завісу таємниці над деякими алгоритмами. Почнемо з Affinity propagation.

image

Читати далі →

Оптимальна апроксимація сплайнами

Нехай нам дано набір точок і відповідний їм набір позитивних ваг . Ми вважаємо, що деякі точки можуть бути важливіше інших (якщо немає, то всі однакові ваги). Неформально кажучи, ми хочемо, щоб на відповідному інтервалі була проведена гарна крива таким чином, щоб вона «найкраще» проходила через ці дані.



Під катом знаходиться алгоритм, що розкриває, яким чином сплайни дозволяють будувати таку красиву регресію:



Читати далі →

Алгоритм Левенберга — Марквардта для нелінійного методу найменших квадратів і його реалізація на Python



Знаходження екстремуму (мінімуму або максимуму) цільовій функції є важливою задачею в математиці і її додатках (зокрема, в машинному навчанні є завдання curve-fitting). Напевно кожен чув про методі найшвидшого спуску (МПЗ) і методі Ньютона (МН). На жаль, ці методи мають ряд істотних недоліків, зокрема — метод найшвидшого спуску може дуже довго сходитися в кінці оптимізації, а метод Ньютона вимагає обчислення других похідних, для чого потрібно дуже багато обчислень.

Для усунення недоліків, як це часто буває, потрібно глибше зануритися в предметну область і додати обмеження на вхідні дані. Зокрема: МНС і МН мають справу з довільними функціями. В статистиці і машинному навчанні часто доводиться мати справу з методом найменших квадратів(МНК). Цей метод мінімізує суму квадратів помилок, тобто цільова функція представляється у вигляді:


Алгоритм Левенберга — Марквардта використовується для розв'язання нелінійного методу найменших квадратів. Стаття містить:

  • пояснення алгоритму
  • пояснення методів: найшвидшого спуску, Ньтона, Гаусса-Ньютона
  • наведена реалізація Python исходниками на github
  • порівняння методів

Читати далі →

Топ-10 data mining-алгоритмів простою мовою



Примітка перекладача: Ми досить часто пишемо про алгоритмічної торгівлі (ось, наприклад, список літератури з цієї теми та відповідні освітні курси), сьогодні ж мова піде безпосередньо про алгоритми, які можна використовувати для аналізу різних даних (у тому числі на фінансовому ринку). Матеріал є адаптованим перекладом статті американського раработчика і аналітика Рея.

Сьогодні я постараюся пояснити простими словами принципи роботи 10 найефективніших data mining-алгоритмів, які описані в це доповіді.

Коли ви дізнаєтеся, що вони собою представляють, як працюють, що роблять і де застосовуються, я сподіваюся, що ви використовуєте цю статтю в якості відправної точки для подальшого вивчення принципів data mining.
Читати далі →

Огляд MOOC-курсів Coursera з комп'ютерних наук

Швидше за все, якщо ви зайшли на Хабр і читаєте цю статтю, то хоч раз в житті так чули про MOOC-курси.

Але якщо все ж не чули, то MOOC (по-російськи прийнято вимовляти «мук») означає «Massive Open Online Course» — масовий відкритий онлайн-курс. Це справжній феномен в освіті XXI століття. Газета «New York Times» назвала навіть 2012 рік «роком MOOC» у зв'язку з появою на ринку дистанційної освіти 3-х «китів» — Coursera, Udacity і EdX. MOOC-ам присвячено безліч статей, хтось бачить в них майбутнє освіти, хтось, навпаки, загрозу. Намагаються також передбачити «традиційну» і «дистанційну» складники навчання майбутнього.




Однак у цій статті я не буду обговорювати перспективи розвитку дистанційної освіти, а розповім про свій досвід знайомства з курсами на платформі Coursera. Ці курси будуть корисні студентам, вивчаючим прикладну математику та інформатику, особливо аналіз даних. Багато чого з того, що мені дали ці курси, як я потім зрозумів — це знання, якими повинен володіти будь-який поважаючий себе дослідник даних (так я віддаю перевагу переводити професію Data Scientist).

Читати далі →