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程序员
Jun 12 Python
微信 用脚本查看是否被微信好友删除
Oct 28 Python
基于python 字符编码的理解
Sep 02 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
CentOS 7下安装Python3.6 及遇到的问题小结
Nov 08 Python
Python实现二维曲线拟合的方法
Dec 29 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
PyCharm使用之配置SSH Interpreter的方法步骤
Dec 26 Python
Anconda环境下Vscode安装Python的方法详解
Mar 29 Python
Python lambda表达式原理及用法解析
Aug 18 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 Python
Python趣味挑战之用pygame实现简单的金币旋转效果
May 31 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把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
PHP读取文件内容的五种方式
2015/12/28 PHP
Javascript 原型和继承(Prototypes and Inheritance)
2009/04/01 Javascript
jquery实现兼容浏览器的图片上传本地预览功能
2013/10/14 Javascript
.NET微信公众号开发之创建自定义菜单
2015/07/16 Javascript
基于jQuery实现Accordion手风琴自定义插件
2020/10/13 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
小程序按钮避免多次调用接口和点击方案实现(不用showLoading)
2020/04/15 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
Vue父子组件传值的一些坑
2020/09/16 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
python模拟登录百度贴吧(百度贴吧登录)实例
2013/12/18 Python
python创建线程示例
2014/05/06 Python
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
仅用50行Python代码实现一个简单的代理服务器
2015/04/08 Python
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
Tensorflow使用tfrecord输入数据格式
2018/06/19 Python
django实现支付宝支付实例讲解
2019/10/17 Python
Python使用Pandas读写Excel实例解析
2019/11/19 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
python 录制系统声音的示例
2020/12/21 Python
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
高中美术教师事迹材料
2014/08/22 职场文书
房屋租赁合同补充协议
2014/10/11 职场文书
2014年材料员工作总结
2014/11/19 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
python使用openpyxl库读写Excel表格的方法(增删改查操作)
2021/05/02 Python
python使用glob检索文件的操作
2021/05/20 Python
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
openEuler 搭建java开发环境的详细过程
2022/06/10 Servers
SQL中去除重复数据的几种方法汇总(窗口函数对数据去重)
2023/05/08 MySQL