python 瀑布线指标编写实例


Posted in Python onJune 03, 2020

我就废话不多说了,大家还是直接看代码吧!

# -*- coding: utf-8 -*-
"""
Created on Tue May 23 08:57:02 2017
@author: yunjinqi 
 
E-mail:yunjinqi@qq.com 
 
Differentiate yourself in the world from anyone else.
"""
import pandas as pd
import numpy as np
import datetime
import time
#获取数据
df=pd.read_csv('C:/Users/HXWD/Desktop/000001.csv',encoding='gbk')
df.columns=['date','code','name','close','high','low','open','preclose',
'change','change_per','volume','amt']
df=df[['date','open','high','low','close','volume','amt']]
df.head()
def get_EMA(df,N):
 for i in range(len(df)):
 if i==0:
  df.ix[i,'ema']=df.ix[i,'close']
 if i>0:
  df.ix[i,'ema']=(2*df.ix[i-1,'close']+(N-1)*df.ix[i,'close'])/(N+1)
 
 return df['ema']
def get_PBX(df):
 df['a1']=(get_EMA(df,4)+df['close'].rolling(8).mean()+
  df['close'].rolling(16).mean())/3
 df['a2']=(get_EMA(df,6)+df['close'].rolling(12).mean()+
  df['close'].rolling(24).mean())/3
 df['a3']=(get_EMA(df,9)+df['close'].rolling(18).mean()+
  df['close'].rolling(36).mean())/3
 df['a4']=(get_EMA(df,13)+df['close'].rolling(26).mean()+
  df['close'].rolling(52).mean())/3
 df['a5']=(get_EMA(df,18)+df['close'].rolling(36).mean()+
  df['close'].rolling(72).mean())/3
 df['a6']=(get_EMA(df,24)+df['close'].rolling(48).mean()+
  df['close'].rolling(96).mean())/3
 return df
get_PBX(df)
df.tail() 
 
'''
瀑布线
原理:均线类指标
用法:
瀑布线是趋势性指标,因其在运行的过程中,形态与瀑布极其相似,故得名为瀑布线。
 瀑布线在低位粘合,短线瀑布线向上穿越长线瀑布线并向上发散,买入。
 瀑布线在高位粘合,短线瀑布线向下穿越长线瀑布线并向下发散,卖出。
 当长中短期瀑布线依次由下向上排列形成多头排列时,可持股。
 当长中短期瀑布线依次由上向下排列形成空头排列时,应空仓。 
'''

补充知识:Python使用逻辑运算符and、or、nor判断整数正负

今天刷Leetcode的时候,对整数进行翻转,由于Python的除法是向下取整,因此要对输入整数进行正负的判断,当时想到的是使用三目运算,但是看参考答案的时候,发现使用的是逻辑运算符进行正负数的判断,当时一脸懵逼,经过查找相关资料理解了原理,故此做个记录。

答案代码如图所示:

sign = x<0 and -1 or 1

其中x为输入整数,如果x为正数返回1,如果为负数返回-1。

由于最开始接触的C语言,学习Python的时候就没有太在意逻辑运算符,以为跟C语言一样返回的是一个布尔值,不知道为何会返回1和-1,查了相关资料发现Python中逻辑运算原理如下:

x and y 布尔"与" - 如果 x 为 False,x and y 返回 False,否则它返回 y 的计算值。
x or y 布尔"或" - 如果 x 是 True,它返回 x 的值,否则它返回 y 的计算值。
not x 布尔"非" - 如果 x 为 True,返回 False 。如果 x 为 False,它返回 True。

当输入为一个负数时,运算过程如下所示:

>>> -123<0
 True
 >>> True and -1
 -1
 >>> -1 or 1
 -1

首先判断-123<0,返回True,此时True与-1进行与运算,x为真,返回y的值为-1;然后-1与1进行或运算,由于非零整数都是为False,此时返回x的值-1。

当输入为一个正数时,运算过程如下所示:

>>> 123<0
False
>>> False and -1
False
>>> False or 1
1

首先判断123<0,返回False,此时False与-1进行与运算,x为假,返回False,然后False与1进行或运算,由于x为假,此时返回y的值1。

总而言之,使用Python中的逻辑运算符返回的并不是非False即True,而与输入x,y相关。

另外判断输入整数的正负还可以使用三目运算,如下所示:

sign = 1 if x>0 else -1

另附对整数实现翻转完整代码:

class Solution(object):
 def reverse(self, x):
 """
 :type x: int
 :rtype: int
 """
 a = 0
 sign = x<0 and -1 or 1
 x = abs(x)
 while(x != 0):
  a = a*10 + x%10
  x //=10
 return a*sign if a<2**31 else 0

以上这篇python 瀑布线指标编写实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python登陆asp网站页面的实现代码
Jan 14 Python
详解Python当中的字符串和编码
Apr 25 Python
12步入门Python中的decorator装饰器使用方法
Jun 20 Python
使用python实现BLAST
Feb 12 Python
对Python中for复合语句的使用示例讲解
Nov 01 Python
python http基本验证方法
Dec 26 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
Python:Numpy 求平均向量的实例
Jun 29 Python
Python PyQt5 Pycharm 环境搭建及配置详解(图文教程)
Jul 16 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
Apr 03 Python
python 爬虫网页登陆的简单实现
Nov 30 Python
python中if嵌套命令实例讲解
Feb 25 Python
Django微信小程序后台开发教程的实现
Jun 03 #Python
python判断正负数方式
Jun 03 #Python
Python绘制动态水球图过程详解
Jun 03 #Python
解决numpy矩阵相减出现的负值自动转正值的问题
Jun 03 #Python
Django DRF路由与扩展功能的实现
Jun 03 #Python
Django中使用Json返回数据的实现方法
Jun 03 #Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 #Python
You might like
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
关于php正则匹配汉字的方法介绍
2013/04/25 PHP
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
php字符串截取的简单方法
2013/07/04 PHP
javascript+php实现根据用户时区显示当地时间的方法
2015/03/11 PHP
php版微信返回用户text输入的方法
2016/11/14 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
PHP加MySQL消息队列深入理解
2021/02/27 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
js单例模式的两种方案
2013/10/22 Javascript
JS设置网页图片vspace和hspace属性的方法
2015/04/01 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
React Native 截屏组件的示例代码
2017/12/06 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
在django中实现页面倒数几秒后自动跳转的例子
2019/08/16 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
非常详细的C#面试题集
2016/07/13 面试题
linux面试题参考答案(2)
2015/12/06 面试题
应届生求职推荐信
2013/10/28 职场文书
委托公证书范本
2014/04/03 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
2015出纳试用期工作总结
2014/12/12 职场文书
2015年女工委工作总结
2015/07/27 职场文书
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript