当前位置: 首页 > news >正文

Python量化交易策略

策略详情
按照1分k线图;跳过9:30点1分k线图不计算
买入;监控市面的可转债;当某1分涨幅大于x涨幅,一直重复x次,选择买入,符合x设置的条件只选择成交额最大的可转债买入(x要自定义)
例如;9:36分涨幅大于等于0.1;一直重复了2次;这2次的每1分都大于等于0.1;那么应该9:38分01秒买入

卖出方法条件1;当买入价格盈亏x%,选择自动卖出;(x要自定义)

卖出方法条件2;当某1分跌幅大于x跌幅,一直重复x次,选择卖出(x要自定义)、
例如;9:36分跌幅大于等于-0.1;一直重复了2次;这2次的每1分都大于等于-0.1;那么应该9:38分01秒卖出
(卖出符合这个2个条件任意一条都可以自动卖出)

1;可以设置每天用多少x万元交易
2;能可以设置1天买卖x次,超过次数停止工作;
3;能设置账户最大涨幅或者最大跌幅,超过这个最大涨幅或者最大跌幅,如果有持仓可转债立即卖出,停止工作;
4;买卖有选项,可以选择 对方最优价格 和 本方最优价格

# encoding:gbk
# coding:gbk
''''''
# coding:gbkimport datetime
import pandas as pd
import numpy as np
import talib
import timedef init(ContextInfo):ContextInfo.trade_code_list = ['113595.SH', '127098.SZ', '123224.SZ', '128041.SZ', '127097.SZ', '110044.SH', '123235.SZ', '123054.SZ', '128085.SZ', '123167.SZ', '113627.SH', '123118.SZ', '113044.SH', '127101.SZ', '123207.SZ', '110059.SH', '113052.SH', '127096.SZ', '110061.SH', '127081.SZ']ContextInfo.set_universe(ContextInfo.trade_code_list)ContextInfo.accID = '6000000058'#'620000155051'ContextInfo.buy = TrueContextInfo.capital = 100000ContextInfo.sell = False# 自定义设置x秒、涨跌幅和重复次数ContextInfo.minutes_gain=1#买入间隔分钟ContextInfo.minutes_loss=1#卖出间隔分钟数#ContextInfo.x_seconds_gain = 60#间隔秒数#ContextInfo.x_seconds_loss = 60#间隔秒数ContextInfo.increase_percent_gain = 1#条件涨幅 >=ContextInfo.increase_percent_loss = -1#条件跌幅<=ContextInfo.repeat_times_gain = 1#买入重复次数ContextInfo.repeat_times_loss = 1#卖出重复次数ContextInfo.df = []ContextInfo.his_DF = []# 最大交易次数、最大涨幅和最大跌幅ContextInfo.trades_loss = 0  # 卖出次数ContextInfo.trades_gain  = 0  # 买入次数ContextInfo.max_trades_loss = 10  # 卖出最大次数ContextInfo.max_trades_gain = 10  # 买入最大次数ContextInfo.max_daily_gain = 5  # 最大涨幅 到了最大涨幅,最大跌幅自动卖出ContextInfo.max_daily_loss = -5  # 最大跌幅ContextInfo.one_profit_limit=3 #单次盈利超过这里2是2%ContextInfo.one_loss_limit=-1#单次亏损限制自动 则卖出持仓ContextInfo.Today_profit_limit=10 #当日盈利限制超过停止交易ContextInfo.Today_loss_limit=-10 #当日亏损限制超过 则卖出持仓,当日停止交易ContextInfo.Date=''ContextInfo.Date_Time={}#{'2024':ContextInfo.Today_profit_and_loss}ContextInfo.Today_profit_and_loss=0 #当日盈亏ContextInfo.status=0 #持仓状态0为空仓,1为满仓ContextInfo.status_code=0 #持仓代码ContextInfo.account_price=100000#可用资金 调整到x元持仓 卖出是调整到0元ContextInfo.stop_status=0#初始化清空账户停止交易状态 ContextInfo.type_gain='MARKET'ContextInfo.type_loss='MARKET'#LATEST:最新 FIX:指定 HANG:挂单 COMPETE:对手 MARKET:市价 SALE5, SALE4, SALE3, ‘SALE2’, ‘SALE1’:卖5-1价‘BUY1’, ‘BUY2’, ‘BUY3’, ‘BUY4’, ‘BUY5’:买1-5价
def zhangfu(list1):a=((list1[1] - list1[0])/list1[0])*100return a
#bond(ContextInfo, ContextInfo.x_seconds_gain,ContextInfo.x_seconds_loss, ContextInfo.increase_percent_gain,ContextInfo.increase_percent_loss, ContextInfo.repeat_times_gain,ContextInfo.repeat_times_loss,time1)
def bond(ContextInfo, percentage_gain,percentage_loss, num_trades_gain,num_trades_loss,formatted_time):if ContextInfo.status==0:#空仓try:num_trades=num_trades_gainif ContextInfo.Today_profit_and_loss>ContextInfo.Today_profit_limit:print('当日账户涨幅{}超过(大于)限制的最大涨幅{}今日停止交易'.format(ContextInfo.Today_profit_and_loss,ContextInfo.Today_profit_limit))return [2, list(ContextInfo.df['trade_code'])[0]]if list(ContextInfo.df['买入卖出条件'])[0]==1:new_price = list(ContextInfo.df['close'])[0]return [1, list(ContextInfo.df['trade_code'])[0],new_price]#买入except Exception as e:print('异常')print(ContextInfo.df)print(e)else:num_trades=num_trades_loss#time_list=Transform_time_21(formatted_time, num_trades, seconds)if ContextInfo.Today_profit_and_loss<ContextInfo.Today_loss_limit:print('当日账户跌幅{}超过(小于)限制的最大跌幅{} 持仓立即卖出,且今日停止交易'.format(ContextInfo.Today_profit_and_loss,ContextInfo.Today_loss_limit))new_price = list(ContextInfo.df['close'])[0]# get_current_price2(ContextInfo, list(ContextInfo.df['trade_code'])[0])return [-2, list(ContextInfo.df['trade_code'])[0],new_price]#loss_DF=status_df(ContextInfo,ContextInfo.minutes_loss)df_loss=loss_DF[loss_DF['名称']==ContextInfo.status_code]if ContextInfo.one_loss>=ContextInfo.one_profit_limit:print("当前持仓盈利{}超过单笔限制{}卖出当前持仓".format(ContextInfo.one_loss,ContextInfo.one_profit_limit))new_price = list(df_loss['close'])[0]return [-1, list(ContextInfo.df['trade_code'])[0],new_price]#卖出        if ContextInfo.one_loss<=ContextInfo.one_loss_limit:print("当前持仓亏损{}超过单笔限制{}卖出当前持仓".format(ContextInfo.one_loss,ContextInfo.one_loss_limit))new_price = list(df_loss['close'])[0]return [-1, list(ContextInfo.df['trade_code'])[0],new_price]#卖出if list(df_loss['买入卖出条件'])[0]==-1:new_price = list(df_loss['close'])[0]return [-1, list(ContextInfo.df['trade_code'])[0],new_price]#卖出else:print('当前不符合卖出条件无法卖出')return [0, list(ContextInfo.df['trade_code'])[0]]#持有def execute_buy(ContextInfo, stockcode,price):# 执行买入操作的逻辑print("全仓买入{}".format(stockcode))print(ContextInfo.df)ContextInfo.buy = FalseContextInfo.sell = True# 列表中股票分别下单买入10手order_target_percent 1.0  order_target_value  ContextInfo.type_gain  order_value(stockcode,ContextInfo.account_price, 'fix', price, ContextInfo, ContextInfo.accID)ContextInfo.trades_gain = ContextInfo.trades_gain + 1ContextInfo.status=1def execute_sell(ContextInfo, stockcode):#price# 执行卖出操作的逻辑print("全仓卖出{}".format(stockcode))print(ContextInfo.df)ContextInfo.buy = TrueContextInfo.sell = False# 列表中股票分别下单 order_target_percent ContextInfo.account_price ContextInfo.type_loss, #print('按照指定价{}卖出可转债{}'.format(price,stockcode))print('按照市场价卖出可转债{}'.format(stockcode))#order_target_value(stockcode, 0,'fix',price, ContextInfo, ContextInfo.accID)  # 'MARKET':市单价 'COMPETE':对手order_target_value(stockcode, 0,ContextInfo.type_loss, ContextInfo, ContextInfo.accID)  # 'MARKET':市单价 'COMPETE':对手ContextInfo.trades_loss = ContextInfo.trades_loss + 1ContextInfo.status=0import datetimedef Transform_time(timestamp):# 将13位时间戳转换为datetime对象dt = datetime.datetime.fromtimestamp(int(timestamp) / 1000)  # 需要将13位时间戳除以1000得到以秒为单位的时间戳# 将datetime对象格式化为可读时间格式formatted_time = dt.strftime('%Y-%m-%d %H:%M:%S')return formatted_timedef status_df(ContextInfo,x):x=x+1hisdict = ContextInfo.get_history_data(x, '1m', 'close')#,skip_paused=True)data_dict=[]for k, v in hisdict.items():if len(v) > 1:v_dict={'名称':k}v_num=len(v)-1signal_list=[]for i in range(v_num):zhangfu_value=zhangfu([v[i],v[i+1]])v_dict['涨幅'+str(i)]=zhangfu_valueif zhangfu_value<=ContextInfo.increase_percent_loss:signal_list.append(-1)elif zhangfu_value>=ContextInfo.increase_percent_gain:signal_list.append(1)else:signal_list.append(0)if list(set(signal_list)) == [-1]:v_dict['买入卖出条件']=-1elif list(set(signal_list)) == [1]:v_dict['买入卖出条件']=1else:v_dict['买入卖出条件']=0data_dict.append(v_dict)his_DF=pd.DataFrame(data_dict)df = ContextInfo.get_market_data(['amount','close'], stock_code=ContextInfo.get_universe(), skip_paused=True, period='1m',dividend_type='front', count=-1)df=df.reset_index()#.index=list(range(len(df)))his_DF['amount']=df['amount']his_DF['close']=df['close']#print(his_DF)return his_DF
def handlebar(ContextInfo):  # ['lastClose', 'close','amount']index = ContextInfo.barpostime0= ContextInfo.get_bar_timetag(index)time1 = Transform_time(time0)start_930=datetime.datetime.strptime('09:31:00', "%H:%M:%S")delta=datetime.timedelta(seconds=ContextInfo.minutes_gain*60*ContextInfo.repeat_times_gain)start_9x=start_930+deltaif datetime.datetime.strptime(time1.split(' ')[1], "%H:%M:%S")<=start_9x:print('当前时间{}小于等于{}不进行交易'.format(time1.split(' ')[1],str(start_9x).split(' ')[1]))returnelse:print('当前时间{}为正常交易时间'.format(time1))if ContextInfo.Date!=time1.split(' ')[0]:ContextInfo.Date=time1.split(' ')[0]ContextInfo.trades_gain=0#新的日期买入次数归零ContextInfo.trades_loss=0#新的日期买出次数归零ContextInfo.Today_profit_and_loss=0#新的日期清空账户涨跌幅ContextInfo.stop_status==0#新的日期清空账户停止交易状态print("新的交易日!!{}".format(ContextInfo.Date))else:index = ContextInfo.barposlist_1=[]#historysumsprint('历史持仓为')result_historysums_records=get_result_records('historysums', index, ContextInfo)for i in result_historysums_records:list_1.append({'交易代码':i.market+'.'+i.stockcode,#'交易日期':Transform_time(i.trade_date),'持仓盈亏':i.profit,#'盈利占比权重':i.benefit_weight,'交易次数':i.buy_sell_times,'持仓成本':i.trade_price,'最新价':i.current_price,'仓位数量':i.position,#'仓位金额':i.position*i.trade_price,'最新价':i.current_price,})#:number,最新价,持仓中用这个价if ContextInfo.stop_status==1:print('当日已经停止交易')returnContextInfo.Date_Time[ContextInfo.Date]=[list_1]print("历史交易明细为")print(ContextInfo.Date_Time)ContextInfo.Today_profit_and_loss=sum([i['持仓盈亏'] for i in list_1])/ContextInfo.capitalContextInfo.Date_Time[ContextInfo.Date]=ContextInfo.Today_profit_and_loss#{'2024':ContextInfo.Today_profit_and_loss}print("账户今日涨跌幅为{}".format(ContextInfo.Today_profit_and_loss))print("全部日期涨跌幅为")print(ContextInfo.Date_Time)print("账户当前时刻买入次数{}".format(ContextInfo.trades_gain))print("账户当前时刻卖出次数{}".format(ContextInfo.trades_loss))#ContextInfo.Today_profit_and_loss#print("最大涨幅为{}".format(ContextInfo.max_daily_gain))if ContextInfo.Today_profit_and_loss > ContextInfo.Today_profit_limit:print('因为涨幅{}超出当日最大涨幅{}停止交易'.format(ContextInfo.Today_profit_and_loss,ContextInfo.Today_profit_limit))return  # 涨跌幅超过设定值, 止操作elif ContextInfo.Today_profit_and_loss < ContextInfo.Today_loss_limit:print('因为跌幅{}超出当日最大跌幅{}停止交易'.format(ContextInfo.Today_profit_and_loss,ContextInfo.Today_loss_limit))return  # 涨跌幅超过设定值,停止操作his_DF=status_df(ContextInfo,ContextInfo.minutes_gain)if ContextInfo.trades_gain <= ContextInfo.max_trades_gain and ContextInfo.trades_loss <= ContextInfo.max_trades_loss:index = ContextInfo.barposresult_holdings_records=get_result_records('holdings', index, ContextInfo)#当下持仓if result_holdings_records==[]:print("当前没有持仓")ContextInfo.status=0end_his_DF=his_DF[his_DF['买入卖出条件']==1]if len(end_his_DF)==0:print("当前时间分钟{}没有满足买入条件的可转债".format(time1))ContextInfo.df=[]returnelse:end_his_DF['trade_code']=end_his_DF['名称']ContextInfo.df = end_his_DF.sort_values(by='amount', ascending=False)  # 必然是成交额最大的可转债print('当前股票池状态:')print(ContextInfo.df)else:result_records=result_holdings_recordsi=result_records[0]print('当前持仓为')print({'交易代码':i.market+'.'+i.stockcode,#'交易日期':Transform_time(i.trade_date),'持仓盈亏':i.profit,#'盈利占比权重':i.benefit_weight,'交易次数':i.buy_sell_times,'持仓成本':i.trade_price,'最新价':i.current_price,'仓位数量':i.position,#'仓位金额':i.position*i.trade_price,'最新价':i.current_price,})one_loss=((i.current_price-i.trade_price)/i.trade_price)*100print("当前持仓盈亏{}".format(one_loss))ContextInfo.one_loss=one_lossif len(result_records)!=1:print("策略超过持仓数量限制1,持有{}支可转债".format(len(result_records)))status_code=result_records[0].stockcode+'.'+result_records[0].marketContextInfo.status_code=status_codeif i.position*i.trade_price>ContextInfo.account_price:print('持仓总额{}超过设定的限制{},停止策略'.format(i.position*i.trade_price,ContextInfo.account_price))returnprint("时间{}持仓可转债{}金额{}".format(time1,status_code,i.position*i.trade_price))#enddict={i.trade_date:i.profit for i in result_historysums_records}#print(enddict)ContextInfo.status=1# 交易策略# 买入条件:假设一支可转债在9点30分20秒涨跌幅为8%,过了20秒也就是9点30分40秒,涨跌幅为9%,比之前20秒大于1%,一直重复x次都符合这设定,只考虑  成交额  是第一的  可转债 进行买入# 卖出条件:假设一支可转债在9点30分20秒涨跌幅为8%,过了20秒也就是9点30分40秒,涨跌幅为7%,比之前20秒小于1%,一直重复x次都符合这设定,进行卖出condition = bond(ContextInfo, ContextInfo.increase_percent_gain,ContextInfo.increase_percent_loss, ContextInfo.repeat_times_gain,ContextInfo.repeat_times_loss,time1)# 增加模拟资金;能设置1天买卖操作次数,超过次数停止工作;能设置1天涨幅大于x%或者跌幅大于x%停止操作#print(condition)if condition[0] == 1:if ContextInfo.status==0:print("时间{}以{}价格买入可转债{}".format(time1,condition[2],condition[1]))execute_buy(ContextInfo, condition[1], condition[2])#ContextInfo.status==1elif condition[0] == -1:if ContextInfo.status==1:#if ContextInfo.status_code!=0:print("时间{}以{}价格卖出可转债{}".format(time1,condition[2],ContextInfo.status_code))execute_sell(ContextInfo,ContextInfo.status_code)#condition[1]#elif condition[0] == 2:ContextInfo.stop_status=1elif condition[0] == -2:if ContextInfo.status==1:#if ContextInfo.status_code!=0:print("时间{}今日最后一次卖出可转债{}".format(time1,ContextInfo.status_code))execute_sell(ContextInfo,ContextInfo.status_code, condition[2])#condition[1]#ContextInfo.stop_status=1else:pass#print('持有')else:print('因为超出当日最大交易次数停止交易')return

