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(Tornado)模拟登录小米抢手机
Nov 12 Python
python写的一个文本编辑器
Jan 23 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
Pandas标记删除重复记录的方法
Apr 08 Python
tensorflow 打印内存中的变量方法
Jul 30 Python
Python根据成绩分析系统浅析
Feb 11 Python
简单了解django处理跨域请求最佳解决方案
Mar 25 Python
python读取配置文件方式(ini、yaml、xml)
Apr 09 Python
Python Excel vlookup函数实现过程解析
Jun 22 Python
单身狗福利?Python爬取某婚恋网征婚数据
Jun 03 Python
Pytorch中使用ImageFolder读取数据集时忽略特定文件
Mar 23 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 Socket 编程模拟Http post和get请求
2014/11/25 PHP
PHP连接SQLServer2005的方法
2015/01/27 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
Laravel中获取路由参数Route Parameters的五种方法示例
2017/09/29 PHP
JavaScript入门学习书籍推荐
2008/06/12 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
imgAreaSelect 中文文档帮助说明
2011/10/08 Javascript
Extjs单独定义各组件的实例代码
2013/06/25 Javascript
js opener的使用详解
2014/01/11 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
jQuery选择器源码解读(一):Sizzle方法
2015/03/31 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
jquery弹出框插件jquery.ui.dialog用法分析
2016/08/20 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
使用Vue开发动态刷新Echarts组件的教程详解
2018/03/22 Javascript
详解使用create-react-app添加css modules、sasss和antd
2018/07/31 Javascript
vue 实现小程序或商品秒杀倒计时
2019/04/14 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
Python 正则表达式实现计算器功能
2017/04/29 Python
python xlsxwriter创建excel图表的方法
2018/06/11 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
html5的canvas元素使用方法介绍(画矩形、画折线、圆形)
2014/04/14 HTML / CSS
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
PHP如何删除一个Cookie值
2012/11/15 面试题
毕业设计致谢语
2015/05/14 职场文书
思想品德课教学反思
2016/02/24 职场文书
2016年大学生暑期社会实践活动总结
2016/04/06 职场文书
Golang 使用Map实现去重与set的功能操作
2021/04/29 Golang
详解CSS故障艺术
2021/05/25 HTML / CSS
mysql insert 存在即不插入语法说明
2022/03/25 MySQL
DE1107机评
2022/04/05 无线电