1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/foolcage-fooltrader

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README-en.md

Этот проект устарел, пожалуйста, перейдите к новому проекту https://github.com/zvtvz/zvt.

Читайте это на других языках: 中文.

fooltrader: торгуй как дурак

«Чтобы выжить на рынке, вы должны избегать быть умными, потому что ваш интеллект ничего не стоит на рынке» — Дзен в хаосе.

1. Скриншоты

1.1 Анализ фундаментальных показателей китайских акций

Введите интересующие вас акции, чтобы увидеть взаимосвязь между их чистой прибылью и ценой акций. Может быть, вы не думаете, что «фундаментальные» бесполезны?
Например: прибыль Vanke быстро росла, но давление цен на капусту сохранялось в течение нескольких лет, поэтому пришли «варвары»...
И вы могли бы рассчитать все рыночные акции с помощью fooltrader и автоматически уведомить вас, на самом деле это не так сложно.

1.2 Анализ фундаментальных показателей американских акций

Посмотрите, как работают американские акции? Операция единообразна.

1.3 Бэктест

Вы можете написать стратегию, используя событийно-ориентированный или пошаговый подход, и просматривать и анализировать производительность единообразно.
См. design doc (./docs/trader.md)

class EventTrader(Trader):
    def on_init(self):
        self.trader_id = 'aa'
        self.only_event_mode = True
        self.universe = ['stock_sz_000338']
        self.df_map = {}

    def on_day_bar(self, bar_item):
        current_security = bar_item['securityId']
        current_df = self.df_map.get(current_security, pd.DataFrame())
        if current_df.empty:
            self.df_map[current_security] = current_df

        current_df = current_df.append(bar_item, ignore_index=True)
        self.df_map[current_security] = current_df

        if len(current_df.index) == 10:
            ma5 = np.mean(current_df.loc[5:, 'close'])
            ma10 = np.mean(current_df.loc[:, 'close'])
            # buy when ma5 > ma10
            if ma5 > ma10 and not self.account_service.get_position(current_security):
                self.buy(security_id=current_security, current_price=bar_item['close'])
            # buy when ma5 < ma10
            elif ma5 < ma10 and self.account_service.get_position(current_security):
                self.sell(security_id=current_security, current_price=bar_item['close'])
            current_df = current_df.loc[1:, ]
            self.df_map[current_security] = current_df

Запуск стратегии позволяет просматривать результаты в реальном времени и проводить дальнейшую оценку

1.4 Общая панель трендов

1.5 Сравнение ВВП и рыночной стоимости

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

1.6 Анализ PE GEM (похож на nasdaq)

17,94% времени в 20–40, 50,7% времени в 40–70, 26,67% времени в 70–100, 4,69% времени в 100 или более.
Так что подумайте о том, что gemp PE около 40 или около того «Оценка» высока и медвежья, обречённая не наслаждаться бычьим рынком GEM 2015 года

1.7 Сравнение PE мирового рынка

GEM>small board>shenzhen>S & P>SSE?Может быть, нужно немного воображения, стиль также конвертируемый?
Ну, средний PE S & P также превысил 120, что всё ещё немного ниже, чем у нашего большого GEM.
Теперь PE SSE на самом деле ниже, чем у S & P, так что? Валюта, макроэкономика и т. д.

Подходит для: количественных трейдеров, финансовых специалистов, людей, интересующихся экономическими данными, программистов, людей, любящих свободу и исследования

3. Схема архитектуры

Fooltrader — хорошо структурированная модульная система, которую можно использовать на разных уровнях, а также расширять, преобразовывать или заменять модули внутри.

4. Пошаговое использование

Иерархия использования один к одному соответствует модулям на схеме архитектуры. Вы можете остановиться на любом этапе, расширить или заменить его своей знакомой системой. Конечно, я всё ещё надеюсь, что вы пройдёте весь путь, потому что технический выбор каждого модуля здесь был тщательно продуман, и система активно развивается.

4.1 Подготовка среды

  • ОС: Ubuntu 16.04.3 LTS В принципе, компоненты, специфичные для системы, являются кроссплатформенными, но я тестирую только на Ubuntu и Mac.
  • Память: >16G
  • Диск: Чем больше, тем лучше
  • Клонируйте или разветвите код:
$ git clone https://github.com/foolcage/fooltrader.git

4.2 Инициализация Python env

$ cd fooltrader
$ ./init_env.sh

Если вы видите:

Requirements installed.  
env ok

Поздравляем! Теперь вы можете играть с Fooltrader!

4.3 Сбор данных

$ source ve/bin/activate
$ ./ve/bin/ipython
In [1]: from fooltrader.datamanager import datamanager
#crawl stock meta data
In [2]: datamanager.crawl_stock_meta()
#crawl index data
In [3]: datamanager.crawl_index_quote()
#crawl stock kdata and tick data
In [4]: datamanager.crawl_stock_quote(start_code='002797',end_code='002798',crawl_tick=False)
#crawl finance data
In [5]: datamanager.crawl_finance_data(start_code='002797',end_code='002798')

Сбор данных и API находятся в разных модулях:

Spiders сосредоточены на сборе данных: скорость сбора, лучшая классификация данных, завершение данных, обработка запрета и т.д. Дизайн API зависит только от контракта данных, который имеет лучшую скорость и гибкость.

Также вы можете загрузить упакованные исторические данныеdata.zip. Вам нужно только собрать дополнительные данные:

$ ./sched_finance.sh
$ ./sched_quote.sh

Скрипт периодически извлекает «отсутствующие» данные. После проверки целостности исторических данных он просто фактически извлекает данные дня, так что у нас есть полный источник данных для автоматизированного самостоятельного обслуживания. Запланированные задачи можно настроить в файле sched_quote.py: Вы можете установить:

@sched.scheduled_job('cron', hour=17, minute=00)
def scheduled_job1():
    crawl_stock_quote('000001', '002999')
    crawl_index_quote()


@sched.scheduled_job('cron', hour=17, minute=20)
def scheduled_job2():
    crawl_stock_quote('300000', '300999')


@sched.scheduled_job('cron', hour=17, minute=40)
def scheduled_job3():
    crawl_stock_quote('600000', '666666')

Наконец, как использовать собранные данные? Пожалуйста, обратитесь к контракту данных. Здесь вы можете использовать свою знакомую систему для анализа данных, например, MySQL, Superset, Redash, Hadoop. Просто следуйте контракту данных и напишите коннектор, и я надеюсь, вы сможете связаться со мной.

4.4 Установите elastic-search и kibana (6.1.1)

Просто измените хранилище данных, и в системе произойдут невероятные изменения.

Следуйте официальным документам: https://www.elastic.co/guide/en/elastic-stack/current/installing-elastic-stack.html или:

$ wget https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-6.1.1.zip
$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.1.1.zip
$ unzip elasticsearch-6.1.1.zip
$ cd elasticsearch-6.1.1/
$ bin/elasticsearch-plugin install file:///path/to/file/x-pack-6.1.1.zip
$ cp ../fooltrader/config/elasticsearch.yml config/
$ ES_JAVA_OPTS="-Xms8g -Xmx8g"  ./bin/elasticsearch
$
$ wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.1-linux-x86_64.tar.gz
$ tar -xzf kibana-6.1.1-linux-x86_64.tar.gz
$ cd kibana-6.1.1-linux-x86_64/
$ bin/kibana-plugin install file:///path/to/file/x-pack-6.1.1.zip
$ cp

**Примечание:** В запросе не было обнаружено кода на каком-либо языке программирования, гиперссылок, специальных тегов форматирования в markdown, html, yaml, json, plantuml и других.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Fooltrader — это система для количественного анализа и торговли, разработанная с использованием технологий работы с большими данными. Система включает в себя сбор, очистку, структурирование, вычисление, визуализацию данных, бэктестинг и торговлю. Её цель — предоставить единую платформу для исследования, бэктестинга, прогнозирования и торговли на... Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/foolcage-fooltrader.git
git@api.gitlife.ru:oschina-mirror/foolcage-fooltrader.git
oschina-mirror
foolcage-fooltrader
foolcage-fooltrader
master