商品期货套利 - 多品种网格对冲模型 注释版

2024-02-18 16:18

本文主要是介绍商品期货套利 - 多品种网格对冲模型 注释版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

商品期货套利 - 多品种网格对冲模型 注释版

  • #### 代码:
// 商品期货套利 - 多品种网格对冲模型 注释版
function Hedge(q, e, positions, symbolA, symbolB, hedgeSpread) { // 对冲对象 生成函数, 参数q 为最开始调用 商品期货交易类库模板 的 导出函数 生成的 交易队列控制对象, 参数e 为交易所对象,positions 为初始仓位// symbolA 为第一个合约类型,  symbolB 为第二个合约类型, hedgeSpread 为对冲 交易量控制表 字符串。var self = {}                                                // 声明一个 空对象 用于给空对象 初始化 后返回 (即对冲对象)self.q = q                                                   // 给对冲对象 添加 属性 q ,并用参数的q 初始赋值。self.symbolA = symbolA                                       // 给对冲对象self 添加属性 symbolA ,储存 第一个合约类型self.symbolB = symbolB                                       // ...self.name = symbolA + " & " + symbolB                        // 对冲对象的 名称 即对冲组合self.e = e                                                   // 对冲对象 中储存交易所对象 的引用 self.isBusy = false                                          // 繁忙 标记 初始为 不繁忙。self.diffA = 0                                               // 差价A ,  即 symbolA买一 - symbolB卖一 self.diffB = 0                                               // 差价B ,  即 symbolB卖一 - symbolA买一self.update = _D()                                           // 记录 更新时间var arr = hedgeSpread.split(';')                             // 把传入的  交易量控制表 字符串 按照 ';' 字符 分割。self.dic = []                                                // 网格节点 对象 数组var n = 0                                                    // var coefficient = 1                                          // 系数 初始1for (var i = 0; i < positions.length; i++) {                 // 遍历持仓信息。if (positions[i].ContractType == symbolA) {              // 如果遍历当前的 持仓信息 的合约类型 和 当前对冲对象的 第一个合约类型 相同n += positions[i].Amount                             // 累计 类型为 symbolA 的合约的持仓量if (positions[i].Type == PD_LONG || positions[i].Type == PD_LONG_YD) {   // 如果 持仓类型是 多仓 , coefficient 赋值为 -1 ,即 代表 反对冲: 多 symbolA  空 symbolBcoefficient = -1}}}_.each(arr, function(pair) {                                 // 把 控制表字符串 数组的  每一个单元  迭代传递到 匿名函数 作为参数 pairvar tmp = pair.split(':');                               // 把每个 网格节点的 单元 按照':'字符 分割成 参数 数组 tmpif (tmp.length != 3) {                                   // 由于 格式 是  30:15:1  即   开仓差价: 平仓差价: 下单量    ,所以 用 ':' 分割后 tmp长度 不是3的 即 格式错误throw "开仓表不正确";                                  // 抛出异常  格式错误}var st = {                                               // 每次迭代的时候 构造一个对象 open: Number(tmp[0]),                                // 开仓  把 tmp[0]  即 30:15:1 按 ':' 分割后 生成的数组中的 第一个元素  30 , 通过 Number 函数 转换为数值cover: Number(tmp[1]),                               // 平仓..amount: Number(tmp[2]),                              // 量..hold: 0                                              // 持仓 初始为0}if (n > 0) {                                             // 如果 n 大于0  ,即 开始的时候 有持仓。var m = Math.min(n, st.amount)                       // 取 当前合约组合中 symbolA的 持仓量   和  网格节点 中的开仓量  二者的 

这篇关于商品期货套利 - 多品种网格对冲模型 注释版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/721716

相关文章

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

idea中创建新类时自动添加注释的实现

《idea中创建新类时自动添加注释的实现》在每次使用idea创建一个新类时,过了一段时间发现看不懂这个类是用来干嘛的,为了解决这个问题,我们可以设置在创建一个新类时自动添加注释,帮助我们理解这个类的用... 目录前言:详细操作:步骤一:点击上方的 文件(File),点击&nbmyHIgsp;设置(Setti

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Redis中如何实现商品秒杀

《Redis中如何实现商品秒杀》:本文主要介绍Redis中如何实现商品秒杀问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录技术栈功能实现步骤步骤一:准备商品库存数据步骤二:实现商品秒杀步骤三:优化Redis性能技术讲解Redis的List类型Redis的Set

Python中的输入输出与注释教程

《Python中的输入输出与注释教程》:本文主要介绍Python中的输入输出与注释教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、print 输出功能1. 基础用法2. 多参数输出3. 格式化输出4. 换行控制二、input 输入功能1. 基础用法2. 类

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

Rust中的注释使用解读

《Rust中的注释使用解读》本文介绍了Rust中的行注释、块注释和文档注释的使用方法,通过示例展示了如何在实际代码中应用这些注释,以提高代码的可读性和可维护性... 目录Rust 中的注释使用指南1. 行注释示例:行注释2. 块注释示例:块注释3. 文档注释示例:文档注释4. 综合示例总结Rust 中的注释

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应