量化交易策略:经典量化交易策略大汇总(内附开通方法)

01、什么是量化交易?

量化交易是一种依赖于先进的数学模型和计算机技术的交易方式,旨在制定能带来超额收益的多种“大概率”事件策略。

这个过程从大量的历史数据中筛选,极大地减少了投资者情绪波动的影响,避免了在市场极度狂热或悲观的情况下作出非理性的投资决策

这种交易方式不依赖人的主观判断,而是以数学模型替代,通过分析数据和趋势来制定交易策略。

比如可以利用Python语言实现布林线策略,并以特定指数为例绘制交易信号图。

此外,量化交易并不局限于某一特定的交易方法,例如股票多因子策略(阿尔法)、期货CTA策略等都可以被认为是量化交易的方法。

总的来说,量化交易就是利用计算机技术从庞大的历史数据中筛选出能带来超额收益的事件以制定策略并进行交易的过程。

02、详解十种量化交易经典策略

量化交易策略模型是量化交易的核心,而一些经典的量化交易策略更是被视为量化交易的基石

这些策略包括:

一、市场中性策略:

市场中性策略是一种投资策略,旨在通过同时构建多头和空头头寸以对冲市场风险,从而实现无论市场上涨或下跌环境下都能获得稳定收益。

这种策略不依赖市场的上涨或下跌来赚钱,而是通过对整体收益的保护来获取利润。

中性策略的构建方式多种多样,其主要分为股票多头端、对冲端及中性三部分。

其中,股票多头端通常采用量化多头策略,这是因为在当前市场环境下,主观多头策略所采用的主要投资方式(中长周期、集中持仓等)难以通过对冲有效获取稳定收益,不符合股票中性策略设计的初衷。

对冲端则是利用各类对冲工具建立空头头寸进行对冲,以达到对系统性风险的敏感度为0的目标。

目前市场上股票中性策略所使用的对冲工具主要为股指期货及场内外融券两类。

二、均值回归策略:

均值回归策略是一种广泛应用于量化交易中的策略,它依赖于股票价格无论高于均值回归策略是一种广泛应用于量化交易中的策略,它依赖于股票价格无论高于或低于价值中枢都会以很高的概率向价值中枢回归的趋势,即当标的价格由于波动而偏离移动的均线时,它将调整并重新归于均线。

这是一种赌趋势反转的策略,与趋势跟踪策略——赌趋势的继续不同。

均值回归策略的运行方式可以有多种。

例如,可以利用股票每天的平均回报率来找出股票回报率的分布,然后找出标准差(即均值),设定交易策略,如当回报率的pct change高于+5σ时卖出,低于-5σ时买入等。

另外,相对强弱指数(RSI)也是一个重要的工具,它是利用14天股票数据计算出来的,由0-100,超过70时为超买,低于30时为超卖。

通过计算RSI和股价的pct_change,可以帮助我们找出市场在指定RSI数值下的情绪及表现,从而制定有效的交易策略。

三、套利策略:

套利策略是一种广泛应用在金融市场中的交易方式,它依赖于同一种资产在不同市场或不同时间的价格差异,即“一价定律”。

投资者通过低买高卖的方式,利用这些价格差异获取收益。

套利策略的种类繁多,主要包括期货套利、统计套利和期权套利等。

期货套利策略是最常见的一种,它利用期货市场上不同合约之间的价差进行套利的交易行为。

根据具体的合约选择与策略构建,通常可以分为跨期套利、跨品种套利、跨市场套利三类策略。

跨期套利策略是同一市场中相同品种的不同月份期货合约之间的套利交易;

跨市场套利策略是不同市场内相同品种或高相关性品种期货合约之间的套利交易;

跨品种套利策略是高相关性品种间同一到期月份期货合约之间的套利交易。

此外,统计套利和期权套利也是重要的套利策略。

统计套利是通过分析历史数据,找出金融资产价格之间的关系,从而制定交易策略。

期权套利则是利用期权价格与标的资产价格之间的关系进行套利。

四、趋势跟踪策略:

趋势跟踪策略是一种主流且盈利能力强的交易策略,它的基本思想是“顺势而为”,即在市场存在趋势时,通过跟随趋势方向来获取收益。

