9.19工作笔记

news2024/9/24 4:00:34

怎么做多空对冲

脚本2

  1. read_coin
  2. 选币
  3. 单币涨跌幅计算单币资金曲线
  4. 单币资金曲线均值得到周期总体资金曲线
  5. 周期总体资金曲线得到周期总体涨跌幅
  6. 周期总体涨跌幅计算得到总体资金曲线

脚本2怎么实现多空对冲的

  • 首先读取factors和periods中的文件,然后read_coin得到结果
  • strategy里面的cal_factor的作用是将所有的因子排名加权得到一个新的因子,这个就是多因子的做法。其中因子权重为factor_list里面的因子的最后一个元素,这里涉及到strategy里面的两个变量long_factor 和short_factor,如果其值为factors则表示,做复合因子
  • backtest_df为得到的复合因子
  • before_filter如果没有条件,则df_long 和df_short得到的就是df的copy
  • select_long_and_short_coin进行的是多空选币,这里需要注意:多空分别采用了什么因子,这里出现了long_factor和short_factor做为多空因子,但实际上这两个值都为factors,我怀疑这里做的多空是十分组,第一组多,第n组空
  • 如果想做多因子多空,需要改代码
  • select_long_and_short

如果是多空不同的单因子

  • Strategy.calc_factor得到的是和read_coin相同的back_test_df
  • 只需要修改strategy里面的long_factor和short_factor为想要的因子

任务

将PSY因子多头资金曲线和其他资金曲线组成对冲的多空资金曲线
多空资金曲线可以观察什么时期PSY因子有超额,什么时期没有,超额稳定不稳定
其他的资金曲线包括:BN现货全市场在资金曲线、流动性多头资金曲线、反转策略多头资金曲线、BTC资金曲线
这里用到的办法是涨跌幅 = (a - b)/ 2

  • 全市场资金曲线怎么算
  • byclose是干嘛的
  • 注意到merge_df这里前面几行都为0,需要搞清楚为什么,以及怎么修改
  • 在得到factors和periods之后,如何计算资金曲线
  • spot的意思是同时买spot和swap,swap是只买swap,这个说法对不对

ret_next

periods的文件如图:
在这里插入图片描述

df[‘ret_next’] = df[‘下个周期_avg_price’] / df[‘avg_price’] - 1
其中avg_price是一小时的avg_price在12h的区间里去第一个值
这里的ret_next是下个周期价格的涨跌幅

计算资金曲线的流程

  • read_coin读数据,得到12h的开高收低 涨跌幅以及因子值

这里的因子 涨跌幅怎么从1h到12h
avg_price是从1h到12h取first
df[‘ret_next’] = df[‘下个周期_avg_price’] / df[‘avg_price’] - 1
这里可能存在问题,avg_price从1h到12h需要做mean
因子值怎么得到???????

  • 然后通过因子排名得到多空选币的币
  • 每个时间点,知道下个周期选中的每个币的下周期涨跌幅,分别计算资金曲线,然后mean得到总体资金曲线,然后回推得到总体涨跌幅
  • 这样就能得到每个周期的涨跌幅
  • 计算的到资金曲线

怎么计算新涨跌幅

  • 在上面得到每个周期涨跌幅之后
  • (a - b) / 2得到新的涨跌幅度

怎么计算全市场涨跌幅

  • 12h的周期上,知道每个币的资金曲线
  • 求均值得到所有币的资金曲线
  • 然后求涨跌幅
  • 这个涨跌幅是12h内每小时的涨跌幅

怎么算多空对冲

  • 在计算出来12h周期的每小时涨跌幅之后
  • 将这个值放到equity中

怎么放到equity中的

  • 然后对equity的每小时涨跌幅做 (a - b) / 2
  • 作为新的equity
  • 这个equity如何绘制为曲线

这里有左轴和右轴
需要绘制的左轴放在data_dict中,需要绘制的右轴放在right_axis中,绘制的时候,函数会遍历这两个dict

