для тех, кто думает не попробовать ли программирование применительно к техническому анализу рынков
что можно почитать о написании скриптов в TradingView?
1) у них встроенный учебник неплохой (в режиме редактирования скриптов — жмакнуть «три точки» справа и там мануалы лежат).
актуальная версия языка — v5.
справочник по операторам и синтаксису: https://ru.tradingview.com/pine-script-reference/v5/
встроенное описание языка: https://www.tradingview.com/pine-script-docs/en/v5/index.html
раньше. когда актуальной версией языка была v3 (отличается мелочами, в новых версиях в основном функционал добавляли),
на нее было хорошее и простое русское описание (которого для начала хватало) — но они его с сайта убрали.
нашлось только что-то похожее в инете от третьих лиц: https://robo.trading/ru/coding/ps4/introduction/
плюс, самое главное: у любого встроенного индикатора и у большинства тех, что пользователи публиковали — можно исходники посмотреть (жмакнув на кнопку редактирования) и скопировать в свой индикатор. там редактировать и всячески измываться и потом смотреть что получается.
это самый простой путь обучения, imho — по паре примеров разных ma, macd, bollinger band, atr, stoch/rsi, adx-di, efi — и уже ничем особо вас удивить нельзя будет в программировании индюков.
плюс один раз разобраться в работе на других таймфреймах (функция security) и украшательства (plot, hline).
всё. остальные новшества и навороты — это:
— 99% мигалки и перделки, чтоб красивые индикаторы и панели делать (для продажи моднейшим крипто-энвесторам — для себя ж обычно лишний раз цвет поменять лениво)
— 1% что-то узкоспециализированное (добавленное по просьбе физиков/математиков или программистов на других языках, только пришедших в трейдинг) и нафиг не нужное обычным людям для создания индикаторов (где достаточно уровня школьной математики).
2) если нужны не просто скрипты-индикаторы, а нужны скрипты-стратегии («Strategy» в скриптах TradingView) — «тестер стратегий» по сути, или если вообще хочется оптимизатор (например, узнать ответ на сакральный вопрос «какая EMA лучше работает — 9, 13 или 20?») — не ходите за этим в TradingView, только зря потратите время.
тестер там убогий и глючный, что просто жесть (в tradingview всё связанное с индикаторами — очень хорошо, а всё, что касается «стратегий» — обнять и плакать).
для тестера или подбора параметров в оптимизаторе (при аналогичном удобстве с индикаторами) в 100 раз лучше подойдет AmiBroker:
— программа (под Windows) довольно простая и шустрая (поддерживает всякие старые Win7 итд, чуть ли не XP).
— язык AmiBroker AFL очень сильно похож на язык TradingView PineScript (и оба они похожи на EasyLanguage/PowerLanguage от TradeStation/Multicharts — стандарт в индустрии) и все они довольно просты в освоении (нужно на два порядка меньше времени чем для Python или C#). похожи они все настолько, что у меня перенос скрипта уровня Bollinger Band с одного на другой занимает минут 10-15 обычно.
— совершенно охренительный тестер стратегий и оптимизатор, скорости работы которого завидуют пользователи [стандарта в индустрии] WealthLab
— оптимизатор умеет красивенькие и визуально-понятные 3D graph типа такого, который можно будет со всех сторон покрутить и убедиться, что рулит таки ema13 и её производные:
из минусов — придётся поковыряться с подключением DataFeed (данных) к AmiBroker. доступные варианты:
— встроенные «дневные» (EOD) данные через Yahoo Finance/MSN итд
— поддерживается «ручная» закачка данных через текстовые CSV-файлы (выгрузка свечей через обычный финамовский экспорт, например).
— автоматический экспорт из Quik в AmiBroker встроен в Quik.
— крипта — через плагин к binance, где нет realtime данных (автоматом обновляется только один график, который на экране), если не нужны фьючерсы и binance, то есть другие плагины.
— автоматически, через Finam’овскую утилиту для скачивания данных в MetaStock — FinamDataFeed (которая без счета в финаме с какими-то ограничениями вроде как работала. там всё время условия меняют).
с помощью FinamDataFeed можно, например, закачивать real-time в AmiBroker 15-минутки всего состава S&P100 и дальше AmiBroker’ом отбирать по запрограммированному критерию типа «на дневках цена выше EMA-13, а на двухчасовых стохастик ниже 20 и при этом цена находится в нижней половине канала боллинжера на h4» — т.е. по сути получить гибкий скринер акций, который ни один платный сервис даже за деньги не предоставит (с рос.бумагами из Quik можно аналогично ессно).
и всё это будет занимать 1 страницу кода на AFL
если что, на поррентах AmiBroker 6.20 и 6.30 лежат. корявенькая русская инструкция к языку AFL есть обычно в файлике к версии 5.20. лучший сайт (на русском) для начинающих, с мануалами к системе и языку, плюс форум — amisite.ru
PS: пишу для всех, кому приходит в голову мысль: а не попробовать ли поковыряться в программировании для трейдинга. и кто задается вопросом «не слишком ли это сложно?» и «какой язык выбрать?».
типовой сценарий — это «вы увидели советы в такой ситуации изучать C#, открыли книжку Троелсена или Скита, прочли десяток страниц и забили на идею».
т.е. результат «всё сложно и непонятно, ну нафиг» при том, что и индикаторы и большинство ТС требуют знаний математики за 9 классов + прочтения десятка статей + школьного же опыта программирования.
моё скромное мнение, что же с этим всем делать:
1) если вам не нужно быть программистом, а просто хотите индюки нестандартные под себя (например, хотите странного. типа раскраски свечей в зависимости от волатильности на ADX другого таймфрейма) — TradingView Pine Script.
2) если вы хотите углубиться и протестировать — работает ли стратегия? какие параметры индикатора лучше? — то AmiBroker.
(на нём можно даже осторожно попытаться в исполнение сделок. через, разной степени костыльности, интерфейсы).
3) если вам нужно автоматическое исполнение сделок и при этом минимальный порог входа — Metatrader MQL5 (язык опять же, сильно похож на TradingView Pine или AmiBroler AFL, но чуть более низкоуровневый и индикаторы тоже на него несложно переписывать, но уже не за 10 минут).
из минусов — по слухам, брокер вроде как может видеть что вы там делаете (но это не точно). иногда мерзковатое комьюнити. систематические проблемы и глюки с исполнением сделок на ММВБ. привязка к брокеру и его datafeed’у (тому же Ami пофиг — хоть финам через Quik, хоть Interactive Brokers, хоть Binance — только успевай Plugin’ы менять).
4) если вы уже знаете С# или и так хотите его изучать — берите C# или фреймворки на нём (TSLab, Multicharts.Net, бесплатный o-s-a.net итд).
т.е. изначально рекомендую выбирать инструмент под задачу. иначе можно на освоении инструмента всё благополучно и закончить, не дойдя, собственно, до того, что принято называть exploration (исследование).
и есть еще один момент. чем ниже уровень языка программирования (чем он сложнее по сути) — тем менее удобен процесс исследования. ситуация, что стратегии придумывают и тестируют на Ami/Pine/Multicharts(EasyLang)/Python, а исполнение реализуют на C#/osa/QLua/etc встречается очень часто.