这种策略通常遵循非常明确的准则:当进入信号出现时买入,退出信号出现时卖出;

价格是最重要的因素,同时资产管理和风险控制也是非常重要的组成部分。

最为经典的趋势跟踪策略之一是唐奇安通道突破系统,也被称为“四周规则”

这个系统最原始的版本是在创20个交易日新高之后买入,创20个交易日新低之后卖出。

这是一种无需任何指标的策略,仅需对两个价格的突破进行判断,便可以创下不菲的交易成绩。

五、统计套利策略:

统计套利是一种量化交易策略,这种策略依赖于数学模型和历史数据分析,而不依赖于市场环境。

它的基本操作方法是将股票价格与模型预测的理论价值进行对比,然后根据这个对比结果构建证券投资组合的多头和空头,从而获取稳定的无风险超额收益率。

统计套利最常见的策略是配对交易策略

在配对交易中,投资者会选择两只股票(或更多)进行交易,其中一只股票被买入,而另一只则被卖空,从而建立起一个市场中性的头寸。

如果这两只股票的价格发生同幅度的涨跌,那么无论市场走势如何,这个策略都能带来利润。

六、事件驱动策略:

事件驱动策略是一种主流且成熟的对冲基金投资策略,它依赖于重大的公司事件或转变来获取投资收益。

这种策略的运作方式通常涉及到并购套利、定向增发、大宗交易和复合策略等多种子策略。

并购套利是其中的一种常见形式,它是通过利用企业合并前后的价格差异来获取利润。

在实际操作中,投资者会在预测到两家公司可能会合并的情况下,购买其中一家公司的股票,并卖空另一家公司的股票。

如果这个预测成真,那么无论合并后的公司股票价格上涨还是下跌,投资者都能从中获利。

七、量价分析策略:

量价分析是一种主流的交易策略,它依赖于对价格、交易量以及持仓量三者之间关系的深入理解。

这种策略的目标是通过对市场价格走势和交易量的观察来预测未来的价格变化。

在具体应用时,投资者会密切关注成交量这一重要指标,因为它是股票市场供求关系的表现形式,反映了买卖双方对某只股票即时价格的认可度。

交易量的大小表明了交易者在不同价位上买卖股票的数量,代表了股票的活跃程度和流通性,并由此透露出市场的人气买卖意愿。

根据股价与成交量的不同关系,投资者将量价之间的关系进行了详细的分类,总结出了六种基本形式量增价跌、量增价平、量增价涨、量缩价跌、量缩价平、量缩价涨

此外,还有如无量涨停(一字板)、无量跌停、底部放量、地量地价、天量天价等六种特殊的情况。

八、质量轮动策略:

质量轮动策略是一种投资策略,其基本理念是通过对市场上不同资产的质量进行评估和比较,进而发现并利用价值被低估的资产。

这种策略通常涉及对股票、债券等多类资产的全面研究,包括企业的财务健康状况、经营业绩、市场地位以及行业前景等多个方面。

在实际操作中,质量轮动策略的构建首先需要确定候选池,即待分析的股票或其他资产列表。

然后,投资者会对这些资产进行详细的质量评估,并将它们按照质量的高低进行排序。

接下来,投资者会选择质量最高的若干资产进行投资,同时定期对已投资产进行再评估,以确保投资组合内的资产始终是市场上最优质的。

九、风险平价策略:

风险平价策略是一种投资策略,旨在平衡投资组合中各资产类别的风险贡献度,以实现投资组合风险的最优化。

这种策略的核心理念是通过对不同类别资产的权重进行平衡配置,将整个投资组合的风险均匀地分配到各个资产中去。

在实施风险平价策略时,投资者首先需要确定候选池,即待分析的股票或其他资产列表。

然后,对这些资产进行详细的风险评估,并将它们按照风险的大小进行排序。

接下来,投资者会选择风险最高的若干资产进行投资,同时定期对已投资产进行再评估,以确保投资组合内的资产始终保持均衡的风险分布。

十、CTA策略:

CTA策略,全称为商品交易顾问策略(Commodity Trading Advisor Strategy),是一种主要应用于期货和期权市场的策略。

这种策略的核心思想是通过对市场趋势的追踪,以此作为投资决策的依据。