脚本2

  • if_all_curves = True # 是否生成多头、空头曲线。True:生成;False:不生成,只有多空资金曲线
  • 1 read_coin
  • 2 计算单币在周期内的资金曲线
  • 3 均值得到周期资金曲线
  • 4 反推周期内的涨跌幅
  • 5 计算周期资金曲线
  • 6 将资金曲线放到equity中
  • 7 画图
  • 画图的时候算涨跌幅的减法,这里对equity的涨跌幅做减法
  • 这里需要扣除手续费吗?(先做上面的,完后再考虑这个)
  • byclose是什么?(稍后研究)
  • 流动性因子如何计算?

factors中的因子是小时级别的,periods中的数据是12H的,在进行resample的时候,怎么做的??

  • is_spot为true,只选择现货数据,false只选择合约,并且is_spot为true的时候,只选择has_swap的大币,这个说法对不对

filter_list

  • 脚本2分为以下几个阶段:
  • 1 read_coin
  • 2 计算单币在周期内的资金曲线
  • 3 均值得到周期资金曲线
  • 4 反推周期内的涨跌幅
  • 5 计算周期资金曲线
  • 6 将资金曲线放到equity中
  • 7 画图
  • 在第一阶段read_coin的时候,filter和factor一样,传入read_coin获得需要的数据
  • calc_factor 计算因子,制作factors的多空组合排名
  • before_filter 这里对filter做了df_long和df_short的筛选,其筛选比例是一个固定的数 80%,而且排序方式都是True,我觉的这里有问题。我希望用的是df_long,参数为0.1.可后期修改
  • 其实我感觉before_filter 是对多空币的筛选,只有满足某种条件的多空币才能被选中。
  • select_long_and_short_coin选币的时候,是对factors进行筛选的,这里的意思是对多空计算好的因子排名进行筛选的。
  • cal_net_value 根据选币结果,从每个币每小时涨跌幅到所有币的每小时资金曲线
  • 后面应该没有用到filter,也就是说,filter仅仅在read_coin之后,在before_filter函数中,筛选出了满足filter条件的coin,后续再拿去选币

流动性因子如何计算

  • 脚本2分为以下几个阶段:
  • 1 read_coin
    2 选币
  • 2 计算单币在周期内的资金曲线
  • 3 均值得到周期资金曲线
  • 4 反推周期内的涨跌幅
  • 5 计算周期资金曲线
  • 6 将资金曲线放到equity中
  • 7 画图
  • read_coin读取到的数据如下:
  • 在这里插入图片描述
  • 可以用多空吗?改改参数做多空,修改流动性因子的排序方式和选币比例

这里需要考虑多空两边对于has_swap的固定,稍后再说
在传入因子的时候,规定了因子排序方式为true或者false,但是在select_long_and_short_coin中的calc_rank中,不管是多头还是空头,排序方式都是true,这里怎么解释?
破案了,如果long_factor = short_factor = factors,那么calc_factor按照排序方式在排,如果long_factor和short_factor分别为不同的因子,那么多头True 空头false
比如因子只有一个:psy,且long_factor = short_factor = factors,那么在calc_factor的时候,按照排序方式对因子进行排序,将排名做为factors,然后在select_long_and_short_coin方法中对多头用从小到大,空头从大到小。笑拥了

  • 多空选币的时候,先选多头,让空头的数量和多头数量一样。short_select_coin_num == ‘long_nums’,如果short_select_coin_num 为特定的值,则按照这个值选币
  • 这里埋了一个雷,现货模式下,多头选币可以随便选,空头选币只能在有合约的大币里面选,而且涨跌幅和合约一样,因为空头只能在合约里面做(已老实)
  • 失败告终,(痛苦面具)

这里的空头和多头 资金费率不一样
空头是卖出,不是买入,方式不一样,所以不能这么算
(啊啊啊啊)

看别人的首先方式,优化自己

  • 这里的想法是:继续按照之前的多空去做,先calc_factor 然后select_short_and_long_coin,然后做多空头,这里存在的问题就是资金费率的计算不确定,另外只需要计算资金曲线
  • 首先解决现货模式下,空头用swap的情况
  • 资金费率的问题:资金费率是按照swap spot算的,这里修改玩空头的swap之后,资金费率被自然修正
  • 还有一个问题就是资金曲线的计算方式:多头正常,空头怕是要取负数

