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实现全局变量的两个解决方法
Jul 03 Python
通过Python实现自动填写调查问卷
Sep 06 Python
python实现机器学习之元线性回归
Sep 06 Python
Python使用selenium + headless chrome获取网页内容的方法示例
Oct 16 Python
windows python3安装Jupyter Notebooks教程
Apr 13 Python
浅谈tensorflow模型保存为pb的各种姿势
May 25 Python
Python 私有属性和私有方法应用场景分析
Jun 19 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
python爬虫用scrapy获取影片的实例分析
Nov 23 Python
python之随机数函数的实现示例
Dec 30 Python
如何用Python提取10000份log中的产品信息
Jan 14 Python
Python列表删除重复元素与图像相似度判断及删除实例代码
May 07 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
ajax实现无刷新分页(php)
2010/07/18 PHP
ThinkPHP3.2.2的插件控制器功能
2015/03/05 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
php5.2的curl-bug 服务器被php进程卡死问题排查
2016/09/19 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
2020/05/12 PHP
JavaScript 学习小结(适合新手参考)
2009/07/30 Javascript
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
JavaScript获得页面base标签中url的方法
2015/04/03 Javascript
个人网站留言页面(前端jQuery编写、后台php读写MySQL)
2016/05/03 Javascript
JS Attribute属性操作详解
2016/05/19 Javascript
在Javascript操作JSON对象,增加 删除 修改的简单实现
2016/06/02 Javascript
bootstrap组件之按钮式下拉菜单小结
2017/01/19 Javascript
详解前端构建工具gulpjs的使用介绍及技巧
2017/01/19 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
JS运算符优先级与表达式示例详解
2020/09/04 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
python批量下载图片的三种方法
2013/04/22 Python
python实现嵌套列表平铺的两种方法
2018/11/08 Python
Django admin管理工具TabularInline类用法详解
2020/05/14 Python
Python脚本打包成可执行文件过程解析
2020/10/20 Python
Html5 Canvas 实现一个“刮刮乐”游戏
2019/09/05 HTML / CSS
朗仕(Lab series)英国官网:雅诗兰黛集团男士专属护肤品牌
2017/11/28 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
西部世纪面试题
2014/12/05 面试题
经典婚礼主持开场白
2014/03/13 职场文书
春节联欢会策划方案
2014/05/16 职场文书
摄影展策划方案
2014/06/02 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
2014年敬老院工作总结
2014/12/08 职场文书
与死神共舞观后感
2015/06/15 职场文书
2015年学校管理工作总结
2015/07/20 职场文书
2016年六一文艺汇演开幕词
2016/03/04 职场文书
详解Django中 render() 函数的使用方法
2021/04/22 Python
vue实现简易音乐播放器
2022/08/14 Vue.js