【大麦小米学量化】使用文心一言AI编写股票量化交易策略代码(含演示代码和进阶演示)
文章目录
- AI是个宝
- 前言
- 一、文心一言是什么?
- 二、让AI根据策略写出代码
- 1. 策略提示词
- 2. AI给出的策略代码及说明
- 三、进阶调试
- 总结
AI是个宝
小米听说百度开放了文心一言AI,好奇的跑去问大麦:“文心一言都放开了,什么代码都可以写,你还学Python干嘛呀?”
大麦:“怎么不学?不学你知道代码怎么回事儿!”
“你学了这么久,你敢说有我的AI写得快么?”,小米一脸鄙夷地斜视着大麦,似乎在等着大麦哥哥洋相出尽。
“我不信,AI能写出我的策略”,大麦反驳道,小米心里有些失望,但更有些高兴。
“量化交易,不是一个AI就可以搞定的,AI对通用的算法也许很强,但涉及到个性的API调用,还是需要调试吧!”
小米一听,立马挑战道:“是骡子是马,拉出来溜溜!”
“这谁怕谁啊?!”大麦不甘示弱,不服气的反驳道。
“我让文心一言给你写段代码”,小麦认真起来,也是巾帼不让须眉。
“来,来,来,写写就写写!”,大麦也来劲了。
只见小米打开Mac,就给文心写了一段话,最后一个优雅的回车。AI一字一句斟酌着,很快,代码就如蹦豆子一般,潇潇洒洒地写出来了。
“来,拿去试试”,小米大方将代码送给大麦哥哥,迫不及待地想得到结果。
“这个只是个片段,但是可以参考,等下我给它改改,运行试试”,大麦并不在意,而是认真的修改起来,就好像策略代码是自己写的。
“快快,咋样啊?”,小米迫不及待的盯着大麦哥哥的电脑屏幕,恨不得立马看见结果。
“好了,还不赖啊!百度不负等待啊!这代码可以运行,不错不错!”,大麦哥哥再也不吝啬夸赞之词,同时对这小米微微一笑,频频点头示意,好似在说:“妹妹带来了宝贝啊!”
“这以后你不用愁了吧”,小米也为能帮到大麦哥哥心生欢喜。
大麦看着妹妹,眼中透漏着光:“嗯嗯,妹妹眼睛是真亮啊!”
前言
AI已经发到到可以写代码了,那是不是也可以写写量化交易代码呢?
带着这个问题,我们试试文心一言。
提示:以下是本篇文章正文内容,下面案例可供参考
一、文心一言是什么?
文心一言:有用、有趣、有温度,既能写文案、读文档,又能脑洞大开、答疑解惑,还能倾听你的故事、感受你的心声。快来和我对话吧!
这是百度AI的介绍,为了试一试AI的代码书写能力,我们准备让其根据给出的文字策略,编写python代码。
二、让AI根据策略写出代码
1. 策略提示词
根据以下内容用python写出策略代码:
上破boll中轨买入,上破boll上轨0.5%卖出,下破boll中轨卖出
2. AI给出的策略代码及说明
以下是根据您提供的内容写出的策略代码:
import pandas as pd
import numpy as np
import talib def run_strategy(df): # 计算boll指标 df['upper'], df['middle'], df['lower'] = talib.BBANDS(df['Close'], timeperiod=20, nbdevup=2, nbdevdn=2, matype=0) # 检查是否上穿boll中轨 buy_signal = np.where((df['Close'].shift(1) < df['middle'].shift(1)) & (df['Close'] > df['middle']), 1, 0) # 检查是否超过boll上轨0.5% sell_signal1 = np.where((df['Close'].shift(1) < df['upper'].shift(1)) & (df['Close'] > df['upper'] * 1.005), 1, 0) # 检查是否下穿布林中轨 sell_signal2 = np.where(df['Close'] < df['middle'], 1, 0) df['Buy'] = buy_signal.astype(int) df['Sell1'] = sell_signal1.astype(int) df['Sell2'] = sell_signal2.astype(int) return df
这段代码同样使用了TA-Lib库中的BBANDS函数来计算布林线指标。首先计算出上轨、中轨和下轨,然后检查前一天的收盘价是否在中轨之下,当天的收盘价是否在中轨之上,如果是,则为买入信号。接着检查前一天的收盘价是否在上轨之下,当天的收盘价是否在上轨的0.5%之上,如果是,则为卖出信号。最后检查当天的收盘价是否在中轨之下,如果是,则为卖出信号。最后将买入和卖出信号添加到数据框中并返回。请注意,这里同样假设输入数据框df已经包含了收盘价数据,并且使用了np.where函数来实现条件判断。
三、进阶调试
由于AI代码并不包含数据提取和展示过程,我们这里增加一些代码,验证一下策略是否可执行,以及是否按要求执行策略。
'''
根据以下内容用python写出策略代码:
上破boll中轨买入,上破boll上轨0.5%卖出,下破boll中轨卖出
'''import pandas as pd
import numpy as np
import talib def run_strategy(df): # 计算boll指标 df['upper'], df['middle'], df['lower'] = talib.BBANDS(df['Close'], timeperiod=20, nbdevup=2, nbdevdn=2, matype=0) # 检查是否上穿boll中轨 buy_signal = np.where((df['Close'].shift(1) < df['middle'].shift(1)) & (df['Close'] > df['middle']), 1, 0) # 检查是否超过boll上轨0.5% sell_signal1 = np.where((df['Close'].shift(1) < df['upper'].shift(1)) & (df['Close'] > df['upper'] * 1.005), 1, 0) # 检查是否下穿布林中轨 sell_signal2 = np.where(df['Close'] < df['middle'], 1, 0) df['Buy'] = buy_signal.astype(int) df['Sell1'] = sell_signal1.astype(int) df['Sell2'] = sell_signal2.astype(int) return df# ===============表格美化输出===============
def df_table(df,index):import prettytable as pt#利用prettytable对输出结果进行美化,index为索引列名:df_table(df,'market')tb = pt.PrettyTable()# 如果为trade_time为index转换为日期类型,其它不用管。if index == "trade_time":df = df.set_index(index)df.index = pd.DatetimeIndex(df.index)# df.reset_index(level=None, drop=True, inplace=True, col_level=0, col_fill='')df = df.reset_index(drop = True)tb.add_column(index,df.index)#按date排序for col in df.columns.values:#df.columns.values的意思是获取列的名称# print('col',col)# print('df[col]',df[col])tb.add_column(col, df[col])print(tb)if __name__=='__main__':# 使用pip install prettytable 先安装这个库import prettytable as pt# 下载Ashare放到和本文件一个目录即可引用from Ashare import *df=get_price('sz300750',frequency='1d',count=500)print(df)# df.columns = [l.lower() for l in df.columns] # 将所有列名小写df.columns = [l.capitalize() for l in df.columns] # 将所有列名首字母改为大写print(df)ret = run_strategy(df)print(ret)df_table(ret.round(3),'AI')
运行结果如下,Buy为1表示买入,Sell1为止盈卖出,Sell2为止损卖出:
+----+--------+--------+--------+--------+------------+---------+---------+---------+-----+-------+-------+
| AI | Open | High | Low | Close | Volume | upper | middle | lower | Buy | Sell1 | Sell2 |
+----+--------+--------+--------+--------+------------+---------+---------+---------+-----+-------+-------+
| 0 | 225.8 | 234.25 | 221.21 | 232.52 | 28956810.0 | nan | nan | nan | 0 | 0 | 0 |
| 1 | 232.55 | 242.98 | 231.2 | 240.4 | 34747371.0 | nan | nan | nan | 0 | 0 | 0 |
| 2 | 241.99 | 244.56 | 237.98 | 237.98 | 22309979.0 | nan | nan | nan | 0 | 0 | 0 |
| 3 | 241.01 | 244.0 | 235.1 | 238.29 | 26706471.0 | nan | nan | nan | 0 | 0 | 0 |
| 4 | 238.4 | 240.97 | 236.77 | 239.0 | 13973953.0 | nan | nan | nan | 0 | 0 | 0 |
| 5 | 239.0 | 241.68 | 236.06 | 240.0 | 18246432.0 | nan | nan | nan | 0 | 0 | 0 |
| 6 | 241.3 | 241.37 | 231.04 | 232.4 | 24123880.0 | nan | nan | nan | 0 | 0 | 0 |
| 7 | 231.75 | 234.18 | 230.0 | 230.0 | 19472168.0 | nan | nan | nan | 0 | 0 | 0 |
| 8 | 229.0 | 232.5 | 227.0 | 230.3 | 14679114.0 | nan | nan | nan | 0 | 0 | 0 |
| 9 | 230.88 | 231.71 | 225.15 | 225.42 | 19613196.0 | nan | nan | nan | 0 | 0 | 0 |
| 10 | 224.8 | 228.51 | 223.72 | 225.25 | 14785735.0 | nan | nan | nan | 0 | 0 | 0 |
| 11 | 224.85 | 227.68 | 222.49 | 224.09 | 13753272.0 | nan | nan | nan | 0 | 0 | 0 |
| 12 | 224.2 | 224.5 | 217.5 | 220.0 | 18211695.0 | nan | nan | nan | 0 | 0 | 0 |
| 13 | 222.2 | 222.22 | 215.6 | 217.06 | 16537161.0 | nan | nan | nan | 0 | 0 | 0 |
| 14 | 217.0 | 224.99 | 216.01 | 224.99 | 26467083.0 | nan | nan | nan | 0 | 0 | 0 |
| 15 | 225.05 | 226.89 | 220.16 | 221.17 | 18869744.0 | nan | nan | nan | 0 | 0 | 0 |
| 16 | 222.64 | 228.0 | 221.51 | 222.9 | 15941049.0 | nan | nan | nan | 0 | 0 | 0 |
| 17 | 224.9 | 229.99 | 224.0 | 228.44 | 23181483.0 | nan | nan | nan | 0 | 0 | 0 |
| 18 | 225.9 | 225.9 | 216.39 | 219.8 | 33595114.0 | nan | nan | nan | 0 | 0 | 0 |
| 19 | 218.01 | 222.3 | 216.98 | 219.28 | 17242526.0 | 243.347 | 228.465 | 213.582 | 0 | 0 | 1 |
| 20 | 216.38 | 216.5 | 204.45 | 207.3 | 50093939.0 | 244.565 | 227.204 | 209.842 | 0 | 0 | 1 |
| 21 | 212.75 | 213.3 | 207.0 | 208.01 | 23857940.0 | 243.744 | 225.584 | 207.424 | 0 | 0 | 1 |
| 22 | 208.55 | 213.13 | 208.55 | 212.04 | 24261728.0 | 242.425 | 224.287 | 206.149 | 0 | 0 | 1 |
| 23 | 211.95 | 214.0 | 208.9 | 211.95 | 18131632.0 | 240.67 | 222.97 | 205.27 | 0 | 0 | 1 |
| 24 | 211.01 | 213.93 | 210.68 | 213.1 | 13243699.0 | 238.248 | 221.675 | 205.102 | 0 | 0 | 1 |
| 25 | 217.15 | 217.63 | 213.0 | 213.4 | 16362927.0 | 234.978 | 220.345 | 205.712 | 0 | 0 | 1 |
| 26 | 214.99 | 230.88 | 214.89 | 230.88 | 50495682.0 | 234.665 | 220.269 | 205.873 | 1 | 0 | 0 |
| 27 | 232.0 | 234.17 | 228.3 | 231.1 | 29639828.0 | 234.876 | 220.324 | 205.772 | 0 | 0 | 0 |
| 28 | 232.99 | 232.99 | 226.0 | 227.88 | 18707081.0 | 234.458 | 220.203 | 205.948 | 0 | 0 | 0 |
| 29 | 227.87 | 231.31 | 225.77 | 228.0 | 17960501.0 | 234.818 | 220.332 | 205.846 | 0 | 0 | 0 |
| 30 | 228.81 | 230.5 | 224.9 | 224.91 | 17118438.0 | 234.779 | 220.315 | 205.851 | 0 | 0 | 0 |
| 31 | 219.91 | 226.95 | 219.68 | 225.17 | 15910609.0 | 234.897 | 220.369 | 205.841 | 0 | 0 | 0 |
| 32 | 223.98 | 226.3 | 221.18 | 223.47 | 13420648.0 | 235.131 | 220.543 | 205.954 | 0 | 0 | 0 |
| 33 | 222.22 | 226.5 | 222.0 | 224.5 | 13558644.0 | 235.509 | 220.915 | 206.32 | 0 | 0 | 0 |
| 34 | 223.51 | 226.91 | 222.5 | 222.5 | 9930233.0 | 235.285 | 220.79 | 206.295 | 0 | 0 | 0 |
| 35 | 223.99 | 229.99 | 220.35 | 228.79 | 21551522.0 | 236.081 | 221.171 | 206.261 | 0 | 0 | 0 |
| 36 | 231.95 | 233.95 | 228.55 | 229.88 | 15554352.0 | 236.895 | 221.52 | 206.145 | 0 | 0 | 0 |
| 37 | 228.5 | 230.05 | 227.68 | 229.25 | 10155673.0 | 237.012 | 221.561 | 206.109 | 0 | 0 | 0 |
| 38 | 229.26 | 230.41 | 225.5 | 227.51 | 8636414.0 | 237.586 | 221.946 | 206.306 | 0 | 0 | 0 |
| 39 | 227.0 | 228.48 | 223.97 | 224.85 | 10283568.0 | 237.863 | 222.225 | 206.586 | 0 | 0 | 0 |
| 40 | 224.8 | 224.85 | 221.6 | 222.25 | 9808377.0 | 237.036 | 222.972 | 208.908 | 0 | 0 | 1 |
| 41 | 223.0 | 230.0 | 223.0 | 228.8 | 16093831.0 | 236.481 | 224.012 | 211.542 | 1 | 0 | 0 |
| 42 | 229.65 | 229.99 | 226.58 | 229.09 | 9158787.0 | 236.225 | 224.864 | 213.503 | 0 | 0 | 0 |
| 43 | 228.5 | 229.4 | 226.5 | 226.99 | 8693260.0 | 235.33 | 225.616 | 215.902 | 0 | 0 | 0 |
| 44 | 228.21 | 235.0 | 228.21 | 230.0 | 22257672.0 | 234.462 | 226.461 | 218.46 | 0 | 0 | 0 |
| 45 | 230.15 | 230.93 | 226.55 | 228.28 | 13004091.0 | 232.529 | 227.205 | 221.881 | 0 | 0 | 0 |
| 46 | 227.01 | 228.0 | 223.6 | 225.65 | 10452522.0 | 232.028 | 226.944 | 221.859 | 0 | 0 | 1 |
| 47 | 227.8 | 227.88 | 224.5 | 225.5 | 8575776.0 | 231.407 | 226.664 | 221.92 | 0 | 0 | 1 |
| 48 | 224.0 | 224.95 | 218.58 | 219.5 | 17600182.0 | 231.881 | 226.245 | 220.608 | 0 | 0 | 1 |
| 49 | 219.0 | 226.69 | 219.0 | 221.05 | 14441648.0 | 231.902 | 225.897 | 219.892 | 0 | 0 | 1 |
| 50 | 220.85 | 222.98 | 219.76 | 221.59 | 8393526.0 | 232.013 | 225.731 | 219.449 | 0 | 0 | 1 |
| 51 | 217.15 | 220.88 | 214.14 | 218.98 | 13719339.0 | 232.36 | 225.422 | 218.483 | 0 | 0 | 1 |
| 52 | 224.9 | 227.64 | 221.02 | 226.35 | 19286245.0 | 232.455 | 225.566 | 218.676 | 1 | 0 | 0 |
| 53 | 225.12 | 227.0 | 223.66 | 226.66 | 15456786.0 | 232.561 | 225.674 | 218.786 | 0 | 0 | 0 |
| 54 | 231.0 | 232.88 | 226.88 | 226.98 | 20859235.0 | 232.647 | 225.898 | 219.148 | 0 | 0 | 0 |
| 55 | 226.98 | 231.0 | 225.05 | 230.05 | 18803095.0 | 232.839 | 225.961 | 219.082 | 0 | 0 | 0 |
| 56 | 234.0 | 239.5 | 233.1 | 237.75 | 29902754.0 | 234.805 | 226.354 | 217.903 | 0 | 1 | 0 |
| 57 | 237.4 | 239.1 | 234.5 | 235.5 | 15615168.0 | 235.945 | 226.667 | 217.388 | 0 | 0 | 0 |
| 58 | 237.0 | 239.49 | 235.5 | 236.5 | 14147185.0 | 237.337 | 227.116 | 216.895 | 0 | 0 | 0 |
| 59 | 236.0 | 239.97 | 235.53 | 239.14 | 16180526.0 | 239.246 | 227.831 | 216.415 | 0 | 0 | 0 |
| 60 | 245.0 | 249.96 | 241.11 | 245.51 | 31569675.0 | 242.454 | 228.994 | 215.533 | 0 | 1 | 0 |
| 61 | 244.5 | 246.94 | 243.31 | 246.49 | 14927749.0 | 245.347 | 229.878 | 214.409 | 0 | 0 | 0 |
| 62 | 245.98 | 249.33 | 244.88 | 247.14 | 15066676.0 | 247.971 | 230.781 | 213.59 | 0 | 0 | 0 |
| 63 | 245.5 | 247.68 | 243.14 | 247.0 | 11684661.0 | 250.254 | 231.781 | 213.308 | 0 | 0 | 0 |
| 64 | 247.9 | 251.33 | 244.12 | 246.5 | 14040964.0 | 252.131 | 232.606 | 213.081 | 0 | 0 | 0 |
| 65 | 248.95 | 248.95 | 241.5 | 241.5 | 17204064.0 | 253.054 | 233.267 | 213.48 | 0 | 0 | 0 |
| 66 | 239.2 | 239.98 | 230.21 | 232.9 | 25693218.0 | 253.109 | 233.63 | 214.15 | 0 | 0 | 1 |
| 67 | 232.88 | 234.6 | 229.4 | 231.3 | 14610073.0 | 253.076 | 233.92 | 214.763 | 0 | 0 | 1 |
| 68 | 231.52 | 234.38 | 230.11 | 232.6 | 14009045.0 | 252.575 | 234.575 | 216.574 | 0 | 0 | 1 |
| 69 | 234.99 | 236.5 | 228.88 | 235.25 | 20442773.0 | 252.181 | 235.285 | 218.388 | 0 | 0 | 1 |
| 70 | 235.29 | 239.12 | 234.42 | 235.87 | 16769998.0 | 251.684 | 235.999 | 220.313 | 0 | 0 | 1 |
| 71 | 233.99 | 235.87 | 232.2 | 232.96 | 10780439.0 | 250.409 | 236.698 | 222.986 | 0 | 0 | 1 |
| 72 | 234.8 | 235.18 | 227.51 | 230.75 | 15188941.0 | 250.088 | 236.918 | 223.747 | 0 | 0 | 1 |
| 73 | 230.7 | 231.9 | 227.0 | 227.5 | 11874911.0 | 250.004 | 236.96 | 223.915 | 0 | 0 | 1 |
| 74 | 228.88 | 231.54 | 226.5 | 228.95 | 14157716.0 | 249.826 | 237.058 | 224.29 | 0 | 0 | 1 |
| 75 | 227.93 | 229.97 | 225.81 | 228.34 | 11185129.0 | 249.948 | 236.973 | 223.997 | 0 | 0 | 1 |
| 76 | 241.5 | 243.96 | 229.5 | 230.5 | 22311515.0 | 249.88 | 236.61 | 223.34 | 0 | 0 | 1 |
| 77 | 231.2 | 243.0 | 230.92 | 238.5 | 29174995.0 | 250.045 | 236.76 | 223.475 | 1 | 0 | 0 |
| 78 | 239.4 | 242.0 | 237.5 | 237.5 | 14591637.0 | 250.098 | 236.81 | 223.522 | 0 | 0 | 0 |
| 79 | 237.1 | 238.5 | 236.13 | 236.55 | 9671527.0 | 249.925 | 236.681 | 223.436 | 0 | 0 | 1 |
| 80 | 236.6 | 239.51 | 234.6 | 236.4 | 9101132.0 | 248.835 | 236.225 | 223.615 | 1 | 0 | 0 |
| 81 | 238.21 | 238.76 | 233.4 | 237.65 | 14052387.0 | 247.512 | 235.783 | 224.054 | 0 | 0 | 0 |
| 82 | 237.0 | 239.5 | 236.16 | 236.82 | 11581665.0 | 245.799 | 235.267 | 224.735 | 0 | 0 | 0 |
| 83 | 236.05 | 237.17 | 232.8 | 234.42 | 12474783.0 | 243.691 | 234.638 | 225.585 | 0 | 0 | 1 |
| 84 | 233.0 | 233.75 | 226.51 | 226.51 | 19266090.0 | 241.578 | 233.639 | 225.699 | 0 | 0 | 1 |
| 85 | 225.0 | 227.2 | 220.5 | 222.94 | 16499443.0 | 241.084 | 232.711 | 224.337 | 0 | 0 | 1 |
| 86 | 222.9 | 223.55 | 219.68 | 221.53 | 17060897.0 | 241.828 | 232.142 | 222.456 | 0 | 0 | 1 |
| 87 | 222.0 | 222.41 | 217.54 | 217.93 | 18231209.0 | 242.975 | 231.474 | 219.972 | 0 | 0 | 1 |
| 88 | 217.0 | 219.15 | 215.03 | 216.6 | 15135693.0 | 243.854 | 230.674 | 217.493 | 0 | 0 | 1 |
| 89 | 213.68 | 216.3 | 213.03 | 214.93 | 18294104.0 | 244.319 | 229.658 | 214.996 | 0 | 0 | 1 |
| 90 | 212.0 | 214.0 | 206.6 | 207.76 | 33679992.0 | 245.435 | 228.252 | 211.069 | 0 | 0 | 1 |
| 91 | 206.0 | 214.69 | 206.0 | 213.06 | 26593485.0 | 245.506 | 227.257 | 209.008 | 0 | 0 | 1 |
| 92 | 213.06 | 213.48 | 210.6 | 212.32 | 15024395.0 | 245.618 | 226.336 | 207.053 | 0 | 0 | 1 |
| 93 | 213.0 | 213.33 | 208.68 | 209.9 | 13087485.0 | 246.009 | 225.456 | 204.902 | 0 | 0 | 1 |
| 94 | 210.01 | 210.95 | 206.67 | 206.73 | 16214929.0 | 246.372 | 224.345 | 202.317 | 0 | 0 | 1 |
| 95 | 205.5 | 211.45 | 205.5 | 210.93 | 22509065.0 | 246.167 | 223.474 | 200.781 | 0 | 0 | 1 |
| 96 | 213.02 | 213.62 | 208.71 | 209.28 | 13605355.0 | 245.67 | 222.413 | 199.156 | 0 | 0 | 1 |
| 97 | 206.67 | 207.35 | 203.5 | 204.5 | 20253782.0 | 243.988 | 220.713 | 197.438 | 0 | 0 | 1 |
| 98 | 206.3 | 208.49 | 202.45 | 203.66 | 21848959.0 | 242.088 | 219.021 | 195.954 | 0 | 0 | 1 |
| 99 | 204.0 | 206.5 | 202.58 | 203.03 | 15809524.0 | 239.94 | 217.345 | 194.75 | 0 | 0 | 1 |
+----+--------+--------+--------+--------+------------+---------+---------+---------+-----+-------+-------+
请按任意键继续. . .
通过运行结果可以看出,确实可以生成买卖信号,而且也可以及时止损。当然这也还只是个片段。量化交易还需要结合资金和持仓情况才可以进行买卖操作。
总结
通过演示和运行测试,可以看出,使用AI已可以辅助我们书写策略代码,但代码仍有优化的空间。之前还测试过一些AI写出的代码,还需要进行debug。不过至少AI给我们提供了一些将文字策略转变为代码的思路,再结合各种量化交易API就可以进行模拟测试了。
如果要进行实盘,大家还是要谨慎再谨慎,毕竟真金白银可不是闹着玩的额,AI可不承担损失!
还是那句话:入市有风险,交易需谨慎!
相关文章:
【大麦小米学量化】使用文心一言AI编写股票量化交易策略代码(含演示代码和进阶演示)
文章目录 AI是个宝前言一、文心一言是什么?二、让AI根据策略写出代码1. 策略提示词2. AI给出的策略代码及说明 三、进阶调试总结 AI是个宝 小米听说百度开放了文心一言AI,好奇的跑去问大麦:“文心一言都放开了,什么代码都可以写&a…...
软考 系统架构设计师系列知识点之软件架构风格(1)
这个十一注定是一个不能放松、保持“紧”的十一。由于报名了全国计算机技术与软件专业技术资格(水平)考试,11月4号就要考试,因此8天长假绝不能荒废,必须要好好利用起来。现在将各个核心知识点一一进行提炼并做记录。 所…...
轮询与中断
中断控制器 #include"exynos_4412.h"int main() {/*产生一个中断信号*//*1.属于外设层次,让外部的硬件控制器能产生一个中断信号并发送给中断控制器*//*将GPX1_1设置成中断功能*/GPX1.CON GPX1.CON |( 0xF << 4);/*设置GPX1_1中断的触发方式---下降…...
使用docker完成minio服务部署扩容备份迁移生产实践文档
一、minio服务扩容方案 当服务器存储空间不足的时候,需要进行扩容,扩容过程中需要短暂停机时间,预计在一小时内能够完成和恢复 统一注意事项 强烈建议为部署中的所有节点选择基本相似的硬件配置。确保硬件(CPU、内存、主板、存…...
管道-有名管道
一、有名管道 有名管道与匿名管道的不同: 有名管道提供了一个路径名,并以FIFO的文件形式存在于文件系统中。与匿名管道不同,有名管道可以被不相关的进程使用,只要它们可以访问该路径,就能够通过有名管道进行通信。 FI…...
谷歌注册手机号码无法验证
1. 打开设置,在语言中点击添加语言搜索English并添加 2. 点击添加后把首选语言换成英语 3. 然后重启浏览器,这时候浏览器就是英文了,最后打开注册页面就能接收短信了...
C语言编译与链接过程详解
C语言编译与链接过程详解 源文件 main.c #include <stdio.h>extern int data; extern int add(int a,int b);int a1; int a2 0; int a3 10;static int b1; static int b2 0; static int b3 20;int main() {int c1;int c2 0;int c3 30;static int d1;static int …...
Qt信号和槽 定时器
文章目录 1 信号和槽1.1 信号和槽的概念1.2 信号和槽的应用1.3 信号和槽的连接1.4 信号和槽的特性1.5 生活中的类似例子1.6 信号和槽的优势 2 信号和槽的使用2.1 控件的信号和槽2.2 自定义信号和槽2.3 信号和槽的参数传递 3 定时器3.1 QTimer类的基本使用3.2 QTimer类的成员函数…...
zemax对称式目镜
两个几乎对称的双胶合透镜相对放置,可以达到25度的半视场 为了加工方便,这两个透镜组采用相同的结构 对称式目镜要求各组透镜自行校正色差,这样倍率色差也随之而校正。 它还能校正两种像差,慧差和象散。 对称目镜的结构更紧&…...
层次架构、面向服务架构(四十四)
层次架构设计 表现层、中间层、数据访问层、数据架构规划、物联网层次架构、层次式架构案例分析。 层次结构缺点就是效率问题,上一层调用下一层。 1、着重写中间层 组件设计:面向接口编程,分为接口和实现类。 实体设计:实体表…...
Ubuntu22无法自动进入lightdm图像界面
问题:Ubuntu22无法自动进入lightdm图像界面,必须手动运行 lightdm start解决方案: 方案一: 运行一个终端输入 cat /etc/X11/default-display-manager /etc/init/lightdm.conf不接受lightdm作为设置,但是,/…...
01BFS最短距离的原理和C++实现
时间复杂度 O(n),n是边数。 使用前提 边的权只有两种:0,1。 典型场景 n个端点的无向图,编号范围[0,n)。Edges0表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间有路联接。Edges1表示{{n1,n2},...{n3,n4}}表示n1和n2,n3和n4之间…...
【洛谷 P5266】【深基17.例6】学籍管理 题解(映射+分支)
【深基17.例6】学籍管理 题目描述 您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 1 0 5 10^5 105 条): 插入与修改,格式1 NAME SCORE:在系统中插入姓…...
10.03
代码 #include <iostream>using namespace std; class cz { private:int num1; //实部int num2; //虚部 public:cz(){}cz(int a,int b):num1(a),num2(b){}cz(const cz &other):num1(other.num1),num2(other.num2){}~cz(){}const cz operator(const cz &othe…...
链表单向链表跳跃链表
单向链表 link list t数组的局限:编译期就需要知道大小; 内存连续,插入困难 // 链表节点类 包含一个信息 和指向下一个 节点的指针clas IntLLNode{public:IntLLNode(){// 默认构造函数 没有info信息nextPtr_ 0;// 空指针}IntLLNode(int …...
博客无限滚动加载(html、css、js)实现
介绍 这是一个简单实现了类似博客瀑布流加载功能的页面,使用html、css、js实现。简单易懂,值得学习借鉴。👍 演示地址:https://i_dog.gitee.io/easy-web-projects/infinite_scroll_blog/index.html 代码 index.html <!DOCT…...
腾讯云南京服务器性能如何?南京服务器测速IP地址
腾讯云服务器南京地域怎么样?南京地域很不错,正好处于中间的位置,南方北方用户均可以选择,网络延迟更低速度更快,并且目前南京地域有活动,南京地域可用区可选南京一区、南京二区和南京三区,腾讯…...
MySQL和Oracle中,语法的不同点以及如何在xml中书写日期比较大小
众所周知mysql和oracle的语法有点相识,又有点不同。 在MySQL和Oracle中,语法的不同点有以下几个方面: 数据类型:MySQL和Oracle支持的数据类型有所不同,比如MySQL支持的数据类型包括:整型、浮点型、字符型、…...
谈谈Redis分布式锁
目录 一、回顾分布式锁 (一)理解分布式锁的定义 (二)分布式锁的约束条件 (三)分布式锁常见实现方式 基于数据库的分布式锁 基于缓存的分布式锁 基于分布式一致性算法的分布式锁 基于文件系统的分布…...
Redis的java客户端-RedisTemplate光速入门
一.创建springboot项目 二.引入2个依赖 <!-- redis依赖-->这个已经引入了,因为创建的时候勾选了<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><…...
Docker 离线安装指南
参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
uniapp 开发ios, xcode 提交app store connect 和 testflight内测
uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
实战设计模式之模板方法模式
概述 模板方法模式定义了一个操作中的算法骨架,并将某些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的前提下,重新定义算法中的某些步骤。简单来说,就是在一个方法中定义了要执行的步骤顺序或算法框架,但允许子类…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