相关文章:

Python量化交易策略

策略详情 按照1分k线图&#xff1b;跳过9&#xff1a;30点1分k线图不计算 买入&#xff1b;监控市面的可转债&#xff1b;当某1分涨幅大于x涨幅&#xff0c;一直重复x次&#xff0c;选择买入&#xff0c;符合x设置的条件只选择成交额最大的可转债买入&#xff08;x要自定义&…...

为什么我感觉 C 语言在 Linux 下执行效率比 Windows 快得多?

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「Linux的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;Windows的终端或者叫控制台…...

算法导论 总结索引 | 第四部分 第十六章:贪心算法

1、求解最优化问题的算法 通常需要经过一系列的步骤&#xff0c;在每个步骤都面临多种选择。对于许多最优化问题&#xff0c;使用动态规划算法求最优解有些杀鸡用牛刀了&#xff0c;可以使用更简单、更高效的算法 贪心算法&#xff08;greedy algorithm&#xff09;就是这样的算…...

用“文心一言”写的文章,看看AI写得怎么样?

​零售连锁店的“支付结算”业务设计 在数字化浪潮的推动下&#xff0c;连锁店零售支付结算的设计愈发重要。一个优秀的支付结算设计不仅能够提升用户体验&#xff0c;还能增强品牌竞争力&#xff0c;进而促进销售增长。 本文将围绕一个具体的连锁店零售支付结算案例&#xf…...

