跳转至

开发环境

安装依赖

  • ✅ 安装 magic + mojo
  • ✅ 安装 rust + cargo
  • ✅ 安装 go-task(Taskfile.yml) 构建工具

mojo 开发环境

curl -ssL https://magic.modular.com/deb109a8-2663-4eee-8cd6-74128a9a83d1 | bash
  • 设置环境变量:
# mojo:
export PATH="$PATH:$HOME/.modular/bin"
export MODULAR_HOME="$HOME/.modular"

rust 开发环境

  • ✅ 使用 rustup 安装 rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
  • 设置环境变量:
# rust:
export PATH="$HOME/.cargo/bin:$PATH"

vscode 配置

vscode 插件

  • 注意: 要安装 mojo(nightly) 的插件, 才能正常补全!!!
  • Remote - SSH
    • ssh 连接 虚拟机 or 容器, 需要此插件

macos + orbstack + ubuntu 虚拟机

  • vscode
  • m1 mac 是支持 mojo 的, 不过部分库在 rust ffi 编译 + 链接, 目前有问题.
  • 统一使用 ubuntu 虚拟机环境.

  • 在 mac 用户根目录 ~/.ssh/config 配置如下 ssh 连接配置

# 对应 orb 虚拟机的 ssh 配置
Host orb22    # 别名
    HostName localhost
    Port 32222    # 端口,稍后会进行修改
    User dev    # 用户名
    IdentityFile ~/.orbstack/ssh/id_ed25519    # 私钥文件

编译框架

  • Taskfile.yml 文件的构建脚本, 同时支持 macOSLinux.
# 同时编译依赖库和框架
task build

编译框架依赖库

  • ✅ 框架底层依赖为 rust 库, 编译 rust ffi 底层依赖库
# 下载依赖到 tmp/ 
task get:requirements

# 编译 tmp/ 下的依赖库, 并把编译结果, 自动 copy 到 ./bin/ 目录 
task build:requirements    

编译框架包

  • ✅ 把 mojo 量化框架编译为 .mojopkg 格式的二进制包.
  • ✅ 写策略的工程,需要同时 copy .mojopkg 包 和 ./bin/ 里的 rust 二进制库依赖.
# 编译 mojo 包, 并 copy 到 ./bin/ 目录
task build:pkg

运行示例

  • ✅ 根据 .env.example 文件, 创建 .env 文件
  • ✅ 添加环境变量到 .env 文件中, 包含交易所的 API-KEY
# 运行示例 
task run:demo

策略编写

  • ✅ 写策略的工程,需要同时 copy .mojopkg 包 和 ./bin/ 里的 rust 二进制库依赖.