在实施CTA策略时,投资者首先需要确定一个候选资产列表,这些资产通常是期货,例如股指期货、大宗商品期货和国债期货等。

然后,投资者会对这些资产的价格走势进行详尽的研究,以便找出可能的价格波动范围或者长短期均线的变化模式。

当价格突破这些设定的范围或模式时,投资者会采取相应的交易行动。

03、如何将量化交易策略运用到实战中

投资者了解了每一种量化交易策略的基本逻辑以后,需要自己写好相应的代码,然后运用到量化交易软件上进行回测,看一看这策略在过去的几年行情走势中的实战效果如何,如不理想,还需要进行代码更改。

那么如何在量化交易软件回测的选择上,我们应该如何选择量化交易软件?

这里给大家介绍两款国内主流的量化交易软件:迅投QMT和恒生Ptrade。可以私信或留言博主获取免费软件。佣金股票万一,ETF万0.5,可转债上海万0.44、深圳万0.5,融资5%。

在我们回测好某种交易逻辑可行以后,我们将会把量化交易运用到实战里,这时,我们需要找到量化交易软件的对接端口。

那么怎么对接QMT和Ptrade端口呢,建议投资者直接找证券公司的专业客户经理。

下面给大家介绍一个量化实用策略:

获取行情信息

get_history - 获取历史行情

get_history(count, frequency='1d', field='close', security_list=None, fq=None, include=False, fill='nan', is_dict=False)

使用场景

该函数仅在回测、交易模块可用

接口说明

该接口用于获取最近N条历史行情K线数据。支持多股票、多行情字段获取。

注意事项:

该接口只能获取2005年后的数据。

针对停牌场景,我们没有跳过停牌的日期,无论对单只股票还是多只股票进行调用,时间轴均为二级市场交易日日历,停牌时使用停牌前的数据填充,成交量为0,日K线可使用成交量为0的逻辑进行停牌日过滤。

参数

count: K线数量,大于0,返回指定数量的K线行情;必填参数;入参类型:int;

frequency:K线周期,现有支持1分钟线(1m)、5分钟线(5m)、15分钟线(15m)、30分钟线(30m)、60分钟线(60m)、120分钟线(120m)、日线(1d)、周线(1w/weekly)、月线(mo/monthly)、季度线(1q/quarter)和年线(1y/yearly)频率的数据;选填参数,默认为'1d';入参类型:str;

field:指明数据结果集中所支持输出的行情字段;选填参数,默认为['open','high','low','close','volume','money','price'];入参类型:list[str,str]或str;输出字段包括:

  • open -- 开盘价,字段返回类型:numpy.float64;
  • high -- 最高价,字段返回类型:numpy.float64;
  • low --最低价,字段返回类型:numpy.float64;
  • close -- 收盘价,字段返回类型:numpy.float64;
  • volume -- 交易量,字段返回类型:numpy.float64;
  • money -- 交易金额,字段返回类型:numpy.float64;
  • price -- 最新价,字段返回类型:numpy.float64;
  • preclose -- 昨收盘价,字段返回类型:numpy.float64(仅日线返回);
  • high_limit -- 涨停价,字段返回类型:numpy.float64(仅日线返回);
  • low_limit -- 跌停价,字段返回类型:numpy.float64(仅日线返回);
  • unlimited -- 判断查询日是否是无涨跌停限制(1:该日无涨跌停限制;0:该日不是无涨跌停限制),字段返回类型:numpy.float64(仅日线返回);

security_list:要获取数据的股票列表;选填参数,None表示在上下文中的universe中选中的所有股票;入参类型:list[str,str]或str;

fq:数据复权选项,支持包括,pre-前复权,post-后复权,dypre-动态前复权,None-不复权;选填参数,默认为None;入参类型:str;

include:是否包含当前周期,True –包含,False-不包含;选填参数,默认为False;入参类型:bool;

fill:行情获取不到某一时刻的分钟数据时,是否用上一分钟的数据进行填充该时刻数据,'pre'–用上一分钟数据填充,'nan'–NaN进行填充(仅交易有效);选填参数,默认为'nan';入参类型:str;

is_dict:返回是否是字典(dict)格式{str: array()},True –是,False-不是;选填参数,默认为False;返回为字典格式取数速度相对较快;入参类型:bool;

返回

第一种返回数据:

当获取单支股票(单只股票必须为字符串类型security_list='600570.SS',不能用security_list=['600570.SS'])的时候,无论行情字段field入参单个或多个,返回的都是pandas.DataFrame对象,行索引是datetime.datetime对象,列索引是行情字段,为str类型。比如:

如果当前时间是2017-04-18,get_history(5, '1d', 'open', '600570.SS', fq=None, include=False)将返回:

open
2017-04-1140.30
2017-04-1240.08
2017-04-1340.03
2017-04-1440.04
2017-04-1739.90

第二种返回数据:

当获取多支股票(多只股票必须为list类型,特殊情况:当list只有一个股票时仍然当做多股票处理,比如security_list=['600570.SS'])的时候,如果行情字段field入参为单个,返回的是pandas.DataFrame对象,行索引是datetime.datetime对象,列索引是股票代码的编号,为str类型。比如:

如果当前时间是2017-04-18,get_history(5, '1d', 'open', ['600570.SS','600571.SS'], fq=None, include=False)将返回:

600570.SS600571.SS
2017-04-1140.3017.81
2017-04-1240.0817.56
2017-04-1340.0317.42
2017-04-1440.0417.40
2017-04-1739.9017.49

第三种返回数据:

当获取多支股票(多只股票必须为list类型,特殊情况:当list只有一个股票时仍然当做多股票处理,比如security_list=['600570.SS'])的时候,如果行情字段field入参为多个,则返回pandas.Panel对象,items索引是行情字段(如'open'、'close'等),里面是很多pandas.DataFrame对象,每个pandas.DataFrame的行索引是datetime.datetime对象, 列索引是股票代码,为str类型,比如:

如果当前时间是2015-01-07,get_history(2, frequency='1d', field=['open','close'], security_list=['600570.SS', '600571.SS'], fq=None, include=False)['open']将返回:

600570.SS600571.SS
2015-01-0554.7726.93
2015-01-0651.0025.83

假如要对panel索引中的对象进行转换,比如将items索引由行情字段转换成股票代码,可以通过panel_info = panel_info.swapaxes("minor_axis", "items")的方法转换。

比如:

panel_info = get_history(2, frequency='1d', field=['open','close'], security_list=['600570.SS', '600571.SS'], fq=None, include=False)

按默认索引:df = panel_info['open']

对默认索引做转换:panel_info = panel_info.swapaxes("minor_axis", "items")

转换之后的索引:df = panel_info['600570.SS']

关于numpy和pandas,请看下面的第三方库介绍。

示例

def initialize(context):g.security = ['600570.SS', '000001.SZ']set_universe(g.security)def before_trading_start(context, data):# 获取农业版块过去10天的每日收盘价industry_info = get_history(10, frequency="1d", field="close", security_list="A01000.XBHS")log.info(industry_info)def handle_data(context, data):# 股票池中全部股票过去5天的每日收盘价his = get_history(5, '1d', 'close', security_list=g.security)log.info('股票池中全部股票过去5天的每日收盘价')log.info(his)# 获取600570(恒生电子)过去5天的每天收盘价,# 一个pd.Series对象, index是datatimelog.info('获取600570(恒生电子)过去5天的每天收盘价')log.info(his['600570.SS'])# 获取600570(恒生电子)昨天(数组最后一项)的收盘价log.info('获取600570(恒生电子)昨天的收盘价')log.info(his['600570.SS'][-1])# 获取股票池中全部股票昨天的收盘价log.info('获取股票池中全部股票昨天的收盘价')log.info(his.iloc[-1])# 获取600570(恒生电子)昨天(数组最后一项)的收盘价log.info('获取600570(恒生电子)昨天的收盘价')log.info(his.iloc[-1]['600570.SS'])# 取得每一列的平均值log.info('取得每一列的平均值')log.info(his.mean())# 获取股票池中全部股票的过去10分钟的成交量his1 = get_history(10, '1m', 'volume')log.info('获取股票池中全部股票的过去10分钟的成交量')log.info(his1)# 获取恒生电子的过去5天的每天的收盘价his2 = get_history(5, '1d', 'close', security_list='600570.SS')log.info('获取恒生电子的过去5天的每天的收盘价')log.info(his2)# 获取恒生电子的过去5天的每天的后复权收盘价his3 = get_history(5, '1d', 'close', security_list='600570.SS', fq='post')log.info('获取恒生电子的过去5天的每天的后复权收盘价')log.info(his3)# 获取恒生电子的过去5周的每周的收盘价his4 = get_history(5, '1w', 'close', security_list='600570.SS')log.info('获取恒生电子的过去5天的每天的收盘价')log.info(his4)# 获取多只股票的开盘价和收盘价数据panel_info = get_history(2, frequency='1d', field=['open','close'], security_list=g.security)open_df = panel_info['open']log.info('获所有股票的取开盘价数据')log.info(open_df)df = open_df['600570.SS']log.info('仅获取恒生电子的开盘价数据')log.info(df)# panel索引中的对象进行转换panel_info2 = panel_info.swapaxes("minor_axis", "items")df = panel_info2['600570.SS']log.info('仅获取恒生电子的开盘价和收盘价数据')log.info(df)open_df = df['open']log.info('获取恒生电子的开盘价数据')log.info(open_df)

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

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

