ma系列之-21-bash 函数 函数调用 函数返回值

 

 

0 结构化编程,不能独立运行,需要调用时执行,可以被多次调用,

调用函数:
直接使用函数名即可。

 

1 定义方式:

 

方式1:
function FUNCNAME {
  command
}
方式2:
FUNCNAME() {
  command
}

 

2 自定义函数返回值:

 

return #
返回值在0-255之间,只要return,函数必然会退出

 

和$?的区别:

$? 的返回值会看脚本中最后一样命令的执行结果,如果你定义一个函数,函数中各种报错,但是最后一行 echo 11,那么 echo $?返回的结果肯定为0。

 

而 return # 是自定义返回值。

 

3 案例:

 

eg1:
#!/bin/bash
#
TWOSUM() {
echo ${$1+$2}
}
SUM=`TWOSUM 1 2`   给函数传递参数并执行
echo $SUM

eg2:
#!/bin/bash
#
ADDUSER() {
USERNAME=hadoop
	if !id -u $USERNAME &> /dev/null; then
	useradd $USERNAME
	echo $USERNAME | passwd --stdin $USERNAME &> /dev/null
	return 0    定义函数返回值
	else
	return 1
	fi
}

ADDUSER   调用此函数
if [$? -eq 0]; then  输出上一行执行的状态位
	echo "add user finished"
else 	
	echo "failuer"
fi	

eg3:
#!/bin/bash
#
ADDUSER() {
USERNAME=$1
	if !id -u $USERNAME &> /dev/null; then
	useradd $USERNAME
	echo $USERNAME | passwd --stdin $USERNAME &> /dev/null
	return 0    
	else
	return 1
	fi
}

for I in {1..10}; do
ADDUSER user$I 
if [$? -eq 0]; then  
	echo "add user$I finished"
else 	
	echo "add user$I failuer"
fi	
done

 

 

 

 

 

### 使用TA-Lib进行股市技术分析 #### 安装与配置 为了使用TA-Lib,需先完成其安装。对于Python环境而言,可以通过pip命令轻松实现这一过程: ```bash pip install TA-Lib ``` 确保环境中已正确安装numpy和其他依赖项[^3]。 #### 基本概念介绍 TA-Lib提供了超过150种用于金融市场数据分析的功能函数,这些功能覆盖了常见的技术指标如移动平均线(MA),相对强弱指数(RSI),平滑异同移动平均线(MACD)等。这使得开发者能够方便快捷地构建复杂的技术分析模型[^1]。 #### 数据准备 在应用任何技术指标之前,获取高质量的历史行情数据至关重要。通常可以从Yahoo Finance或其他可靠的数据源下载CSV文件并加载到pandas DataFrame中以便后续处理: ```python import pandas as pd from datetime import datetime import yfinance as yf ticker = 'AAPL' start_date = datetime(2022, 1, 1) end_date = datetime.now() data = yf.download(ticker, start=start_date, end=end_date) print(data.head()) ``` 这段代码展示了如何利用`yfinance`库来抓取苹果公司(AAPL)在过去一段时间内的每日收盘价记录。 #### 技术指标计算 一旦拥有了适当格式化的时间序列数据集之后就可以调用相应的方法来进行各种类型的计算操作了。以下是几个典型例子说明怎样运用特定的技术指标辅助决策制定过程: ##### 计算简单移动平均(SMA) SMA是最基础也是最常用的均线之一,在这里我们将展示如何求解不同周期长度下的SMA值: ```python import talib.abstract as ta sma_7d = ta.SMA(data['Close'], timeperiod=7).dropna() sma_30d = ta.SMA(data['Close'], timeperiod=30).dropna() print(sma_7d.tail(), sma_30d.tail()) ``` 上述脚本分别计算了最近几天内股价相对于过去一周和一个月的变化趋势。 ##### 应用布林带(Bollinger Bands) 布林带由三条轨道组成——上轨、下轨及中间的一条标准差加减两倍的标准偏差形成的区间范围。它可以帮助识别潜在的价格波动区域从而指导买卖时机的选择: ```python upperband, middleband, lowerband = ta.BBANDS( data['Adj Close'], timeperiod=20, nbdevup=2, nbdevdn=2, matype=0 ) bollinger_bands_df = pd.DataFrame({ "Upper Band": upperband.dropna(), "Middle Band": middleband.dropna(), "Lower Band": lowerband.dropna() }) print(bollinger_bands_df.tail()) ``` 此部分实现了对调整后收盘价执行BBANDS算法,并将结果整理成一个新的DataFrame对象供进一步可视化或统计检验所用。 #### 可视化呈现 最后一步就是把得到的结果直观地展现出来。借助matplotlib这样的绘图工具包可以很容易做到这一点: ```python import matplotlib.pyplot as plt plt.figure(figsize=(14,8)) plt.plot(data.index[-len(middleband):], bollinger_bands_df["Upper Band"], color='red', label="Upper BBand") plt.plot(data.index[-len(middleband):], bollinger_bands_df["Middle Band"], color='blue', linestyle="--", linewidth=.5, label="Midline (SMA)") plt.plot(data.index[-len(middleband):], bollinger_bands_df["Lower Band"], color='green', label="Lower BBand") # Plot actual closing prices on top of Bollinger bands plt.scatter(data.index[-len(lowerband):][::5], data['Adj Close'][-len(lowerband):][::5], marker='o', alpha=.6, s=20, c='black') plt.title('Bollinger Bands Visualization') plt.legend(loc='best') plt.show() ``` 以上代码片段创建了一个图表窗口用来显示布林带上界、中位数(即短期均值)、下限以及实际成交价位点的位置关系。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值