怎么使用Python判断牛熊
小编给大家分享一下怎么使用Python判断牛熊,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
创建牛市和熊市实力指数
上古雷指数MEAs数字购销压力量和两个柱状图,其中一个就是所谓的多头力量和其他的空头力量的。直方图是根据以下公式计算的:
EMA变量指的是指数移动平均线,它是一种移动平均线,将更多的权重放在最近的值上。
可以使用以下功能来计算指数移动平均值:
defma(Data,lookback,what,where):foriinrange(len(Data)):try:Data[i,where]=(Data[i-lookback+1:i+1,what].mean())exceptIndexError:passreturnDatadefema(Data,alpha,lookback,what,where):#alphaisthesmoothingfactor#windowisthelookbackperiod#whatisthecolumnthatneedstohaveitsaveragecalculated#whereiswheretoputtheexponentialmovingaveragealpha=alpha/(lookback+1.0)beta=1-alpha#FirstvalueisasimpleSMAData=ma(Data,lookback,what,where)#CalculatingfirstEMAData[lookback+1,where]=(Data[lookback+1,what]*alpha)+(Data[lookback,where]*beta)#CalculatingtherestofEMAforiinrange(lookback+2,len(Data)):try:Data[i,where]=(Data[i,what]*alpha)+(Data[i-1,where]*beta)exceptIndexError:passreturnData
第一个面板中的EURUSD和50周期的牛熊指标
上面显示了EURUSD每小时数据,第二个面板中有50个周期的牛熊指标。在继续执行指标代码之前,我们必须编写两个简单的函数:
defdeleter(Data,index,times):foriinrange(1,times+1):Data=np.delete(Data,index,axis=1)returnDatadefjump(Data,jump):Data=Data[jump:,]returnData
现在,我们准备好代码了。记住要准备好OHLC阵列。
defbull_bear_power(Data,lookback,what,high,low,where):#AddingtherequiredcolumnsData=adder(Data,3)#CalculatingtheexponentialmovingaverageData=ema(Data,2,lookback,what,where)#CalculatingtheBullPowerData[:,where+1]=Data[:,high]-Data[:,where]#CalculatingtheBearPowerData[:,where+2]=Data[:,where]-Data[:,low]#DeletinginitialemptyrowsData=jump(Data,lookback)returnData
USDCHF位于第一个面板中,并且是50周期的牛熊指标。
要对上面的图表进行编码,我们可以使用以下函数:
defindicator_plot_double_bull_bear(Data,name='',name_ind='',window=250):fig,ax=plt.subplots(2,figsize=(10,5))Chosen=Data[-window:,]foriinrange(len(Chosen)):ax[0].vlines(x=i,ymin=Chosen[i,2],ymax=Chosen[i,1],color='black',linewidth=1)ax[0].grid()foriinrange(len(Chosen)):ax[1].vlines(x=i,ymin=0,ymax=Chosen[i,6],color='green',linewidth=1)ax[1].vlines(x=i,ymin=Chosen[i,7],ymax=0,color='red',linewidth=1)ax[1].grid()ax[1].axhline(y=0,color='black',linewidth=0.5,linestyle='--')#Theabovecodeconsiderscolumns6and7toinhibitBullPowerandBearPowerrespectively.
回测简单策略
与任何适当的研究方法一样,其目的是对指标进行回测,并能够自己查看是否值得将其作为我们先前存在的交易框架的补充。请注意,以下内容仅对过去10年中仅对10个货币对的一个时间范围进行回测。这可能不是该策略的最佳时限,但我们只是试图找到一种“一刀切”的“几乎适合所有人”的策略。
条件已简化,我们将基于主观障碍使用逆势方法:
当牛市力量指标达到-0.001并且前两个值大于0.001时,做多(买入)。保持该位置,直到收到新信号(该位置已关闭)。
每当熊市力量指标达到0.001(前两个值均低于0.001)时,做空(卖出)。保持该位置,直到收到新信号(该位置已关闭)。
欧元兑美元的信号图。
defsignal(Data,bull_power,bear_power,buy,sell):foriinrange(len(Data)):ifData[i,bull_power]<lower_barrierandData[i-1,bull_power]>lower_barrier:Data[i,buy]=1ifData[i,bear_power]<lower_barrierandData[i-1,bear_power]>lower_barrier:Data[i,sell]=-1
USDCHF上的信号图
根据自2010年以来按小时数据散布的0.5个基点得出的结果,并且没有采用风险管理算法,得出的结果如下。
效果表
遵循该策略的股权曲线
显然,该指标并没有增加价值。尝试优化甚至更改与之相关的策略可能会更好。我们可能可以添加一些熊市条件来验证看涨信号,并添加一些牛市条件来验证看跌信号。
我们还可以相应地调整回溯和障碍。我们可以做的最后一件事是将策略从逆势转变为遵循趋势。
结论
记住要经常做背部测试。即使我提供了指标的功能(而不只是吹牛说它是圣杯,并且它的功能是秘密),您也应该始终相信其他人是错误的。我的指标和交易风格对我有用,但可能并非对每个人都适用。我依靠以下规则:
市场价格在超过50%的时间内无法预测或很难预测。但是市场反应是可以预测的。
意思是,我们可以在一个区域周围形成一个小区域,并可以确信地说市场价格将对该区域周围的区域产生反应。但是我们不能真正说它会从那里下跌4%,然后再次测试,并在第三次尝试跌至103.85美元时突破。由于我们预测过度,因此误差项呈指数级增长。
以上是“怎么使用Python判断牛熊”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...