如何构建自己的交易机器人开发环境
作者:老余捞鱼
原创不易,转载请标明出处及原作者。
写在前面的话:
本文主要讲解如何构建一个交易机器人开发环境。描述具体的步骤和工具,包括使用 GitHub Codespaces、Visual Studio Code(VS Code)和 GitHub,以及如何安装 TA Lib 和 GitHub CoPilot。
我永远不会忘记第一次尝试创建交易机器人的情景。我花了好几个小时才弄明白如何正确配置我的环境、下载我需要的工具、设置我的编码环境。不瞒你说,我曾多次深深地想过放弃!然而,我从未忘记我所经历的挫折和痛苦。
起初,我以为我的经历是独一无二的。我想这是因为我以前从未做过,这 “只是旅程的一部分”。然而,随着我AI顾投朋友圈的不断扩大,我发现越来越多的人表示面临着同样的挑战。最后,我决定现在是写一写这个的时候了。
在本文中,您将了解到…
- 如何在任何地方(包括 Raspberry Pi)创建自己的交易机器人开发环境;
- 如何添加强大的人工智能编码助手工具,如 GitHub CoPilot;
- 如何准备强大的技术分析工具,如 TA Lib,供您的交易机器人使用;
- 关于一些可简化和增强开发体验的优秀附加组件。
本文适用于希望以最少的麻烦建立出色的交易机器人开发环境的任何人。
一、法律问题
DYOR.请注意,所有交易风险自担。我的目标是为您提供我自己开发的方法、系统和工具–至于这个解决方案是否适合您,以及我提供的内容是否可信,则取决于您自己。永远 DYOR (Do Your Own Research)自己研究。
推荐。我在本文中提到的任何产品都不收取任何佣金。它们都是免费的(或有免费层级),我只是提供链接来简化您的学习体验。
人工智能的使用。在创建本博客的过程中,人工智能没有受到任何伤害。部分图片是通过人工智能工具生成或增强的,但除了一张有明确标注的图片外,我们始终使用真人将它们组合在一起。我没有使用人工智能生成文字,只是进行了拼写检查。
二、构建环境
我将在这篇博客中向你展示的开发环境,可以在世界上任何有互联网连接和计算能力的地方使用,我将向你展示如何将三种工具结合在一起:
- Visual Studio Code,简称 VS Code
- GitHub
- GitHub 代码空间
步骤 1:注册 GitHub
我们工具的第一步是注册 GitHub。这个功能强大的在线平台是代码开发的行业标准,被世界上一些最大的公司用来运行一些最著名的软件。包括我们Ainvest在内的所有公司都广泛使用它。
最重要的是:它有一个慷慨的免费层。在此注册。
步骤 2:注册 VS 代码
工具的下一步是选择集成开发环境,即 IDE。多年来,我使用过许多不同的集成开发环境,但最近我选择了 VS Code。它非常简单、轻便,老实说,它让集成开发环境适用于我们所做的一切。
现在,我将为你提供两种获取它的方式(都是免费的)。请注意,由于现代技术和我接下来要介绍的工具的神奇之处,无论你选择哪种方式,都能获得几乎完全相同的体验:
- 本地安装。如果您想在本地计算机上运行 VS Code(这意味着下载并安装它),那么请查看此链接以获取与您的操作系统相关的可执行文件。
- 网络浏览器使用。如果你想获得完全相同的用户体验,且无需安装,请使用此链接。
步骤 3:注册 GitHub 代码空间
我个人认为,GitHub 代码空间改变了开发游戏规则。虽然也有其他工具试图做类似的事情,但代码空间的广度和范围着实令人吃惊。不过,长话短说、Codespaces 基本上是将您的交易机器人封装到一个开发环境中,并始终保持更新。
Want some more reasons it’s awesome?
- 再也不会丢失代码
- 添加工具(如 TA Lib)只需几分钟而不是几小时
- 只要有网络浏览器和互联网,在任何地方都能使用。
- 看起来就像 VS 代码
在撰写本文时,您每月可免费获得 60 小时的 Codespace 使用时间。完成这个系列的学习并建立自己的第一个交易机器人绰绰有余 😀在此注册。
步骤 4:10 分钟内创建开发环境
如果您已经注册了这三项服务,那么您就拥有了创建开发环境所需的一切。具体方法如下:
流程如下:
- 转到 GitHub -> Repositories -> New
- 填写详细信息(并根据您的偏好设置为 “公开 “或 “私人”)。
- 选择代码 -> 代码空间 -> 在主屏幕上创建代码空间
- 添加名为 app.py 的新文件,并添加一行 print(“Hello World”)
- 添加一些扩展功能。请在本文底部查看我最喜欢的一些扩展功能
三、交易机器人 ❤️TA Lib
很久很久以前,世界上有一款功能最强大、使用最广泛的技术分析工具。它被称为 TA Lib,是技术分析的黄金标准。然而,这个工具却成了许多人的心病,主要问题是:
- 难以安装
- 难于上青天
- 100% 不与 Windows 电脑兼容
许多人试图让它运转起来。这花费了他们很多时间。他们再也找不回来的时间。最宝贵的资源–时间,就浪费在这个令人沮丧的工具上。不过现在,我们可以使用 GitHub 代码空间来解决这个问题。
1. 在 8 分钟内为您的交易机器人添加 TA Lib
首先,按照以下步骤在开发环境中设置几个文件:
流程如下,全部在您之前创建的代码空间内:
- 创建名为 requirements.txt 的文件
- 在 requirements.txt 中添加 TA-Lib
- 创建名为 .devcontainer 的文件夹
- 在该文件夹中,创建一个名为 Dockerfile 的文件
- 在该文件夹中,创建另一个名为 devcontainer.json 的文件
文件结构现在应该是下面这样的:
现在,用这段代码更新你的 Dockerfile:
# Part of the article: Build Your Own Trading Bot Dev Environment that works from Anywhere and includes TA Lib, AI
# TradeOxy URL to access article: https://www.tradeoxy.com/blog/build-your-own-trading-bot-dev-environment-that-works-from-anywhere-includes-technical-indicators-from-ta-lib-and-cutting-edge-ai/
# Medium URL to access article: https://medium.com/@appnologyjames/build-your-own-trading-bot-development-environment-5163443da220
# Main GitHub Repo: https://github.com/jimtin/something-cool/blob/main/README.md# Use the official image as a parent image.
FROM mcr.microsoft.com/vscode/devcontainers/python:3.10# Set environment varibles
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1# Set work directory
WORKDIR /code# Install system dependencies
RUN apt-get update && apt-get install -y --no-install-recommends \gcc \default-libmysqlclient-dev \build-essential \wget# Download TA-Lib to the /tmp directory
RUN wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz -O /tmp/ta-lib-0.4.0-src.tar.gz# Extract TA-Lib files
RUN tar xvzf /tmp/ta-lib-0.4.0-src.tar.gz -C /tmp# Navigate into the extracted TA-Lib source code directory
WORKDIR /tmp/ta-lib/# Build and install TA-Lib
RUN ./configure --prefix=/usr && make && make install# Navigate back to the root directory
WORKDIR /# Copy the requirements.txt file to the root directory
COPY requirements.txt /# Install the Python dependencies
RUN pip install --upgrade pip && pip install -r /requirements.txt# Install TA-Lib python wrapper
RUN pip install TA-Lib
接下来,用这段文字更新 devcontainer.json:
{"name": "Python 3","build": {"dockerfile": "Dockerfile","context": "..","args": { "VARIANT": "3.10","INSTALL_NODE": "true","NODE_VERSION": "lts/*"}},"runArgs": ["--network","host"],"postCreateCommand": "pip install TA-Lib","remoteUser": "vscode"
}
最后,当 VS Code 要求您重新启动代码空间时,请按照提示操作。
2.在一分钟内为您的交易机器人开发环境添加 ChatGPT
GitHub CoPilot,是我迄今为止见过的最实用的人工智能实现之一。
实际上,这一工具将:
- 可为您节省多达 60% 的开发时间(据许多开发人员称)
- 充当功能齐全的代码补全编辑器,每次都能复制你的个人编码风格
- 当您的代码出现问题时,为您提供有用的建议
我将在以后的文章中解释 CoPilot 为何如此强大,但现在,你可以在 60 秒内将其添加到你的代码空间。具体方法如下:
- 使用此链接注册
- 进入代码空间,找到 GitHub CoPilot 扩展
- 安装
请注意。在撰写本文时,您还可以免费试用该扩展 30 天。绰绰有余,足以构建您的第一个交易机器人。
四、其他一些有用的 VS 代码扩展
最后,我将列举一些我在自己的 VS Code 设置中使用的有用工具。请随意使用:
- CoPilot 主题 – 我喜欢这种配色方案
- Docker– 帮助我格式化 Docker 文件
- autopep8– 帮助我保持代码格式正确
- Resource Monitor — 资源监控器 ,显示集成开发环境正在消耗哪些资源
五、总结
恭喜您建立了自己的交易机器人开发环境!您现在已经拥有了开始构建交易机器人所需的一切!总结下本文中的一些观点。
- 开发环境的重要性:作者认为一个良好配置的开发环境对于交易机器人的开发至关重要,可以显著提高开发效率。
- 技术分析工具的挑战:TA Lib 作为技术分析的黄金标准,但其安装过程极其挑战性,作者通过 GitHub Codespaces 提供了一种简化安装的方法。
- AI 编码助手的价值:GitHub CoPilot 作为一个 AI 编码助手,能够提供代码补全建议,节省开发时间,并且能够适应开发者的编码风格。
- 开发环境的全球可访问性:通过 Starlink 和 Raspberry Pi 的结合,开发者可以在全球任何地方访问和使用他们的开发环境。
- 开源和社区支持:作者强调了开源工具和社区支持的重要性,提供了多种方式让开发者可以互相帮助和学习。
- 个人化开发环境:通过添加特定的扩展和定制设置,开发者可以根据自己的需求个性化他们的开发环境。
本文内容仅仅是技术探讨和学习,并不构成任何投资建议。
转发请注明原作者和出处。
相关文章:
如何构建自己的交易机器人开发环境
作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文主要讲解如何构建一个交易机器人开发环境。描述具体的步骤和工具,包括使用 GitHub Codespaces、Visual Studio Code(VS Code)…...
解决WordPress文章引用的图片不显示问题
在使用WordPress发布文章时,有时会遇到复制发布的文档中包含的外链图片无法正常显示的问题。然而,当我们将图片路径复制到浏览器中单独打开时,图片却可以正常显示。以下是解决这一问题的方法。 问题描述 当你在WordPress文章中引用外链图片…...
商业银行国际结算规模创新高,合合信息AI助力金融行业智能处理多版式文档
随着我国外贸新业态的快速增长,银行国际结算业务在服务实体经济发展、促进贸易投资便利化进程中发挥了越来越重要的作用。根据中国银行业协会近日发布的《中国贸易金融行业发展报告(2023—2024)》,2023年我国主要商业银行国际结算…...
数字芯片设计验证经验分享:将ASIC IP核移植到FPGA上——更新概念并推动改变以完成充满挑战的任务!
作者:Philipp Jacobsohn,SmartDV首席应用工程师 Sunil Kumar,SmartDV FPGA设计总监 本系列文章从数字芯片设计项目技术总监的角度出发,介绍了如何将芯片的产品定义与设计和验证规划进行结合,详细讲述了在FPGA上使用I…...
【Linux】Linux下的日志(日常级)
日志是日后工作中非常重要的一部分,现在写一份简单的日志项目可以帮助我们熟悉并理解原理。 目录 设计思路:一些实现细节:代码:日志的使用方法: 设计思路: 图示是我们的最终目的。 设计一个类࿰…...
手把手教你如何在Linux上轻松安装Python,告别编程入门难题
导语: Python作为当下最热门的编程语言之一,受到了越来越多人的喜爱。对于Linux用户来说,掌握如何在Linux上安装Python至关重要。今天,就让我带领大家一步步在Linux上安装Python,让你轻松迈入编程世界! 一…...
XSS-labs靶场(超详解)1-20关——附原码
level1 原码 <!DOCTYPE html><!--STATUS OK--><html> <head> <meta http-equiv"content-type" content"text/html;charsetutf-8"> <script> window.alert function() { confirm("完成的不错࿰…...
【网络安全】LockBit病毒入侵揭秘:如何防范与应对
文章目录 前言 主要特征攻击手段演进历程主要威胁防范与对策 如何入门学习网络安全【黑客】 【----帮助网安学习,以下所有学习资料文末免费领取!----】 大纲学习教程面试刷题 资料领取 前言 在数字时代,随着科技的飞速发展,网络…...
《开源大模型食用指南》适合中国宝宝的部署教程,基于Linux环境快速部署开源大模型
本项目是一个围绕开源大模型、针对国内初学者、基于 AutoDL 平台的中国宝宝专属大模型教程,针对各类开源大模型提供包括环境配置、本地部署、高效微调等技能在内的全流程指导,简化开源大模型的部署、使用和应用流程,让更多的普通学生、研究者…...
体验教程:通义灵码陪你备战求职季
本场景将带大家体验在技术面试准备场景下,如何通过使用阿里云通义灵码实现高效的编程算法题练习 、代码优化、技术知识查询等工作,帮助开发者提升实战能力,更加从容地应对面试挑战。主要包括: 1、模拟题练习:精心挑选…...
(070)爬楼梯
思路:一次爬一个或者一次爬两个楼梯,终止条件,即是当n1或n2时,完成操作,当n>2时,总方法就等于一次爬一个楼梯的方法数加上一次爬两个楼梯的方法数。 解法一:递归解法 if(n 1)return 1;if(n 2)return 2…...
el-table 表格序号列前端实现递增,切换分页不从头开始
<el-table-column type"index" width"55" label"序号" :index"hIndex"> </el-table-column> 分页 <el-pagination size-change"handleSizeChange" current-change"handleCurrentChange"> <…...
NSSCTF-Web题目27(Nginx漏洞、php伪协议、php解析绕过)
目录 [HNCTF 2022 WEEK2]easy_include 1、题目 2、知识点 3、思路 [NSSRound#8 Basic]MyDoor 4、题目 5、知识点 6、思路 [HNCTF 2022 WEEK2]easy_include 1、题目 2、知识点 nginx日志漏洞执行系统命令 3、思路 打开题目,出现源码 题目要我们上传一个fi…...
分割损失:Dice vs. IoU
NSDT工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器 - REVIT导出3D模型插件 - 3D模型语义搜索引擎 - Three.js虚拟轴心开发包 - 3D模型在线减面 - STL模型在线切割 对于医学影像分割…...
SpringBoot整合Juint,ssm框架
目录 SpringBoot整合Juint 1.导入相关的依赖 2.创建测试类,使用注解SpringBootTest SpringBoot整合ssm框架 1.使用脚手架创建Spring项目 2.修改pom.xml 我先修改了SpringBoot的版本,修改为2.3.10.RELEASE,因为SpringBoot版本太高会出现…...
基于supervisor制作基于环境变量配置的redis
背景: redis 的镜像很多很多,但都需要直接修改配置文件,不符合我们公司当前环境变量解决一切容易配置的思路。 材料: 1、CentOS-Base.repo [base] nameCentOS-$releasever enabled1 failovermethodpriority baseurlhttp://mirr…...
动态规划part01 509. 斐波那契数 70. 爬楼梯 746. 使用最小花费爬楼梯
509. 斐波那契数 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中 …...
CSS实现图片边框酷炫效果
一、前言 我们在浏览一些网页时,经常会看到一些好看酷炫的元素边框效果(如下图),那么这些效果是怎么实现的呢?我们知道,一般的边框,要么是实线,要么是虚线(点状…...
遇到 MySQL 死锁问题如何解决?
终于来到死锁检查线程的第三步,可以解决死锁了。 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品,原创内容未经授权不得随意使用࿰…...
Pyinstaller打包OSError: could not get source code【终极解决】
pyinstaller 打包的时候,发现只要是torch.jit.script装饰的函数,会报以下错误: Traceback (most recent call last):File "torch/_sources.py", line 25, in get_source_lines_and_fileFile "inspect.py", line 1123, i…...
【计算机毕业设计】707高校宿舍管理系统
🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板ÿ…...
从C++看C#托管内存与非托管内存
进程的内存 一个exe文件,在没有运行时,其磁盘存储空间格式为函数代码段全局变量段。加载为内存后,其进程内存模式增加为函数代码段全局变量段函数调用栈堆区。我们重点讨论堆区。 托管堆与非托管堆 C# int a10这种代码申请的内存空间位于函…...
Linux进程间通信--IPC之无名管道
进程间通信(IPC,InterProcess Communication)是指在不同进程之间传播或交换信息。 IPC的方式通常有管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams支持不同主机上的两个进程的IPC。...
Oracle19c数据库system密码锁定
一、在oracle 19c数据库中,cdb中system用户被锁定,locked 二、所在的pdb中的system用户状态是正常的,但不可用,连接的时候提示账号已锁定 三、解决 在cdb中将system用户解锁。 alter user system account unlock;...
java之hashCode() 方法和 equals(Object obj) 方法之间的关系
1、 hashCode() 方法和 equals(Object obj) 在Java中,hashCode() 方法和 equals(Object obj) 方法之间的关系是紧密相连的,特别是在使用基于哈希的集合(如 HashSet、HashMap、HashTable 等)时。这两个方法共同决定了对象在哈希表…...
首届「中国可观测日」圆满落幕
首届中国可观测日(Observability Day)在上海圆满落幕,为监控观测领域带来了一场技术盛宴。作为技术交流的重要平台,此次活动不仅促进了观测云与亚马逊云科技之间的深化合作,更标志着双方共同推动行业发展的重要里程碑。…...
[Docker][Docker NetWork][下]详细讲解
目录 1.网络管理命令1.docker network creatre2.docker network inspect3.docker network connect4.docker network disconnect5.docker network prune6.docker network rm7.docker network ls 2.docker bridge 详解0.基本概念1.默认 bridge2.自定义 bridge3.DNS解析4.端口暴露…...
安卓系统在未来如何更好地解决隐私保护与数据安全的问题?
安卓系统可以通过以下方式更好地解决隐私保护与数据安全的问题: 强化权限控制:安卓系统可以进一步加强对应用程序权限的管理,确保用户能够清楚地知道应用程序需要哪些权限,并给予用户更多的控制权,例如允许用户选择性地…...
MySQL innodb单表上限一般多少
参考:https://www.zhihu.com/question/351797203/answer/3137174084 1.MySQL innodb单表上限为啥都说是2k万条 2.GaussDB for MySQL 为啥可以突破单表2k万的限制 要讨论这两个问题,得先明确性下实际的DB部署环境 表是索引数据是放在磁盘上的…...
更小、更安全、更透明:Google发布的Gemma推动负责任AI的进步
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
暴雪网易2023后不代理了/seo外包费用
查看自己的ip和采用什么方式上网(网通/电信)http://www.whatchina.com/html/sip.asp本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/161180,如需转载请自行联系原作者...
报名网站如何做/中国腾讯和联通
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系很有用;以下是redis官方提供的命令使用技巧:下载地址如下:https://github.com/owlient/phpredis(支持redis 2.0.4)Redis::__construct…...
网站源码完整/百度前三推广
目录 简介 安装 单独使用 const store createStore(reducer) store.subscribe(fun) store.getState() store.dispatch(obj) 示例 结合react使用 Provider const mapStateToProps state>(obj) const mapDispatchToProps obj connection 示例 index.js sto…...
简单网上书店网站建设php/中国行业数据分析网
坑 意味着没有输出。变量都会保存到console里边 如果取消这个选项,则:有输出,运行完就结束了...
网站论坛怎么建设/进行seo网站建设
在《人月神话》中,布鲁克斯老先生将维护软件的" 概念完整性" 作为软件开发的核心问题。软件之所以很复杂、难以维护,根本原因就在于软件的概念完整性遭到了破坏,甚至开发团队的成员从来就没有意识到有必要去维护软件的概念完整性&a…...
营口市网站建设/做搜索引擎优化的企业
1 centos 6.x 安装 MySQL 注意:需要root权限。 yum install -y mysql yum install -y mysql-server yum install -y mysql-devel 2 centos 7.x 安装 MySQL 注意:需要root权限。 1)安装前工作 // 1)检测系统是否已有MySQL rp…...