Блог им. DiggoryLivingstone

Торговый робот меньше чем за месяц. Часть 1

Вкратце, о том, что в посте:

Результаты беспрерывной работы на протяжении ~2 недель
Уровень программирования: Новичок
Торговый робот меньше чем за месяц. Часть 1


Результат: скрипт, как и задумывалось, отображает ближайшие уровни и заносит новые.
Доп. информация: Скрипт целиком на TSLab API. График BTC-USD. Это только фундамент, в моём видении скрипт ещё очень сырой.

далее о том как всё было, в конце немного о моих ошибках, мотивации и может об идее торговой стратегии проговорюсь.

Итак, сейчас час ночи, 13.10.2021. И ещё меньше месяца назад, я и не подозревал, что идея, которая начиналась с кубиков в ТСЛаб станет проектом на C#. 

Когда я сел за ТСЛаб, то у меня была цель реализовать скрипт, который бы отображал предыдущие хаи и лои, но на какие бы ухищрения я ни шёл, осуществить поставленную цель у меня не удалось. Кубики просто не реализовали функцию хранения множества значений. И в тот момент мне пришла идея реализовать скрипт в ТСЛаб API. Он на основе C# следовательно нужно просто реализовать хранение значений. Казалось бы так просто. Но сказать, что моё знакомство не было сумбурным — это нагло врать. Начинал с документации ТСЛаб. И перечитывал её не раз за первую неделю. Но находил себя всякий раз в тупике перед странной формулировкой кода. Я обратился всё-таки к видео-обучалкам и картина с тем, как устроен C# и каков синтаксис, постепенно прояснялись.

По началу почти весь мой код был копи-пастой документации ТСЛаб, в которой я менял некоторые вещи, и пытался заставить скрипт работать с изменениями. Попытка за попыткой — всё тщетно, но я набирался понимания с каждой попыткой и с каждым перечитыванием документации я находил применение всё большим и большим количествам функций. И наконец, я сделал кубик, который работал для хая..!

Сидел, как ребёнок на самом деле),
глаза горели, по любому,
после стольких стараний, наконец получить, то чего добивался.

Но счастье было недолгим. Проблема возникла сразу же, как я перешёл к следующему шагу: сделать скрипт для лоя. 

Я переворошил интернет, чтобы найти чужие скрипты. И один из авторов даже выставил на показ целую библиотеку разных скриптов. Когда документация мне перестала показывать новые приёмы, фичи и возможности я узнавал через анализ тех скриптов. Просто брал скрипт и смотрел, что да как там делали. Тестировал их. Мой шок, что они не только вы аккуратными, они были просто умно написаны.

После боли и страданий всегда шёл прорыв. Я стал более уверенным в своих силах.
За весь период своей работы я использовал кубики ТСЛаб лишь несколько раз в самом начале. Потом для меня уже было очевидно, что их архитектура не самая лучшая, например, чтобы вычленять максимумы и лои мне лучше было обращаться к предыдущим 2 барам, чем подключать кубик Максимум За, который более хаотичен в силу того, что использует период, а не побарно прогоняет свечки.

И вскоре… Я закончил лишь 1 важный элемент скрипта. И, наверное, самый сложный.

ОШИБКИ И МОТИВАЦИЯ

если бы, когда я принялся за работу, показали тот скрипт, который я сегодня закончил, НО сказали бы только: «Такой скрипт ты должен написать».
то возможно я бы и не написал бы его никогда. Я, которого раньше даже на маломальский алгоритм не хватало, написать скрипт отлаженный элемент скрипта на 100+ строк. Такое слишком трудно у себя в голове уложить.

но… вот, что лучше? Знать, что тебе предстоит сделать или не знать и каждый раз, ежедневно видеть это:Торговый робот меньше чем за месяц. Часть 1

Наверное, по итогу, я получал сообщение ошибки даже больше, чем строк в моём коде, правда. По 10-20, а то и больше ошибок за день, думаю,  я вполне реалистичен. Но я ничего не мог поделать. Самым действенным, что было в моём арсенале это Trial and Error метод, дословно: «Попытка и ошибка». К сожалению документация нигде не расписывала для чайников синтаксис, или что ты можешь с теми или иными функциями, и остаётся лишь одно: попробовать и узнать;
либо подсмотреть где-то ещё ради экономии сил.

В моменты, когда я особенно уставал от всей работы помогала даже слабоватая документация и особенно чужие скрипты.

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


Спасибо всем, кто не прошёл мимо Проходимца.

Не пройдите и мимо людей, которые обучали, оставляли после себя скрипты и документацию.

   
 




4 комментария
похоже на деление на ноль

это выложи эквити и итоговую таблицу
avatar
ves2010, это не деление на ноль, это обращение к элементу массива по индексу, которого нет. Например, имеется 10 свечей в ctx.Bars, то есть есть свечи с индексами от 0 до 9 включительно. И при попытке обратиться к ctx.Bars[10] — получим такую ошибку.
avatar
Наверняка вы не в курсе про отладку.  Короче, в студии жмем отладка-> присоединиться к процессу -> в поле фильтрации пишем «tslab» -> присоединиться. Ставим точку останова в любом месте, запускаем скрипт в тслабе. После того как выполнение кода остановится на вашей точке, вы сможете пошагово пройти весь код и просмотреть все данные. F10 — сделать шаг без захода, F11 — шаг с заходом. F5 — продолжить до следующей точки или до конца если ее нет.
avatar
Андрей, ну-ка, попробую.

теги блога Проходимец по жизни

....все тэги



UPDONW
Новый дизайн