涨跌幅 / 币 / H
资金曲线 / 币 / H
资金曲线 / H
涨跌幅 / H

  • pool = multiprocessing.Pool(processes=3)
    result1 = pool.apply_async(cal_net_value, (long_df, hold_period, trading_time_list))
    result2 = pool.apply_async(cal_net_value, (short_df, hold_period, trading_time_list))
    result3 = pool.apply_async(calc_swap_pos_net_value,
    (select_coin, leverage, hold_period, margin_rate, trading_time_list))
    这段直接从第一步到了第三步,所以可能在这里做的计算
    resulet1和result2是在做 涨跌幅 / 币 / H 到 资金曲线 / H,result3是在做爆仓判断

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2159213.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Proteus-7.8sp2安装

一、D盘新建空文件夹,名为Proteus。 二、安装软件 1.双击P7.8sp2.exe 2.next 三、破解 1.双击 Proteus Pro 7.8 SP2破解 1.0.exe 2. 升级 打开软件 四、汉化 1.将如下两个文件复制到 D:\Proteus\BIN 路径中 重新打开软件,汉化成功

【在.net6和WPF框架下进行海康SDK开发】(一)如何引用Dll

最近有个上位机项目,需要将海康VisionMaster的部分功能嵌入到统一的界面。项目使用WPFdotNet6开发,UI库使用HandyControl。 先说下需求,在某个TabItem内嵌入一个UserControl,UserContr内嵌入VisionMaster运行界面。 本以为按照海康…

10年计算机考研408-计算机网络

【题33】下列选项中,不属于网络体系结构所描述的内容是() A.网络的层次 B.每一层使用的协议 C.协议的内部实现细节 D.每一层必须完成的功能 解析: 本题考查的是网络体系结构相关的概念。 图1描述了网络的7层架构以及每一层所要完成…

智能新突破:AIOT 边缘计算网关让老旧水电表图像识别

数字化高速发展的时代,AIOT(人工智能物联网)技术正以惊人的速度改变着我们的生活和工作方式。而其中,AIOT 边缘计算网关凭借其强大的功能,成为了推动物联网发展的关键力量。 这款边缘计算网关拥有令人瞩目的 1T POS 算…

某文书网爬虫逆向

一、抓包分析 请求参数和响应数据都有加密 二、逆向分析 老方法、下xhr断点 加密实现逻辑都在这个方法里 执行到这的时候,在向下跟栈数据就已经渲染出来了,说明是在这个方法里进行的解密 解密方法,data.result为加密数据,data.s…

Plant Disease Expert:植物病害数据集(猫脸码客 第197期)

Plant Disease Expert 数据集详细介绍 一、引言 在农业生产的广阔领域中,植物病害始终是一个不可忽视的挑战。它不仅直接威胁到作物的健康生长,还可能导致严重的产量下降,进而影响全球粮食安全和农业经济稳定。据权威机构估计,全…

18 基于51单片机的心率体温监测报警系统(包括程序、仿真、原理图、流程图)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机 ds18B20读取温度, 设置初始心率65 设置温度阈值38 心率阈值60 100 如果超过阈值,蜂鸣器报警,led灯亮 二、硬件资源 基于KEIL5编写C代码&#xf…

栈的操作:进栈,出栈,读栈顶元素

代码&#xff1a; #include<iostream> using namespace std; template<class T> class sq_Stack {private:int mm;int top;T *s;public:sq_Stack(int);void prt_sq_Stack();int flag_sq_Stack();void ins_sq_Stack(T);T del_sq_Stack();T read_sq_Stack(); }; tem…

高等代数笔记(2)————(弱/强)数学归纳法

数学归纳法的引入情景其实很简单&#xff0c;就是多米诺骨牌。 推倒所有多米诺骨牌的关键就是推倒第一块&#xff0c;以及确保第一块倒下后会带动第二块&#xff0c;第二块带动第三块&#xff0c;以此类推&#xff0c;也就是可以递推。由此我们可以归纳出所有的多米诺骨牌都可…

开箱元宇宙| 探索 Great Entertainment Group 如何利用 Web3 和数字创新重新定义活动体验