相关文章

视频号小店是个风口吗?今年去做是明智的选择吗?一篇详解!

大家好,我是电商小V 视频号才刚刚推出一年半的时间,可以说自从推出之后这个项目的知名度一直是处于飙升的状态,一直处于爆火的状态,也是吸引了很多想做电商,想去创业的小伙伴,最主要的就是视频号小店背靠的…

nginx 发布静态资源

一. nginx 发布静态资源 在nginx中nginx.conf配置文件中添加内容如下: server {listen 90;server_name localhost;# 配置静态资源文件,就可以访问了location / {root /home/fooie-shop;index index.html;}# 配置音频和图片资源location /imoo…

香港电讯高效网络,助力新消费品牌抓住拓展香港市场新风口

自今年初香港与内地全面恢复通关,两地同胞跨境消费热潮持续升温。港人“北上”消费掀起风潮的同时,香港市场也成为内地新消费品牌拓展的热门目标。从糕点、茶饮、连锁餐饮到服饰,越来越多内地品牌进驻香港。新消费品牌要想在香港开设门店&…

基于火山引擎云搜索的混合搜索实战

在搜索应用中,传统的 Keyword Search 一直是主要的搜索方法,它适合精确匹配查询的场景,能够提供低延迟和良好的结果可解释性,但是 Keyword Search 并没有考虑上下文信息,可能产生不相关的结果。最近几年,基…

PyCharm2024安装教程

PyCharm是一款功能强大的Python集成开发环境(IDE),它提供了许多工具和功能来帮助开发者编写、调试和测试Python代码。以下是使用PyCharm的基本步骤: 安装PyCharm:首先,你需要从JetBrains官方网站下载并安装…

【信息论系列1】一文搞定各种奇奇怪怪信道的信道容量C计算(含多角度理解推导)

引言 信息论中,通信信道是一个描述给定信道输入X条件下信道输出Y的条件概率分布,也就是P(Y|X) 维恩图 两个圆分别表示X和Y的信息熵,即观测相应随机变量所能确认的信息量/相应随机变量蕴含的不确定性两个圆求并集得到联合熵H(X,Y),因为观测联合事件需要同时确认两个随机变…

Unity 2021 升级至团结引擎

UnityWebRequest 报错 InvalidOperationException: Insecure connection not allowed 解决方法 不兼容jdk 8 需要安装 JDK11 64bit 必须JDK 11,高版本也不行 安卓环境hub 未给我安装完全。 Data\PlaybackEngines\AndroidPlayer 并没有NDK,SDK。但是 HUB 显示已经…

8.微服务项目结合SpringSecurity项目结构

项目结构 acl_parent:创建父工程用来管理依赖版本 common service_base&#xff1a;工具类 spring_security: Spring Security相关配置 infrastructure api_gateway: 网关 service service_acl: 实现权限管理功能代码 acl_parent的pom.xml <?xml version"1.0" …

MySQL表的基本操作

表 创建表 comment是添加一个注释 语法&#xff1a; 说明&#xff1a; field 表示列名 datatype 表示列的类型 character set 字符集&#xff0c;如果没有指定字符集&#xff0c;则以所在数据库的字符集为准 collate 校验规则&#xff0c;如果没有指定校验规则&#xff0c;则…

【原创】java+springboot+mysql企业邮件管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

win编写bat脚本启动java服务

新建txt&#xff0c;编写&#xff0c;前台启动&#xff0c;出现cmd黑窗口 echo off start java -jar zhoao1.jar start java -jar zhoao2.jar pause完成后&#xff0c;重命名.bat 1、后台启动&#xff0c;不出现cmd黑窗口&#xff0c;app是窗口名称 echo off start "名…

Blender雕刻建模_笔刷纹理和顶点绘制

笔刷纹理 主要用于皮肤&#xff0c;纹理的雕刻。 可以修改映射方式来实现不同绘制效果。 用一张纹理来定义笔刷各个点的强度。其中白色为1&#xff0c;黑色为0。 设置笔刷纹理步骤&#xff1a; -新建一套笔刷 -强度&#xff0c;设为0.15&#xff08;可以根据需求修改&#x…

Linux修改终端命令颜色

1.在家目录中修改.bashrc文件 cd ~ vim .bashrc2.找到PS1相关段落&#xff0c;把其他的注释掉&#xff0c;填上该行代码&#xff0c;修改为自己设置的颜色 (具体颜色查看参考文章) 提供两种颜色&#xff0c;其他的自学调色盘吧(下文有)~ (祝你愉快) ①浅蓝色 深蓝 PS1\[\03…

怎么获取提取二维码链接?点击链接访问内容的方法

随着现在二维码应用的场景越来越多&#xff0c;很多的产品或者场所都会有相对应的二维码来提供信息展示&#xff0c;那么当遇到无法通过扫码获取内容的情况时&#xff0c;有什么其他方法可以访问二维码的内容呢&#xff1f;下面就让小编来分享一下二维码解码功能的使用方法&…

JavaScript基础知识强化:变量提升、作用域逻辑及TDZ的全面解析

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 ⭐️ 引言&#x1f3af; 变量提升(Hoisting)&#x1f47b; 暂时性死区&#xff08;Temporal Dead Zone, TDZ&#xff09;解释&#x1f4e6; var声明&#x1f512; let与const声明&#x1f4d6; 函数声明 与 函数表达式函数声…

柯桥外语成人教育之生活口语培训“January and May”才不是“一月和五月”!真正的意思差远了!

“January and May”正确翻译是&#xff1f; 一月跟五月这八杆子打不到的月份能有什么关系&#xff1f;为什么要放在一起说&#xff1f;其实&#xff0c;它们不仅有关系而且还很亲密。 这个俚语起源于英国作家乔叟所著的《坎特伯雷故事集》中“商人的故事”&#xff1a; Januar…

FullCalendar日历组件集成实战(5)

背景 有一些应用系统或应用功能&#xff0c;如日程管理、任务管理需要使用到日历组件。虽然Element Plus也提供了日历组件&#xff0c;但功能比较简单&#xff0c;用来做数据展现勉强可用。但如果需要进行复杂的数据展示&#xff0c;以及互动操作如通过点击添加事件&#xff0…

ACWing471. 棋盘-DFS剪枝

题目 思路 本思路参考博客AcWing 471. 棋盘 - AcWing 约束方程&#xff1a; 代码 #include <iostream> #include <cstring> #include <algorithm>using namespace std;const int N 110, INF 0x3f3f3f3f; int g[N][N], n, m, dist[N][N]; int dx[4] {-1…

TikTok机房ip好还是住宅ip好?

住宅ip比较好&#xff0c;机房数据中心IP高效、低价&#xff0c;所以使用的人多且用处复杂&#xff0c;这类ip极大可能存在滥用的黑历史&#xff0c;通过此类ip访问tiktok&#xff0c;被禁止的可能性更高&#xff0c;更容易被拉入黑名单。所以我们推荐tiktok独享原生ip搭建节点…

Blender雕刻建模流程

1.构形 先构造一个大致相像的外形 可使用的方法包含 -多边形&#xff1a;表面细分&#xff0c;布尔 -曲线&#xff1a;曲线倒角 -融球&#xff08;使用较少&#xff09; -曲面&#xff08;使用较少&#xff09; 构形之后的准备 -应用缩放 -应用修改器 -曲线转网格 1.1…