企业消费采购成本和员工体验如何实现“鱼和熊掌“的兼得?

有企业说企业消费采购成本和员工体验的关系好比是“鱼和熊掌”&#xff0c;无法兼得&#xff1f; 要想控制好成本就一定要加强管控&#xff0c;但是加强管控以后&#xff0c;就会很难让员工获得满意的体验度。如果不加以管控&#xff0c;员工自由度增加了&#xff0c;往往就很难…...

发表EI论文相当于SCI几区?

EI&#xff08;工程索引&#xff09;本身并不进行分区&#xff0c;它是一个收录工程领域高质量文献的数据库&#xff0c;与SCI&#xff08;科学引文索引&#xff09;的分区制度不同。然而&#xff0c;在非正式的学术评价中&#xff0c;有时人们会将EI与SCI的分区进行比较。 虽…...

STFT短时傅里叶变换MTLAB简析

代码&#xff1a; 解释&#xff1a; 如果信号x有Nx个时间样本&#xff0c;短时傅里叶变换的结果矩阵s有k列&#xff1b; k的计算方式如图所示&#xff0c;M是窗函数的长度&#xff0c;L是重叠长度。 此符号是向下取整符号。 短时傅里叶变换的结果矩阵s的行数与参数‘FFTLength’…...

海致科技实施实习生面试

