Избранное трейдера Андрей Вячеславович (Ganesh)
Юрий Иванович (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 раз больше.
Небольшой обзор возможных аргументов сторон в потенциальном споре по Фьючерсному контракту Light Sweet Crude Oil Futures.
I. ОСНОВНЫЕ ВЫВОДЫ
В результате анализа мы пришли к следующим выводам:
1) шансы на защиту позиции инвесторов в суде являются низкими даже при выборе идеальной стратегии и сборе всех возможных доказательств;
2) у брокеров, которые не смогли списать необходимую сумму средств со счетов инвесторов, остается больше возможностей для покрытия своего убытка за счет Биржи. Однако эти возможности все равно невысокие;
3) в назревающем конфликте Биржа может взять на себя стратегическое лидерство и инициативу, закрыв тем самым даже остающиеся минимальные шансы на взыскание убытков инвесторами.
Указанные выводы основаны на следующих критических фактах:
1) тот факт, что цена контракта стала отрицательной не имеет никакого юридического значения в сложившейся ситуации. Это влияет только на размер потенциальных убытков инвесторов. Даже если бы цена не ушла в отрицательные значения после остановки торгов, и цена экспирации была бы определена в положительном значении, но меньше цены, на которой были фактически остановлены торги, то юридическая суть претензий инвесторов осталась бы прежней. Изменился бы только размер потенциальных убытков;