Поддержка рыночных данных неотъемлема при программировании торговли, исследовании стратегий, проектировании стратегий, анализе рекурсионных операций в количественных операциях. Все данные на рынке собираются и не реалистичны, ведь объем данных слишком велик. Для цифровых валютных рынков изобретатели поддерживают ограниченное количество бирж, пары рекурсионных операций на квантовых торговых платформах. Если вы хотите рекурсировать некоторые биржи, которые временно не поддерживают данные, сделки.
Это поможет решить несколько проблем, например:
Почему? Потому что это удобно:) Если есть потребность, действуйте!
Пимонго для Python
Для сохранения данных, используемых в базе данных, используется постоянное сохранение.MongoDB
, используя язык Python для написания сборщиков, поэтому требуется драйвер для этой базы данных.
Установка на Pythonpymongo
Это не так.
Установка MongoDB на устройстве, на котором находится хост
Например: установка MongoDB на Mac, и, конечно же, установка MongoDB на WIN-системе тоже примерно такая же, есть много учебников в Интернете, чтобы установить на Apple Mac:
Загрузка Ссылка на сайт:https://www.mongodb.com/download-center?jmp=nav#community
Декомпрессия
После загрузки, распечатать в каталог:/usr/local
。
Конфигурация окружающей среды
Терминал ввода:open -e .bash_profile
Он открывает файл и пишет:export PATH=${PATH}:/usr/local/MongoDB/bin
Сохранение и использованиеsource .bash_profile
В связи с этим, мы решили изменить эту статью.
Ручная настройка каталогов файлов и журналов в базе данных
Создать каталог/usr/local/data/db
Посмотрите, что происходит в этой папке.
Создать каталог/usr/local/data/logs
Посмотрите, что происходит в этой папке.
Редактировать профильmongo.conf
:
#bind_ip_all = true # 任何机器可以连接
bind_ip = 127.0.0.1 # 本机可以访问
port = 27017 # 实例运行在27017端口(默认)
dbpath = /usr/local/data/db # 数据文件夹存放地址(db要预先创建)
logpath = /usr/local/data/logs/mongodb.log # 日志文件地址
logappend = false # 启动时 添加还是重写日志文件
fork = false # 是否后台运行
auth = false # 开启校验用户
Использование MongoDB
Приказ:
./mongod -f mongo.conf
Прекращение работы
use admin;
db.shutdownServer();
Коллектор работает в виде стратегии Python-робота на квантовой торговой платформе изобретателя. Из-за ограниченного уровня собственного Python, реализация является простой примером, который используется для демонстрации идеи данной статьи.
Код политики сборщика:
import pymongo
import json
def main():
Log("测试数据收集")
# 连接数据库服务
myDBClient = pymongo.MongoClient("mongodb://localhost:27017") # mongodb://127.0.0.1:27017
# 创建数据库
huobi_DB = myDBClient["huobi"]
# 打印目前数据库表
collist = huobi_DB.list_collection_names()
Log("collist:", collist)
# 检测是否删除表
arrDropNames = json.loads(dropNames)
if isinstance(arrDropNames, list):
for i in range(len(arrDropNames)):
dropName = arrDropNames[i]
if isinstance(dropName, str):
if not dropName in collist:
continue
tab = huobi_DB[dropName]
Log("dropName:", dropName, "删除:", dropName)
ret = tab.drop()
collist = huobi_DB.list_collection_names()
if dropName in collist:
Log(dropName, "删除失败")
else :
Log(dropName, "删除成功")
# 创建records表
huobi_DB_Records = huobi_DB["records"]
# 请求数据
preBarTime = 0
index = 1
while True:
r = _C(exchange.GetRecords)
if len(r) < 2:
Sleep(1000)
continue
if preBarTime == 0:
# 首次写入所有BAR数据
for i in range(len(r) - 1):
# 逐根写入
bar = r[i]
huobi_DB_Records.insert_one({"index": index, "High": bar["High"], "Low": bar["Low"], "Open": bar["Open"], "Close": bar["Close"], "Time": bar["Time"], "Volume": bar["Volume"]})
index += 1
preBarTime = r[-1]["Time"]
elif preBarTime != r[-1]["Time"]:
bar = r[-2]
huobi_DB_Records.insert_one({"index": index, "High": bar["High"], "Low": bar["Low"], "Open": bar["Open"], "Close": bar["Close"], "Time": bar["Time"], "Volume": bar["Volume"]})
index += 1
preBarTime = r[-1]["Time"]
LogStatus(_D(), "preBarTime:", preBarTime, "_D(preBarTime):", _D(preBarTime/1000), "index:", index)
Sleep(10000)
Полное руководство:Ссылки
Создание стратегических роботов, использующих данные. Примечание: необходимо отметка"Классовая библиотека рисунков".Если нет, то можно скопировать один из них в свою собственную библиотеку.
import pymongo
import json
def main():
Log("测试使用数据库数据")
# 连接数据库服务
myDBClient = pymongo.MongoClient("mongodb://localhost:27017") # mongodb://127.0.0.1:27017
# 创建数据库
huobi_DB = myDBClient["huobi"]
# 打印目前数据库表
collist = huobi_DB.list_collection_names()
Log("collist:", collist)
# 查询数据打印
huobi_DB_Records = huobi_DB["records"]
while True:
arrRecords = []
for x in huobi_DB_Records.find():
bar = {
"High": x["High"],
"Low": x["Low"],
"Close": x["Close"],
"Open": x["Open"],
"Time": x["Time"],
"Volume": x["Volume"]
}
arrRecords.append(bar)
# 使用画线类库,把取到的K线数据画出来
ext.PlotRecords(arrRecords, "K")
LogStatus(_D(), "records length:", len(arrRecords))
Sleep(10000)
Можно увидеть, что в стратегии бота-кода, использующего данные, не используется доступ к любому интерфейсу биржи, данные получаются путем доступа к базе данных, программа сборщика рынка не записывает данные текущего BAR, а собирает уже завершенное состояние K-линии BAR, если требуется данные текущего BAR в режиме реального времени, то можно немного изменить. Текущий пример кода, просто для демонстрации, при доступе к таблице в базе данных все записи данных получаются, так что по мере увеличения времени сбора данных и сбора большего количества данных все запросы, которые будут выходить, будут в некоторой степени влиять на производительность.
Запустить процедуру администратора
Это будет работать на устройстве, на котором находится хостинг.MongoDB
Услуги базы данных./mongod -f mongo.conf
Коллектор работает, и он является копией платформы для количественного обмена изобретателямиwexApp
О чем вы?BTC_USDT
Сделки:
Адрес:wexApp
Робот, использующий данные базы данных:
Робот Б, использующий данные базы данных:
wexApp
Страница:
На рисунке вы можете увидеть, как роботы с различными идентификаторами используют один источник данных для обмена данными K-линий.
Опираясь на мощные возможности квантовой торговой платформы изобретателя, мы можем легко реализовать сбор K-линейных данных с любым циклом. Например, если я собираю 3-минутную K-линию, а у меня нет 3-минутной K-линии на бирже?
Мы изменили конфигурацию роботов-сборщиков, установив цикл K-линий на 3 минуты, и изобретатели квантовой платформы автоматически синтезируют 3 минуты K-линий для программы сборщиков.
Мы используем параметры.删除表的名称
Настройки:["records"]
Удалить таблицу данных K-линии 1 минуты, собранную ранее.
Запуск收集器程序
Перезагрузить使用数据的策略机器人
。
Вы можете увидеть, что в графике K-линий интервалы между BAR составляют 3 минуты, и каждый BAR представляет собой столбик K-линий с циклом в 3 минуты.
В следующий раз мы постараемся реализовать потребности в настраиваемых источниках данных. Спасибо за чтение.
Сюкити.Прекрасно.
ЗлтмВершина
ЗлтмВершина
проповедьПоздравления.
ДзаидасиВершина
Изобретатели количественного измерения - мечтыСпасибо за поддержку, я питонец, и я надеюсь, что у меня есть более совершенные решения или предложения.