FMZ 文档笔记

https://fmz-docs.readthedocs.io/en/latest/example.html

基本概念

  • Futures 期货(前途的复数)

  • Spot 现货

  • Stock 股票

  • Position 头寸

  • Long 多头(做多, 买入) -> long position 多头头寸(买入者)

  • Short 空头(做空, 卖出) -> short position 空头头寸(卖出者)

  • Balance

  • Margin 为承担风险而进行的抵押品(Collateral)

  • Margin Call 追加保证金通知

  • Hedge 风险对冲

  • K Line K 线

  • MACD, Moving Average Convergence and Divergence, 平滑移动平均线

  • Ask叫价(卖) / Bid竞价(买).

  • Quotations 行情

  • Revenue 收入

  • Gross Profit 毛利

  • Gross profit margin 毛利率

  • Net Profit 净利 (毛利扣除税费), 也叫 Net Profit after tax, Earning after tax

  • Net profit margin 净利率

Q: 成交列表中的 S/B, 红/绿, Sell/Buy是买卖的意思, 但是买卖应该同时进行有买有卖, 为什么会出现红绿呢?
A: 主动性买盘是指以卖出价格主动成交的成交量,计算入外盘。
外盘就是股票在卖出价成交,成交价为申卖价,说明买盘比较积极,推动股价上涨。
主动性买盘的成交为外盘,主动性卖盘的成交为内盘。
其实内外盘并不能反映真正的买卖盘力量,但是内外盘之和等于总的成交量。

快速开始

提供交易所历史数据, 支持 JS, Python 编写交易. 代码通过 Docker 运行部署到自己的服务器上.

Backtest System: 回溯系统, 将历史数据跑到代码上, 进行测试.

部署 Docker

机器人下载工具: https://www.fmz.com/m/add-node

nohup ./robot -s rpcs@a.botvs.com:9902/xxxxxx -p yourFMZpassword &

查看节点: https://www.fmz.com/m/dashboard

添加支持平台

添加支持平台 https://www.fmz.com/m/add-platform

编写/获取脚本 https://www.fmz.com/square

基于历史数据做回溯测试, 可以使用自己的 docker 进行测试, 也可以购买时长.

交易脚本结构

入口为 main()
退出前 onexit()onerror() 最长5分钟, 可省略
初始化方法 init()

1
2
3
4
5
6
7
8
9
10
function onTick(){
//write your strategy here, it will repeat itself
}

function main(){
while(true){
onTick();
Sleep(60000); // ms
}
}

交易

所有的交易都由 exchange 变量进行调用.

exchange ==> exchanges[0]

GetName()
GetLabel()

市场情况

GetTicker 当前市场行情

返回对象

Info 平台原始数据, 不同平台结构不一样. 内容需要手动转化成浮点型.
High/Low 最高/低价, Sell/Buy 最新买/卖价格, Last 最新成交价, Volume 交易量, Time 时间

GetDepth 深度图

返回对象

Info null
Asks: 要价, Bids 出价, Time 时间戳

要价/出价都是一个结构 {Price, Amount} 组成的数组

GetTrades 当前所有人的交易记录

返回数组

Id, Time, Amount 交易量, Price 交易价格, Type 0买/1卖

GetRecords 获取 K 线图(从老->新)

参数 period: PERIOD_M1, PERIOD_M5, PERIOD_M15, PERIOD_M30, PERIOD_H1, PERIOD_D1

返回数组

Time 时间, Open 开盘价, High 最高价, Low 最低价, Close 收盘价, Volume 交易量

交易接口

GetAccount 获取账户资产

Buy/Sell/CancelOrder 买/卖/取消

GetOrder/GetOrders 获取(全部)订单

取消全部订单, 使用 GetOrders 获取全部订单后, 循环可以逐一取消.

期货交易相关

  1. SetContractType
  2. GetPosition
  3. SetMarginLevel 设置杠杆倍数
  4. SetDirection buy, closebuy, sell, closesell

扩展和全局方法

Donate - Support to make this site better.
捐助 - 支持我让我做得更好.