一、面试内容 注&#xff1a;此次是电话面试 1.是XX先生吗 2.你是有考虑转实施的吗&#xff1f; 3.请讲一下你对项目部署实施的理解和掌握 4.用过数据库&#xff0c;会编写SQL语句吗&#xff1f; 5.讲一下SQL的常用关键字 6.了解SQL中的函数吗&#xff1f;谈谈函数 7.多…...

论文阅读之旋转目标检测ARC:《Adaptive Rotated Convolution for Rotated Object Detection》

论文link&#xff1a;link code&#xff1a;code ARC是一个改进的backbone&#xff0c;相比于ResNet&#xff0c;最后的几层有一些改变。 Introduction ARC自适应地旋转以调整每个输入的条件参数&#xff0c;其中旋转角度由路由函数以数据相关的方式预测。此外&#xff0c;还采…...

面向对象(Java)

构造方法只能在对象实例化的时候调用 this可以作为方法参数&#xff0c;表示调用方法的当前对象 this可以作为方法返回值&#xff0c;表示返回当前对象 封装 通过方法访问数据&#xff0c;隐藏类的实现细节 static&#xff1a;类对象共享&#xff0c;类加载时产生&#xff0c;…...

I/O多路复用

参考面试官&#xff1a;简单说一下阻塞IO、非阻塞IO、IO复用的区别 &#xff1f;_unix环境编程 阻塞io和非阻塞io-CSDN博客 同步阻塞(BIO) BIO 以流的方式处理数据 应用程序发起一个系统调用&#xff08;recvform&#xff09;&#xff0c;这个时候应用程序会一直阻塞下去&am…...

