Я столкнулся с необходимостью загрузить на график трейдингвью сигналы покупки/продажи робота и бактеста для их графической проверки на истории. В итоге сделал расширение для гугл хрома, цикл загрузки выглядит примерно так (тестовые данные):
Чуть подробней и как попробовать ниже.
В сообществе рекомендуют автоматически формировать Pinescript с условиями времени на каждое событие. Но это крайне неудобно и лимит 900 строк, а значит 900 сигналов.
Эту задачу можно решить лучше и проще, передать сигналы в индикатор как строки со штампом времени и проверять на их совпадение с текущим временем бара. Ограничение только в точности совпадения штампов времени. Есть ещё на лимиты в длине строке параметров и времени вычислений, но на тестовых 5000 сигналов я не столкнулся и ни с тем, ни с другим.
Скрипт простейший. Его нужно создать, сохранить и добавить на текущий график. Появится индикатор с именем «iondvSignals». Можно доработать, например добавить вывод текста, или изменить значок. Можно поменять на другой символ, бар или линию.
//©akumidv
//@version=4
study(«iondv Signals», shorttitle=«iondvSignals», overlay=true)
strTSBuy = input("", «TSBuy»)
strTSBuy = input("", «TSSell»)
tickerName = input("", «Ticker»)
var arrTSBuy = str.split(buy_series_time, ",")
var arrTSSell = str.split(sell_series_time, ",")
plotchar(tickerName == syminfo.ticker and array.includes(arrTSBuy, tostring(time))? low: na, location = location.belowbar, color=color.green, char='▲')
plotchar(tickerName == syminfo.ticker and array.includes(arrTSSell, tostring(time))? low: na, location = location.abovebar, color=color.red, char='▼')
А чтобы было удобней с этим работать, сделал загрузку параметров из CSV файла в виде расширение в хроме «Tradingview assistant», которое:
Расширение пока ещё не опубликовал в интернет-магазин Chrome, т.к. доделываю вторую часть — хочу реализовать оптимизацию параметров для стратегии Tradingview (по-видимому методом отжига), с этим же подходом — эмуляции действий в трейдингвью в браузере. Это может быть удобно для прототипирования и проверки торговой стратегии. Ну и выгружать весь список сделок для анализа.
Но версию загрузки сигналов из файла можно уже посмотреть, если установить расширение в режиме разработчика, т.к расширение опубликовано на гитхаб под открытой лицензией Apache 2. Как это сделать:
Не забудьте кликнуть на параметры индикатора «iondvSignals» когда на графике загруженные тикер и таймфрейм. При открытии окна свойств, расширение автоматически проверит есть ли данные, введет их, покажет окно об успехе и диапазоне дат, а также применит изменения параметров индикатора автоматически
Я буду рад обратной связи, идеям, мыслям, предложениям и найденным ошибкам. Их можно написать в комментах, лично или сделать заявку
Деклаймер.
Расширение распространяется как есть под открытой лицензией и на условиях Apache 2. Исходный код доступен. Расширение требует минимум доступов и только на сайте tradingview.com, а именно к локальному хранилищу браузера (используется для хранения загруженной информации сигналов) и работает только на активной вкладке Tradingview.
Выглядит интересно, но не понимаю зачем уже сделанный бэктест накладывать графически на свечи TW. Ведь есть данные по точкам, считались они по массиву OHLCV, есть итоговые цифры. Что даст визуальный анализ?
Я не очень понимаю, что значит через какое время достиг сигнал цели. Но если у вас есть сигналы и время когда они сработали, то нужно сформировать CSV по шаблону (его можно скачать с расширения)
Причем дата может быть в любом формате, который парсится ява скрипт developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse#examples
Второй столбец csv — тикер, третий таймфрейм, четвертый BUY/SELL тип сигнала соответственно.
Чтобы сигналы загрузились нужно еще добавить скрипт на страницу — его тоже можно скачать с расширения или он есть выше.
скрипт выдает ошибку, переписываю, все равно не сохраняется и не добавляется на график, в чем проблема?
в коде выше видимо опечатка
strTSBuy = input("", «TSSell»)
должно быть strTSSell
подгрузил стратегию, вписал тикер нужный, а что вписывать в дату?
стратегия прогоняет интервал не зависимо от содержимого файла.
но идея класс, спасибо!