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迭代器实例简析
Sep 25 Python
Python中的is和==比较两个对象的两种方法
Sep 06 Python
K-近邻算法的python实现代码分享
Dec 09 Python
python实现图片文件批量重命名
Mar 23 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
Nov 30 Python
Python高级特性之闭包与装饰器实例详解
Nov 19 Python
Pyqt5自适应布局实例
Dec 13 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
浅谈优化Django ORM中的性能问题
Jul 09 Python
python在linux环境下安装skimage的示例代码
Oct 14 Python
python3列表删除大量重复元素remove()方法的问题详解
Jan 04 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
PHPer 需要了解的 5 个 Composer 小技巧
2014/08/18 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
2014/11/25 PHP
php打乱数组二维数组多维数组的简单实例
2016/06/17 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
2020/03/18 PHP
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
node中socket.io的事件使用详解
2014/12/15 Javascript
jQuery中click事件用法实例
2014/12/26 Javascript
JS弹出可拖拽可关闭的div层完整实例
2015/02/13 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
vue-axios使用详解
2017/05/10 Javascript
关于javascript获取内联样式与嵌入式样式的实例
2017/06/01 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
JS实现提交表单前的数字及邮箱校检功能
2017/11/13 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
基于vue展开收起动画的示例代码
2018/07/05 Javascript
layui 实现表单和文件上传一起传到后台的例子
2019/09/16 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
[01:29:31]VP VS VG Supermajor小组赛胜者组第二轮 BO3第一场 6.2
2018/06/03 DOTA
跟老齐学Python之重回函数
2014/10/10 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
python实现AES加密与解密
2019/03/28 Python
在django模板中实现超链接配置
2019/08/21 Python
Python FFT合成波形的实例
2019/12/04 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
pymysql模块使用简介与示例
2020/11/17 Python
当当网软件测试笔试题
2015/11/24 面试题
办理护照介绍信
2014/01/16 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
搞笑的爱情检讨书
2014/10/01 职场文书
村官个人总结范文
2015/03/03 职场文书
单方投资意向书
2015/05/11 职场文书
js面向对象编程OOP及函数式编程FP区别
2022/07/07 Javascript