Избранное трейдера Андрей Вячеславович (Ganesh)
Как ожидается, 15 января США и Китай подпишут «первую фазу» торгового соглашения — и это станет самым заметным шагом к сближению между ними с начала полномасштабной торговой войны в июле 2018 года. С тех пор стороны предприняли несколько раундов взаимного повышения торговых пошлин. Для сделки вице-премьер Госсовета КНР Лю Хэ 13 января прибудет в Вашингтон.
Это старое сообщение со СМИ от 13 января 2020 года. Тогда все радовались, что наконец-то, заключено соглашение! А по факту началось жуткое падение на фонде.
Что интересно — нас начали валить первых, потому что менее ликвидные. Сперва выходят из неликвидных рынков
А потом уже начали валиться американцы
Тем, кто не читал предыдущий топик этой темы, рекомендую для начала ознакомиться с ним [1].
В комментариях к предыдущему топику меня критиковали за неоптимальность кода Python. Однако, текст читают люди с совершенно разной подготовкой — от почти не знающих Python или знающих другие языки программирования, до продвинутых пользователей. Последние легко могут обнаружить неоптимальность кода и заменить его своим. Тем не менее, код должен быть доступен и новичкам, возможно не обладающим знанием пакетов и продвинутых методов. Поэтому, в коде я буду, по возможности, использовать только базовые конструкции Python, не требующие глубоких знаний, и которые могут легко читаться людьми, программирующими на других языках. Вместе с тем, по мере изложения, без фанатизма, буду вводить и новые элементы Python.
Если вы хотите как-то улучшить или оптимизировать код, приводите его в комментариях — это только расширит и улучшит изложенный материал.
Ну, а сейчас мы займемся разработкой и тестированием индикаторов. Для начала нам нужна простейшая стратегия с использованием МА — его и построим. Самой лучшей по характеристикам МА является ЕМА. Формула ЕМА:
Юрий Иванович (JC_trader) у себя в LJ один очень хороший пост написал, который мог бы дать ответ на множество вопросов начинающих инвесторов. Я же хочу добавить немного огранки для этого алмаза, превратив его в бриллиант.
Суть в следующем. Возьмем простую трендследящую систему:
И попробуем ее протестировать на разных временных периодах.
Сама система, кстати, по своему гениальна. Во-первых, в ней нет оптимизируемых параметров (sic!) и она либо работает на истории — либо нет. Во-вторых, мы совершаем сделки на закрытии сессии. А открыть/закрыть сделку на закрытии намного легче, чем на открытии. Те, кто профессионально занимался тестированием торговых алгоритмов могут многое об этом рассказать 🙂
Теперь к полученным результатам. Система работает, но только на старшем временном периоде (месячные бары). Почему? Переходим к главному…
Всем привет!
Вдохновился данным постом ( https://smart-lab.ru/blog/616708.php ) и решил немного подпилить код, пока карантин делать нечего.
Кто не знал как скачивать котировки по одной компании вручную — сайт для скачивания котировок по одному тикеру (финам):
www.finam.ru/profile/moex-akcii/gazprom/export/
Тут через питон скачиваем котировки из текстового файла, в который вносим желаемые тикеры компаний:
Сайт для скачивания среды программирования Python (PyCharm), пойдет обычная версия:
www.jetbrains.com/ru-ru/pycharm/download/#section=windows
Файлы из видео, в том числе и со списком тикеров:
yadi.sk/d/R3BSbFjV3Pfydg
Код программы:
import requests import datetime import pathlib import apimoex import pandas as pd board = 'TQBR' with open("C:/PYEX/TICK.txt", "r") as TICKs: TICKs = [line.rstrip() for line in TICKs] pathlib.Path("C:/PYEX/Database/{}".format(board)).mkdir(parents=True, exist_ok=True) process = 0 with requests.Session() as session: for TICK in TICKs: process = process + 1 print((process / len(TICKs)) * 100, ' %') data = apimoex.get_board_history(session, TICK, board=board) if data == []: continue df = pd.DataFrame(data) df = df[['TRADEDATE','CLOSE']] df.to_excel("C:/PYEX/Database/{}/{}.xlsx".format(board,TICK), index=False)
Для моделирование ТС на Python, прежде всего нужен сам Python. Pythonы бывают очень разные.
Самый большой и длинный Python — Anaconda (https://anaconda.org/). Скачать дистрибутив Anaconda можно здесь — Индивидуальное издание -https://www.anaconda.com/products/individual.
Я работаю именно с Anaconda. Установив Anaconda мы получаем сам Python, уже установленные значительную часть нужных и ненужных пакетов с библиотеками Python, и несколько сред разработки. И все это сразу готово к работе, и нам, по большей части, уже не придется дополнительно устанавливать пакеты и среды.
Самый маленький Python последней версии 3.8.2. скачивается с сайта самого Python — https://www.python.org/. Это, практически, только сам язык, компилятор и минимальный набор пакетов. Сделать с ним практически ничего невозможно, и для работы придется постоянно устанавливать нужные пакеты. Среду разработки придется также устанавливать самостоятельно.
Этот Python больше подходит для запуска и работы с уже отлаженными законченными программами.
Сайед Шах, 30-летний дейтрейдер, обычно покупал и продавал акции и валюты через свой счет Interactive Brokers, но 20 апреля он не смог удержаться от попытки попробовать свои силы в торговле нефтью. Шах, работая в своем доме в пригороде Торонто, полагал, что он не может проиграть, так как потратил 2400 долларов на покупку сырой нефти по 3,30 доллара за баррель, а затем 50 центов. Затем последовало то, что выглядело как сделка всей жизни: покупка 212 фьючерсных контрактов на West Texas Intermediate за поразительный Пенни каждый.
Чего он не знал, как сообщает Мэтью Лейзинг из Bloomberg, так это того, что первое падение цен на нефть в отрицательную сторону сломало платформу Interactive Brokers, потому что ее программное обеспечение «не могло справиться с этим досадным знаком минус, хотя технически рынок сырой нефти всегда мог пойти вверх ногами.»
В полночь у Шаха появились очень плохие новости: он задолжал Interactive Brokers 9 миллионов долларов. Он начал день с 77 000 долларов на своем счете, ожидая, что его самый большой возможный убыток составит 100%, или 77 000 долларов.
Оказалось, что это в 116 раз больше.