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显示天气预报
Mar 02 Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 Python
Django中使用group_by的方法
May 26 Python
浅析Python3爬虫登录模拟
Feb 07 Python
Flask框架Flask-Login用法分析
Jul 23 Python
关于Python-faker的函数效果一览
Nov 28 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
Python networkx包的实现
Feb 14 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
Apr 29 Python
使用keras实现非线性回归(两种加激活函数的方式)
Jul 05 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
Nov 28 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自动加载机制的深入分析
2013/06/08 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
javascript call方法使用说明
2010/01/11 Javascript
javascript,jquery闭包概念分析
2010/06/19 Javascript
jquery必须知道的一些常用特效方法及使用示例(整理)
2013/06/24 Javascript
javascript使用location.search的示例
2013/11/05 Javascript
当前流行的JavaScript代码风格指南
2014/09/10 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
vue.js使用3DES加密的方法示例
2018/05/18 Javascript
微信小程序如何再次获取用户授权的方法
2019/05/10 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
JavaScript事件循环及宏任务微任务原理解析
2020/09/02 Javascript
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
python实现ftp客户端示例分享
2014/02/17 Python
跟老齐学Python之类的细节
2014/10/13 Python
Python实现子类调用父类的方法
2014/11/10 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
对Python _取log的几种方式小结
2019/07/25 Python
Python grequests模块使用场景及代码实例
2020/08/10 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
css3的过滤效果简单实例
2016/08/03 HTML / CSS
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
C#软件工程师英语面试题
2015/06/07 面试题
你们项目是如何进行变更控制的
2015/08/26 面试题
文明礼貌演讲稿
2014/05/12 职场文书
物业消防安全责任书
2014/07/23 职场文书
学生会竞选演讲稿怎么写
2014/08/26 职场文书
2014年乡镇团委工作总结
2014/12/18 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
PHP基本语法
2021/03/31 PHP
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js