线性代数基础概念:向量空间

目录 线性代数基础概念&#xff1a;向量空间 1. 向量空间的定义 2. 向量空间的性质 3. 基底和维数 4. 子空间 5. 向量空间的例子 总结 线性代数基础概念&#xff1a;向量空间 向量空间是线性代数中最基本的概念之一&#xff0c;它为我们提供了一个抽象的框架&#xff0c…...

php 抓取淘宝商品评论数据 json

要抓取淘宝商品评论数据&#xff0c;你可以使用PHP的cURL库来发送HTTP请求并获取JSON格式的数据。 API接入流程&#xff1a;需要开放平台或者是封装接口注册账号&#xff0c;并申请相应的API使用权限&#xff0c;以获取必要的密钥和接口文档。获取接口使用权限&#xff1a;接入…...

Java 7新特性深度解析:提升效率与功能

文章目录 Java 7新特性深度解析&#xff1a;提升效率与功能一、Switch中添加对String类型的支持二、数字字面量的改进三、异常处理&#xff08;捕获多个异常&#xff09;四、增强泛型推断五、NIO2.0&#xff08;AIO&#xff09;新IO的支持六、SR292与InvokeDynamic七、Path接口…...

RHEL9找不到/var/log/dmesg日志文件问题

问题描述 在Rocky Linux 9 服务器上查看启动日志&#xff0c;发现没有/var/log/dmesg文件。 dmesg是什么&#xff1f; dmesg(diagnostic messages)用于打印kernel ring buffer的所有消息。 kernel会将开机信息存储在ring buffer中&#xff0c;如果开机时来不及查看启动信息&…...

是什么让以太坊从众多公链中脱颖而出

以太坊从众多公链中脱颖而出&#xff0c;成为区块链和加密货币领域的一个重要玩家&#xff0c;主要是由于以下几个关键因素&#xff1a; 智能合约&#xff1a; 以太坊是第一个广泛实施智能合约的区块链平台&#xff0c;智能合约允许在区块链上自动执行合同条款&#xff0c;无需…...

HarmonyOS--路由管理--组件导航 (Navigation)

文档中心 什么是组件导航 (Navigation) &#xff1f; 1、Navigation是路由容器组件&#xff0c;一般作为首页的根容器&#xff0c;包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式 2、Navigation组件适用于模块内和跨模块的路由切换&#xff0c;一次开发&#xff0…...

【Linux 命令】文件比较 diff

diff 命令是 Unix 和类 Unix 系统&#xff08;如 Linux 和 macOS&#xff09;中用于比较文件内容差异的一个非常有用的命令行工具。它可以逐行比较两个文件的内容&#xff0c;并输出它们之间的差异。这些差异通常以行为单位显示&#xff0c;并且会标记出哪些行是唯一的、添加的…...

猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0

