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中的rfind()方法使用详解
May 19 Python
Python实现对字符串的加密解密方法示例
Apr 29 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
Sep 26 Python
对Python 数组的切片操作详解
Jul 02 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
对python 自定义协议的方法详解
Feb 13 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
Mar 30 Python
Python实现Restful API的例子
Aug 31 Python
使用pyecharts1.7进行简单的可视化大全
May 17 Python
Python偏函数实现原理及应用
Nov 20 Python
python 制作本地应用搜索工具
Feb 27 Python
Python+OpenCV实现图片中的圆形检测
Apr 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
PHP中用mysqli面向对象打开连接关闭mysql数据库的方法
2016/11/05 PHP
Laravel 错误提示本地化的实现
2019/10/22 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
让FireFox支持innerText的实现代码
2009/12/01 Javascript
jquery tab插件精简版分享
2011/09/10 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
关于jQuery中的each方法(jQuery到底干了什么)
2014/03/05 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
jQuery动态加载css文件实现方法
2016/06/15 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
如何处理JSON中的特殊字符
2016/11/30 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
Web前端框架Angular4.0.0 正式版发布
2017/03/28 Javascript
Javascript实现基本运算器
2017/07/15 Javascript
php main 与 iframe 相互通讯类(js+php同域/跨域)
2017/09/14 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
如何实现小程序tab栏下划线动画效果
2019/05/18 Javascript
微信小程序 可搜索的地址选择实现详解
2019/08/28 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
原生JavaScript实现进度条
2021/02/19 Javascript
[01:25]DOTA2超级联赛专访iG 将调整状态找回自己
2013/06/05 DOTA
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
快速实现基于Python的微信聊天机器人示例代码
2017/03/03 Python
Python多线程扫描端口代码示例
2018/02/09 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
Python使用Pandas库常见操作详解
2020/01/16 Python
python实现简单井字棋游戏
2020/03/04 Python
Django 如何使用日期时间选择器规范用户的时间输入示例代码详解
2020/05/22 Python
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
双方协议书
2014/04/22 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
高中美术教学反思
2016/02/17 职场文书