gpt4 book ai didi

java - 确定支撑/阻力水平和趋势线

转载 作者:行者123 更新时间:2023-12-01 17:43:21 25 4
gpt4 key购买 nike

我不需要代码,只需要如何执行此操作的逻辑。 Example of S/R levels and a trendline

我知道每个人的 s/r 水平不同,因此我附上了一张图表来显示我用来考虑支撑/阻力水平或趋势线的标准。

  • S/R 级别必须有超过 2 次触球,如果超出符合此标准,则触地次数最多的触球次数为有效触球次数,阻力也是如此。

  • 趋势线必须接触 3 次才有效。

所有行都有边距误差,因为这些行可能会延长。当然,一旦支撑线被突破,它就会变成阻力线。

我尝试获取一组最小值,然后查看其他条是否落入这些值的特定范围内,但它不够准确!

最佳答案

下面是供您开始的内容。强调“开始”,因为它不能直接回答您的问题。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

模拟数据。

np.random.seed(42)
mu = 0.03
ret = mu+np.random.randn(500)
price = 1+np.cumsum(ret)

首先寻找支持,使用移动平均值消除信号中的噪声。按支撑值进行偏移,然后查找偏移值为零的位置,即接触支撑线的位置。

def get_support_line(df,days=100):
df['price_ma']=df['price'].rolling(5).mean()
df = df.dropna()
supports={}

for x in np.arange(0,len(df)-days,10):
price_tmp = df.iloc[x:x+days]['price_ma'].values
# offset signal by support value, loc crossing 0 will be support.
support_val = price_tmp[-1]
norm = price_tmp-support_val
lim = 0.05 # hack to find intersect with support line with tolerance
signal = np.logical_and(norm<lim,norm>-1*lim).astype(np.int)
inds = np.where(np.diff(signal)>0)[0]
if np.sum(signal)>3:
supports[x+days]={
'x':inds+x,
'y':support_val*np.ones(inds.shape)
}
return df, supports

df = pd.DataFrame()
df['price']=price
df, supports = get_support_line(df)

绘制验证逻辑的图。您现在应该开始根据您的“喜好”调整免费参数和逻辑。

df.plot(figsize=(10,5))
for k,v in supports.items():
print('support identified at days prior index',k,'value: {:1.2f}'.format(v['y'][0]),'touch inds:',v['x'])
plt.plot([v['x'][0],v['x'][-1]],[v['y'][0],v['y'][-1]],color='red')
plt.grid(True)

enter image description here

我不相信技术分析,但我认为这是一个有趣的问题,从实现角度来看!那里应该有很多图书馆。因此,请务必进行谷歌搜索,然后回来分享您的解决方案和发现。

关于java - 确定支撑/阻力水平和趋势线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60907480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com