猫头虎分享[可灵AI」官方推荐的驯服指南-V1.0 猫头虎是谁&#xff1f; 大家好&#xff0c;我是 猫头虎&#xff0c;别名猫头虎博主&#xff0c;擅长的技术领域包括云原生、前端、后端、运维和AI。我的博客主要分享技术教程、bug解决思路、开发工具教程、前沿科技资讯、产品评…...

你的硬盘知道的太多:你以为你的秘密真的被删除了吗?

某一天你收到了朋友发给你的一个秘密文件&#xff0c;在看完之后&#xff0c;为了不被别人发现&#xff0c;你决定将文件毁尸灭迹&#xff01; 你选中文件名称 / 右键 / 删除&#xff0c;好了&#xff0c;文件已经消失了。但你是懂电脑的&#xff0c;知道文件此时还在回收站里面…...

虚拟机的网络配置

&#x1f4d1;打牌 &#xff1a; da pai ge的个人主页 &#x1f324;️个人专栏 &#xff1a; da pai ge的博客专栏 ☁️ 每一步都向着梦想靠近&#xff0c;坚持就是胜利的序曲 一 …...

ONLYOFFICE8.1版本桌面编辑器简单测评

ONLYOFFICE官网链接&#xff1a;在线PDF查看器和转换器 | ONLYOFFICE ONLYOFFICE介绍&#xff1a;https://www.onlyoffice.com/zh/office-suite.aspx OnlyOffice 是一款免费且开源的 Office 协作办公套件&#xff0c;支持桌面端和移动端等多平台&#xff0c;由一家领先的 IT 公…...

PDF内存如何变小,PDF内存压缩,PDF内存变小怎么调整

在数字化时代&#xff0c;pdf已成为工作、学习和生活中不可或缺的文件格式。它以其跨平台兼容性和安全性受到广大用户的喜爱。然而&#xff0c;随着pdf文件中嵌入的图片、图形和文本内容的增多&#xff0c;文件大小往往会变得相当可观&#xff0c;给文件的传输和存储带来一定的…...

深⼊理解MySQL Innodb存储引擎的缓冲池、事务、索引底层工作原理,掌握 MySQL 主从同步,读写分离技术以及集群的搭建,具备分库分表,SQL调优经验

深入理解MySQL的InnoDB存储引擎是数据库管理员和开发人员的重要技能。以下是对InnoDB存储引擎的缓冲池、事务、索引以及主从同步、读写分离技术和集群搭建的详细原理介绍&#xff1a; ### InnoDB存储引擎 1. **缓冲池(Buffer Pool)**&#xff1a; - 缓冲池是InnoDB存储引擎…...

《HelloGitHub》第 99 期

兴趣是最好的老师&#xff0c;HelloGitHub 让你对编程感兴趣&#xff01; 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等&#xff0c;涵盖多种编程语言 Python、…...

mysql 将一个列按逗号分割为多列

在MySQL中&#xff0c;将一个列按逗号分割为多列通常需要使用字符串函数&#xff0c;如SUBSTRING_INDEX()&#xff0c;配合UNION ALL或CROSS JOIN等操作来实现。 假设有一个表my_table&#xff0c;它有一个列tags&#xff0c;其中存储了逗号分隔的标签值&#xff0c;如下所示&…...

Vue 3中 <script setup> 与生命周期钩子函数的详细解析

Vue 3中 <script setup> 与生命周期钩子函数的详细解析 Vue 3 引入了 <script setup> 语法糖&#xff0c;这是一种简化和集成组件逻辑的新方式。尽管 <script setup> 简化了组件的编写&#xff0c;但仍然可以利用 Vue 提供的生命周期钩子函数来管理组件的生…...

一篇文章入门主成分分析PCA

文章目录 基本概念事件随机变量独立同分布离散型随机变量伯努利分布&#xff08;两点分布&#xff09;二项分布几何分布泊松分布 连续型随机变量正态分布 期望方差标准化协方差相关系数线性组合特征值和特征向量特征值分解对称矩阵的特征值分解 齐次线性方程组单位向量基向量矩…...

Android系统为什么lmkd杀到adj 100就代表有低内存?

在Android系统中&#xff0c;lmkd&#xff08;Low Memory Killer Daemon&#xff0c;低内存终止守护进程&#xff09;负责监控系统的内存状态&#xff0c;并在内存压力较高时通过终止不必要的进程来释放内存&#xff0c;以维持系统的稳定运行。关于lmkd为何在杀到adj&#xff0…...

d嘤嘤不想求异或喵(牛客周赛49)

题意&#xff1a; 嘤嘤有两个整数 l,r&#xff0c;她想知道区间 [l,r] 所有整数的异或和是多少. 分析&#xff1a; 样例1只有一个数输出1 样例2 1^201^10113 样例3 1^2^301^10^1111^11000 #include<bits/stdc.h> using namespace std; typedef long long ll; ll f(l…...

java反射-动态调用方法

通过字符串动态创建对象&#xff0c;通过字符串动态使用对象方法 package com.hmdp.service.动态调用方法;import java.lang.reflect.Method;public class Main {public static void main(String[] args) throws Exception {String name "javax.swing.JFrame";Clas…...

ThreadLocal作用

ThreadLocal作用(线程本地存储) ThreadLocal&#xff0c;很多地方叫做线程本地变量&#xff0c;也有些地方叫做线程本地存储&#xff0c;ThreadLocal的作用是提供线程内的局部变量&#xff0c;这种变量在线程的生命周期内起作用&#xff0c;减少同一个线程内多个函数或者组件之…...

Python基础入门知识

目录 引言 简要介绍Python语言 为什么要学习Python Python的应用领域 Python安装和环境配置 Python的下载和安装(Windows, macOS, Linux) 配置Python环境变量 安装和使用IDE(如PyCharm, VS Code) Python基本语法 注释 变量和数据类型(数字,字符串,列表,元组,字典,…...

uniapp——据用户角色显示或隐藏部分功能权限。

v-if"user.state.agent_level!business || (user.state.agent_levelbusiness && item.value ! 3 && item.value ! 4)"...

JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测

JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测 目录 JCR一区级 | Matlab实现BO-Transformer-LSTM多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现BO-Transformer-LSTM多变量回归预测&#xff0c;贝叶斯优化Transformer结合LSTM长…...

软件开发环境-系统架构师(二十一)

1、对计算机评价的主要性能指标有时钟频率、&#xff08;&#xff09;、运算精度和内存容量等。 对数据库管理系统评价的主要性能指标有&#xff08;&#xff09;、数据库所允许索引数量和最大并发事务处理能力。 问题1 A丢包率 B端口吞吐量 C可移植性 D数据处理速率 问题…...

AI与大模型工程师证书研修班报名啦!

人工智能大模型是指拥有超大规模参数&#xff08;通常在十亿个以上&#xff09;、超强计算资源的机器学习模型&#xff0c;能够处理海量数据&#xff0c;完成各种复杂任务&#xff0c;如自然语言处理、图像识别等。计算机硬件性能不断提升&#xff0c;深度学习算法快速优化&…...

ctfshow-web入门-命令执行(web56、web57、web58)

目录 1、web56 2、web57 3、web58 1、web56 命令执行&#xff0c;需要严格的过滤 新增过滤数字&#xff0c;只能采用上一题临时文件上传的方法&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…...

controller不同的后端路径对应vue前端传递数据发送请求的方式,vue请求参数 param 与data 如何对应后端参数

目录 案例一&#xff1a; 为什么使用post发送请求&#xff0c;参数依旧会被拼接带url上呢&#xff1f;这应该就是param 与data传参的区别。即param传参数参数会被拼接到url后&#xff0c;data会以请求体传递 补充&#xff1a;后端controller 参数上如果没写任何注解&#xff0c…...

【FFmpeg】avcodec_send_frame函数

目录 1.avcodec_send_frame1.1 将输入的frame存入内部buffer&#xff08;encode_send_frame_internal&#xff09;1.1.1 frame的引用函数&#xff08;av_frame_ref &#xff09;1.1.1.1 帧属性的拷贝&#xff08;frame_copy_props&#xff09;1.1.1.2 buffer的引用函数&#xf…...

python获取字符编码

在Python中&#xff0c;您可以使用内置的ord()函数获取单个字符的Unicode编码&#xff0c;使用encode()方法获取字符串的字节编码。 获取单个字符的Unicode编码: char a unicode_code ord(char) print(unicode_code) # 输出字符的Unicode编码 获取字符串的字节编码: tex…...

通过MATLAB控制TI毫米波雷达的工作状态之实时数据采集

前言 前一章博主介绍了如何基于MATLAB的各种前面板组件结合MATLAB代码来发送CFG指令控制毫米波雷达的工作状态,这一章节博主将介绍如何基于这些组件结合MATLAB代码来实现TI毫米波雷达数据的实时采集。目前大部分TI毫米波雷达的数据采集均是仅可以采集一段数据又或者利用DAC10…...

华为HCIP Datacom H12-821 卷21

1.单选题 以下关于PIM-SM中SPT切换的描述,错误的是哪一项? A、若所有组播流量都经过RP路由器,则RP路由器可能成为数据转发的瓶颈 B、SPT路径最短,转发性能更优 C、SPT 切换完成后,组播流量依然经过 ReT 树 D、RPT 树可能不是组播流量转发的最优路径 正确答案: C 解析…...

MySQL之应用层优化(二)

应用层优化 Web服务器问题 寻找最优并发度 每个Web服务器都有一个最佳并发度——就是说&#xff0c;让进程处理请求尽可能快&#xff0c;并且不超过系统负载的最优的并发连接数。这就是前面说的最大系统容量。进行一个简单的测量和建模&#xff0c;或者只是反复试验&#xf…...

Java源码解读之常量52429

文章目录 为什么有52429的常量呢&#xff1f;对于为什么选择52429?那么为什么不再选几位呢&#xff1f; 在JDK8源码中 java.lang.Integer有52429作为常量出现&#xff0c; 为什么有52429的常量呢&#xff1f; static void getChars(int i, int index, char[] buf) {int q, r;…...

“Photoshop AI插件:StartAI的全面使用攻略

随着人工智能技术的飞速发展&#xff0c;Photoshop作为设计师们不可或缺的工具&#xff0c;也在不断地融入AI技术&#xff0c;以提升设计效率和效果。在2024年&#xff0c;PSAI插件StartAI因其强大的功能和易用性&#xff0c;成为了Photoshop用户的得力帮手。下面来给大家详细介…...

入门Axure:快速掌握原型设计技能

2002 年&#xff0c;维克托和马丁在旧金山湾区的一家初创公司工作&#xff0c;发现自己一再被软件开发生命周期的限制所困扰&#xff0c;而且产品团队在编写规范之前很难评估他们的解决方案&#xff0c;开发人员经常不理解&#xff08;或不阅读&#xff09;给出的规范&#xff…...

Java中的序列化与反序列化详解

Java中的序列化与反序列化详解 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 什么是序列化与反序列化&#xff1f; 序列化&#xff08;Serialization&#…...

在鸿蒙开发中如何实现皮肤切换?

在鸿蒙开发中&#xff0c;实现主题皮肤切换可以通过以下步骤&#xff1a; 1. 创建不同的主题样式文件&#xff0c;例如theme_light.json和theme_dark.json。 2. 在应用程序的config.json文件中&#xff0c;引入这些主题样式文件。 3. 在应用程序的入口文件&#xff08;例如main…...

FlowUs新一代内容创作营销平台|FlowUs息流国产 好用 不限速

FlowUs 作为一个知识管理和协作平台&#xff0c;知识库功能可以被视为一个强大的学习工具&#xff01; 为什么FlowUs知识库可以成为学习利器呢&#xff1f;原因有以下几点 集中化知识存储&#xff1a;FlowUs允许我们将所有相关信息和资料集中在一个地方&#xff0c;便于访问和复…...

ORB 特征点提取

FAST关键点 选取像素p&#xff0c;假设它的亮度为Ip&#xff1b; . 设置一个阈值T&#xff08;比如Ip的20%&#xff09;&#xff1b; 以像素p为中心&#xff0c;选取半径为3的圆上的16个像素点&#xff1b; 假如选取的圆上&#xff0c;有连续的N个点的亮度大于IpT或小于…...

10.10记录

云轴-电话面试 python- 深拷贝和浅拷贝 copy.copy()&#xff1a;浅拷贝是创建一个新对象&#xff0c;但是新对象的元素是原对象的引用。也就是说&#xff0c;新对象和原对象共享同一块内存空间。当原对象的元素发生改变时&#xff0c;新对象的元素也会随之改变。 copy.deepco…...

使用LabVIEW报告生成工具包时报错97

问题详情&#xff1a; 在运行使用Excel/Word调用节点的程序时&#xff0c;收到错误97&#xff1a;LabVIEW&#xff1a;&#xff08;十六进制0x61&#xff09;输入中传递了一个空引用句柄或先前已删除的引用句柄。 当运行报告生成工具包中的一个示例程序时&#xff0c;收到错误…...

【C语言入门】初识C语言:掌握编程的基石

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C语言 “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;C语言入门 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀C语言入门 &#x1f4d2;1. 选择…...

dpkg-buildpackage小记

我们常常使用dpkg-buildpackage工具来编译代码并生成debian安装包。dpkg-buildpackage规定了相应的文件结构和制作流程。dpkg-buildpackage一个很强大有功能是能够自动检测如何编译相关代码&#xff0c;比如&#xff0c;它首先知道如何去调用相应的Makefile文件来编译源程序&am…...

优化Java框架以处理负载峰值

java 框架可通过以下优化措施处理负载峰值&#xff1a;启用分布式缓存&#xff1b;优化数据库连接池&#xff08;调整连接池大小&#xff09;&#xff1b;采用分片和复制&#xff08;分散数据库负载&#xff09;。实战中&#xff0c;某电子商务网站优化后响应时间减少 50%&…...

最新入门版车型,吉利星瑞龙腾版正式上市,售价9.97万元

近日,吉利官方宣布,旗下吉利星瑞龙腾版正式上市,新车共推出1款车型,官方指导价为9.97万元。新车依旧定位紧凑型车,将可选专属车身颜色,动力上采用1.5T发动机。新车作为星瑞系列最新的入门版车型推出,相比此前的入门版车型扶摇版10.87万元,售价下探了9000元,提升了新车…...

【Linux 网络编程】网络的基础知识详解!

文章目录 1. 计算机网络背景2. 认识 "协议"3. 协议分层 1. 计算机网络背景 网络互联: 多台计算机连接在一起, 完成数据共享; &#x1f34e;局域网&#xff08;LAN----Local Area Network&#xff09;: 计算机数量更多了, 通过交换机和路由器连接。 &#x1f34e; 广…...

【全开源】知识库文档系统源码(ThinkPHP+FastAdmin)

知识库文档系统源码&#xff1a;构建智慧知识库的基石 引言 在当今信息爆炸的时代&#xff0c;知识的有效管理和利用对于企业和个人来说至关重要。知识库文档系统源码正是为了满足这一需求而诞生的&#xff0c;它提供了一个高效、便捷的平台&#xff0c;帮助用户构建、管理、…...

电脑录屏怎么录?7个电脑录屏软件免费版强势来袭,赶快收藏!

电脑录屏怎么录&#xff1f;相信很多小伙伴们都不知道怎么在Windows电脑上录屏吧&#xff1f;在当今社会&#xff0c;随着互联网的快速发展&#xff0c;越来越多的小伙伴们开始通过制作视频内容来分享知识、展示技能或者记录生活。电脑录屏成为了一种简单高效的方式&#xff0c…...

python——__future__模块

__future__模块是Python的一个特殊内建模块&#xff0c;它提供了一种方式来让程序员在当前版本的Python中使用未来版本的语言特性&#xff0c;从而帮助代码实现向前兼容。这意味着&#xff0c;即使你正在使用的是旧版本的Python&#xff0c;也可以通过导入__future__模块中的某…...

ROS基础学习-话题通信机制研究

研究ROS通信机制 研究ROS通信机制 0.前言1.话题通信1.1 理论模型1.2 话题通讯的基本操作1.2.1 C++1.2.2 Python中使用自己的虚拟环境包1.2.2.1 参考11.2.2.2 参考21.2.2.3 /usr/bin/env:“python”:没有那个文件或目录1.2.3 Python1.2.2.1 发布方1.2.2.2 订阅方1.2.2.3 添加可执…...