有没有想过 Web3 等尖端技术是如何改变娱乐行业的&#xff1f;在本期「开箱元宇宙」系列中&#xff0c;我们与 Great Entertainment Group (GEG) 的 Web3 顾问 Rob Lacey 深度访谈&#xff0c;探讨这家充满活力的公司如何在其活动中开拓数字创新。 与我们一起揭示 GEG 如何将 …

力扣 LCR 020 回文子串 -Python

题目链接&#xff1a;LCR 020. 回文子串 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给定一个字符串 s &#xff0c;请计算这个字符串中有多少个回文子字符串。 具有不同开始位置或结束位置的子串&#xff0c;即使是由相同的字符组成&#xff0c;也会被视…

python全栈学习记录(十七)logging、json与pickle、time与datatime、random

logging、json与pickle、time与datatime、random 文章目录 logging、json与pickle、time与datatime、random一、logging二.json与pickle三.time与datatime四.random 一、logging logging模块用来记录日志信息。 import logging # 进行基本的日志配置 logging.basicConfig( fi…

pycharm安装教程,超详细

引言 PyCharm官网提供了两个版本&#xff0c;第一个版本是Professional&#xff08;专业版本&#xff09;&#xff0c;这个版本功能更加强大&#xff0c;主要是为Python和web开发者而准备&#xff0c;是需要付费的。第二个版本是社区版&#xff08;Community&#xff09;&…

Qanything 2 0源码解析系列4 图片解析逻辑

Qanything 2.0源码解析系列4: 图片解析逻辑 文章转载自&#xff1a;https://www.feifeixu.top/article/8bb8401b-9689-453f-ab86-e3ecae414e12 &#x1f600; 前言&#xff1a; 这篇文章介绍Qanything针对图片类型文件的处理逻辑 qanything_kernel/core/retriever/general_doc…

面向对象 vs 面向过程

Java 和 C 语言的区别&#xff1a;面向对象 vs 面向过程 在编程世界中&#xff0c;不同的编程语言承载着不同的编程范式。C 语言作为一门经典的面向过程编程语言&#xff0c;注重函数的调用和操作&#xff1b;而Java则是典型的面向对象编程语言&#xff0c;重视对象与类的设计…

【LLM多模态】Animatediff文生视频大模型

note AnimateDiff框架&#xff1a;核心是一个可插拔的运动模块&#xff0c;它可以从真实世界视频中学习通用的运动先验&#xff0c;并与任何基于相同基础T2I的个性化模型集成&#xff0c;以生成动画。训练策略&#xff1a;AnimateDiff的训练包括三个阶段&#xff1a; 领域适配…

揭秘!高校如何逆袭,在算法与科技竞技场中脱颖而出?

目录 揭秘!高校如何逆袭,在算法与科技竞技场中脱颖而出? 一、算法秘境:深度挖掘,教学相长 二、跨界融合:场景为王,合作共赢 企业和高校之间在:场景,算法,数据,算力的优势,高校优势不明显,仅仅在算法方面存在一些优势但并不明显。高校怎样做 揭秘!高校如何逆袭…

初始docker以及docker的基本使用!!!

文章目录 虚拟化技术Docker/podman 命令通用命令查看docker 当前版本管理docker运行 镜像操作[image]列出本地所有镜像拉取镜像删除镜像把docker中的镜像打包成文件把镜像文件加载到docker中上传镜像 容器操作[container]创建容器docker run的参数选项列出所有容器启动容器停止…

【Mysql】为modified_time和created_time设置默认值

建立表SQL&#xff1a; CREATE TABLE your_table_name (id int(11) NOT NULL AUTO_INCREMENT,/* 其他字段 */created_time datetime DEFAULT CURRENT_TIMESTAMP COMMENT 创建日期,modified_time datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 修改…

使用Docker一键部署Blossom笔记软件

Blossom 是一个需要私有部署的笔记软件,虽然本身定位是一个云端软件,但你仍然可以在本地部署,数据和图片都将保存在你的设备,不依赖任何的图床或者对象存储。 客户端:支持 Windows 端和 ARM 架构的 Mac 端,以及作为网页端部署。移动端:响应式网页移动端,主要为移动端设…