比特币接口
一、核心接口:账号和策略
1. 账号 账号的编辑提交 L|Json(T_Td)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class T_Td { public int chk { get ; set ; } //是否勾选自动登录 public int account_id { get ; set ; } //id public string account_no { get ; set ; } //交易账户 public string account_pw { get ; set ; } //交易密码 public string exchange { get ; set ; } //交易平台 public int is_login { get ; set ; } //是否已经登录 public int catalog { get ; set ; } // public int status { get ; set ; } //0待认证,1已认证通过,-1认证失败 public string remark { get ; set ; } //登录备注 public int type { get ; set ; } //是否模拟账号:1模拟 public string user_name { get ; set ; } //账户所有人 public string apikey { get ; set ; } //平台授权 public string secret { get ; set ; } //平台授权 public string passphrase { get ; set ; } //平台授权 }<br>范例: |
提交账户:chk:1立即登录验证 chk:0 停止账号包括相关策略
L|{"chk":1,"account_id":1,"account_no":"530847209@qq.com","account_pw":"123456","exchange":"huobi","is_login":1,"catalog":0,"status":0,"remark":null,"type":0,"user_name":null,"apikey":"b5cc3097-cebead72-rfhfg2mkl3-ab934","secret":"34c494e6-e91d719d-1fc268af-72135","passphrase":""}
返回账户状态: ret:1 成功执行, -1:执行失败
L|ret|{"chk":1,"account_id":1,"account_no":"530847209@qq.com","account_pw":"123456","exchange":"huobi","is_login":1,"catalog":0,"status":0,"remark":"登录成功","type":0,"user_name":null,"apikey":"b5cc3097-cebead72-rfhfg2mkl3-ab934","secret":"34c494e6-e91d719d-1fc268af-72135","passphrase":""}
L|-1|异常信息
2)账号删除:包括相关策略也会删除 LR|Json(T_Td)
LR|{"chk":1,"account_id":1,"account_no":"530847209@qq.com","account_pw":"123456","exchange":"huobi","is_login":1,"catalog":0,"status":0,
"remark":null,"type":0,"user_name":null,
"apikey":"b5cc3097-cebead72-rfhfg2mkl3-ab934","secret":"34c494e6-e91d719d-1fc268af-72135","passphrase":""}
返回: ret:1 成功执行, -1:执行失败 0:未执行,策略本不存在
LR|ret|{"chk":-1,"account_id":1,"account_no":"530847209@qq.com","account_pw":"123456","exchange":"huobi","is_login":1,"catalog":0,"status":0,
"remark":"停止成功","type":0,"user_name":null,"apikey":"b5cc3097-cebead72-rfhfg2mkl3-ab934","secret":"34c494e6-e91d719d-1fc268af-72135","passphrase":""}
LR|-1|异常信息
3)帐号查询
1 | QL|帐号名<br>返回QL|1|json(T_Td)QL|-1|错误消息 |
2策略:提交、编辑、停止等 S|json(T_Strategy)
public class T_Strategy
{
public string _id { get; set; }//名称
public int chk { get; set; } //chk:1运行 0:暂停
public string stgyname { get; set; }//名称
public string executor { get; set; }//APP用户名
public int run_mode { get; set; } //run_mode:1实盘 0:虚拟
public string stgy_model { get; set; }//模型名
public int dc { get; set; } //交易方向0双向,1只买 -1只卖
public string inst_id { get; set; }//合约1
public string period { get; set; } //交易K线周期
public string param_list { get; set; }//复杂参数,
public string tds { get; set; }//货币交易账户名
public int status { get; set; }//运行状态 0:待执行 1:执行 -1:删除
public string remark { get; set; }//备注
public double vol { get; set; }//运行数量
public string inst_id2 { get; set; }//合约2,用于套利,暂时不用
public double vol2 { get; set; }//暂时不用
}
提交:
S|{"_id":"","chk":1,"stgyname":"530847209","executor":"","run_mode":0,"stgy_model":"马丁简化","dc":0,"inst_id":"huobi:btcusdt","remark":"",
"inst_id2":"","period":"15m","cash1:60,mul:2,num:8,back1:0.0035,fd2:0.03,back2:0.002,winfd:0.015,winback:0.001,stopfd:0,redo:1,fdlist:0.01|0.02",
"tds":"530847209@qq.com","status":1,"vol":1.0,"vol2":0.0}
参数fdlist 阶梯加仓幅度 0.01|0.02...... 数量可以不确定,加仓幅度顺序从第一个值开始,不足加仓次数的以fd2值代替
返回:
ret:1 成功执行, -1:执行失败
S|ret|{"_id":"","chk":1,"stgyname":"530847209","executor":"","run_mode":0,"stgy_model":"马丁简化","dc":0,"inst_id":"huobi:btcusdt","remark":"",
"inst_id2":"","period":"15m","param_list":"cash1:10000,mul:0.5,num:10,back1:0.005,fd2:0.02,back2:0.002,winfd:0.013,winback:0.001,stopfd:0,redo:1",
"tds":"530847209@qq.com","status":1,"vol":1.0,"vol2":0.0}
S|-1|异常信息
2)策略删除: SR|json(T_Strategy)
SR|{"_id":"","chk":1,"stgyname":"530847209","executor":"","run_mode":0,"stgy_model":"马丁简化","dc":0,"inst_id":"huobi:btcusdt","remark":"",
"inst_id2":"","period":"15m","param_list":"cash1:10000,mul:0.5,num:10,back1:0.005,fd2:0.02,back2:0.002,winfd:0.013,winback:0.001,stopfd:0,redo:1",
"tds":"530847209@qq.com","status":1,"vol":1.0,"vol2":0.0}
返回:ret:1 成功执行, -1:执行失败 0:未执行,策略本不存在
SR|ret|{"_id":"","chk":-1,"stgyname":"530847209","executor":"","run_mode":0,"stgy_model":"马丁简化","dc":0,"inst_id":"huobi:btcusdt","remark":"删除成功", "inst_id2":"","period":"15m","param_list":"cash1:10000,mul:0.5,num:10,back1:0.005,fd2:0.02,back2:0.002,winfd:0.013,winback:0.001,stopfd:0,redo:1", "tds":"530847209@qq.com","status":1,"vol":1.0,"vol2":0.0}
SR|-1|异常信息
3)查询策略内容
1 | QS|{stgyname: "ddd" }返回 QS|1|json(T_Strategy) QS|-1|错误消息 |
4)查询策略运行时状态
public class T_StgyRunInfo{
public string stgyname { get; set; }//名称 public double amount { get; set; }//帐号持仓量 public double po { get; set; }//策略持仓量 public double avg { get; set; }//持仓均价 public double margin { get; set; }//策略持仓金额
public double profit { get; set; }//盈亏
public string fd { get; set; }//盈亏幅度,自带%
public string fd { get; set; }//盈亏幅度 public int num_open { get; set; }//买入次数 public int num_close { get; set; }//卖出次数 public string last_order { get; set; }//最后报单原因 public string run_msg { get; set; }//运行过程信息
public int status { get; set; }//运行状态 0:待执行 1:执行 -1:删除
} 查询: QR|{stgyname:"ddd"} 返回: QR|1|json(T_StgyRunInfo) QR|-1|错误信息
5) 查询账号美元资金数
查询: QM|{account_no:"ddd"} 返回: QM|1|{amount:100.0} QM|-1|错误信息
二、行情
1.行情 从数据库获取 mongodb T_Json
public class T_Tick { public string sid { get; set; }//合约+交易所 public string InstId { get; set; } public string Exchange { get; set; } public DateTime T { get; set; } //当前日期+数据时间 public double hm { get; set; } //时间 public double O { get; set; } public double L { get; set; } public double H { get; set; } public double C { get; set; } public double Fd { get; set; }//幅度 public double Bid { get; set; }//买一 public double Ask { get; set; }//卖一 public int BVol { get; set; }//买一量 public int AVol { get; set; }//卖一量 public int dV { get; set; } //成交量 public double PreC { get; set; } //前收 }
{
"_id" : ObjectId("6078dd379fee2043b0eab5ed"),
"json" : "[{\"sid\":\"huobi:btcusdt\",\"InstId\":\"btcusdt\",\"Exchange\":\"huobi\",\"T\":\"2021-04-16T00:46:49.529Z\",\"hm\":0.0,\"O\":0.0,\"L\":0.0,\"H\":0.0,\"C\":63486.08,\"Fd\":0.0,\"Bid\":63486.07,\"Ask\":63486.08,\"dV\":0.0,\"PreC\":0.0,\"kid\":null}]",
"dt" : ISODate("2021-04-16T00:46:50.798Z"),
"name" : "ticks"
}
2.K线数据 从数据库获取,mongodb T_Bar
public class T_Bar { public string tid { get; set; } public string inst_id { get; set; }//合约 public string period { get; set; }//周期 public DateTime T { get; set; }//时间 public double O { get; set; }//开盘价 public double H { get; set; }//最高价 public double L { get; set; }//最低价 public double C { get; set; }//最新价 public double Fd { get; set; }//幅度 public double V { get; set; }//交易量 public long T0 { get; set; }//开始时间,内部用 public long T2 { get; set; }//结束时间,内部用 }
3.合约数据 mongodb T_Inst
public class T_Inst
{
public string sid { get; set; } //exchage:instcode
public string InstId { get; set; }
public string InstType { get; set; }//spot margin swap
public string InstName { get; set; }
public string Currency { get; set; }//计价货币 usdt btc
public string ProductId { get; set; }// usdt btc
public string Exchange { get; set; }
public int Multi { get; set; }
public double PriceTick { get; set; }
public double SizeTick { get; set; }
public string Catalog { get; set; }//
public int ExpireDate { get; set; }//到期日/最后交易日 20191225
public double ExcutePrice { get; set; }// 执行价
public int DC { get; set; }//看涨看跌0,1
}
2.权益 显示账号权益 消息: QM|Json(T_Amount)
public class T_Amount { public string keyid { get; set; } //按日存放的唯一标识 public string user_name { get; set; }//帐号ID public int account_id { get; set; } //帐号 public string account_no { get; set; } //帐号 public string exchage { get; set; } //交易所 public string currency { get; set; } //货币 public double amount { get; set; } //权益 public double avaiable { get; set; } //可用 public double margin { get; set; } //冻结保证金 public double cash { get; set; } //出入金 public double fee { get; set; } //手续费 public double po_profit { get; set; } //持仓盈亏 public double close_profit { get; set; } //平仓盈亏 public double pre_amount { get; set; } //上日权益 public double balance { get; set; } //净资产=入金-出金-+ 平仓盈亏-手续费 public double pre_balance { get; set; }//上日净资产 public double profit { get; set; } //净收益 public double day_rate { get; set; } //日收益率 public DateTime T { get; set; } //更新时间 public int day { get; set; } //交易日 内部用 }
3.报单 显示最近报单状态 消息: O|Json(T_Order)
public class T_Order { public string keyid { get; set; } //按日存放的唯一标识 public int account_id { get; set; } //帐号 public string account_no { get; set; } //帐号 public string inst_id { get; set; }//合约 public int dc { get; set; } //买0、卖1 public int kp { get; set; } //开0,平1 public double price { get; set; }//报单价 public double avg_price { get; set; }//成交均价 public double vol { get; set; } //报单量 public double vol_traded { get; set; } //已成交量 public double vol_closed { get; set; } //用于计算,不显示
public double fee //费用
public double margin //花费资金
public double profit //盈亏 public string status { get; set; } //报单状态 public string sys_id { get; set; }//系统报单号 public string local_id { get; set; }//本地报单号 public string ref_id { get; set; }//参考Id,存放策略名 stgyname public int keep_price { get; set; }//是否追价 public string from { get; set; } //来源 public string comment { get; set; } //备注 public int day { get; set; }//交易日 public int cancel_slop { get; set; } //追价滑点, public int cancel_ns { get; set; } //N秒未成交撤单 public int re_slop { get; set; } //重报价滑点 public DateTime insert_time { get; set; }// public DateTime update_time { get; set; }// public int restype { get; set; }//相应方式,即时 历史-1 查询 }
//报单状态中英文
public class OrderStatusEnum
{
public const string canceled = "canceled";
public const string submit = "submit";
public const string completed = "completed";
public const string canceledCN = "已撤单";
public const string submitCN = "报单中";
public const string completedCN = "已成交";
}
4.成交 仅显示, 消息: T|Json(T_Trade)
public class T_Trade { public string keyid { get; set; } //按日存放的唯一标识 public int account_id { get; set; } //帐号 public string account_no { get; set; } //帐号 public string sys_id { get; set; }//成交ID public string order_id { get; set; }//报单号 public string inst_id { get; set; }//合约 public string inst_name { get; set; }//合约名 public int dc { get; set; }//买0、卖1 public int kp { get; set; } //开0,平1 public double price { get; set; }//成交价 public double vol { get; set; } //成交量 public double vol_open { get; set; } //未平仓量,用于计算 public int day { get; set; }//交易日 public DateTime deal_time { get; set; }//成交时间 public double profit { get; set; } //对平仓和持仓 public double fee { get; set; } //手续费 public double status { get; set; } //结算状态 public int restype { get; set; }//相应方式,即时 历史-1 查询 }
仓位处理:
V|{inst_id:"",account_no:"",stgyname:"",vol:0,chk:-1} 0:清仓 >0 加仓 <0 减仓
chk:-1 删除策略 0:停止策略
返回: 正常 :V|1|JSON(T_Order) 错误: V|-1|错误信息;
设计有些问题,应该返回 V|1|提示信息
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述