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 相关文章推荐
高性能web服务器框架Tornado简单实现restful接口及开发实例
Jul 16 Python
python连接oracle数据库实例
Oct 17 Python
python 3.0 模拟用户登录功能并实现三次错误锁定
Nov 01 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
Jun 27 Python
djang常用查询SQL语句的使用代码
Feb 15 Python
python将类似json的数据存储到MySQL中的实例
Jul 12 Python
对python中UDP,socket的使用详解
Aug 22 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
Pytest allure 命令行参数的使用
Apr 18 Python
浅谈pytorch中的dropout的概率p
May 27 Python
Python使用永中文档转换服务
May 06 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中常用的预定义变量小结
2012/05/09 PHP
php输入流php://input使用示例(php发送图片流到服务器)
2013/12/25 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
jquery如何通过name名称获取当前name的value值
2013/12/20 Javascript
jQuery实现的左右移动焦点图效果
2016/01/14 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
bootstrap table之通用方法( 时间控件,导出,动态下拉框, 表单验证 ,选中与获取信息)代码分享
2017/01/24 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
js实现日历
2020/11/07 Javascript
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
Django admin.py 在修改/添加表单界面显示额外字段的方法
2019/08/22 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
2020/07/20 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
荟萃全球保健品:维他购
2018/05/09 全球购物
加拿大在线旅游公司:Flighthub
2019/03/11 全球购物
全球领先的在线cosplay服装商店:RoleCosplay
2020/01/18 全球购物
莫斯科制造商的廉价皮大衣:Fursk
2020/06/09 全球购物
哪些情况下不应该使用索引
2015/07/20 面试题
五四演讲稿范文
2014/09/03 职场文书
会计试用期自我评价
2014/09/19 职场文书
党员民主评议个人总结
2014/10/20 职场文书
实习工作表现评语
2014/12/31 职场文书
青年教师个人总结
2015/02/11 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers