W%R
定义
public static IEnumerable<WilliamsResult> GetWilliamsR<TQuote>(this IEnumerable<TQuote> quotes, int lookbackPeriods = 14) where TQuote : IQuote
描述
W%R(Williams Percent Range),由 Larry Williams 创立,是一个动量振荡指标,用于衡量价格在特定周期内相对于最高价和最低价的相对位置,从而判断市场的超买超卖状态。
参数
| 参数名 |
类型 |
描述 |
| lookbackPeriods |
Int |
回顾周期 |
返回值
| 返回值 |
类型 |
描述 |
| Date |
DateTime |
日期 |
| WilliamsR |
double |
威廉指标值。范围在 0 到 -100 之间 |
///指标数据
QuoteHistoryDay(10, (dic) =>
{
if (dic.Count > 0)
{
foreach (var item in dic.Keys)
{
///获取指标结果
var resp = dic[item].GetWilliamsR(14);
Console.WriteLine(resp.ToJson());
}
}
});
def init(self):
#初始化T+1 取消时间为120秒
self.SetConfig(1,120)
self.art = {}
self.invested = {}
logger.info("进入MyTestAlgorithm init方法:")
#添加单个指数 分钟为Resolution.Minute
self.index300 = self.AddIndex("000300.XSHG", Resolution.Daily).symbol
#添加指数下的所有 分钟为Resolution.Minute
stock_list=self.FillStocks(["000001.XSHE","000004.XSHE"],"",Resolution.Daily)
self.set_benchmark(self.index300)
# 方法1:使用Indicator基类创建威廉%R指标
from QuantConnect.Indicators import WilliamsPercentR
self.williams_r = WilliamsPercentR(14) # 周期参数为14
# 将指标注册到数据流,使其自动更新
self.RegisterIndicator(stock_list[0].symbol, self.williams_r, Resolution.Daily)
#数据来了触发事件
def ondata(self,slice):
logger.info(fr"Symbol:{self.Time} ")
# 获取当前值
#检查指标是否准备就绪
if not self.williams_r.IsReady:
return
# 获取当前威廉%R值
current_williams_r = self.williams_r.Current.Value
logger.info(fr"current_wms:{current_williams_r} ")