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 相关文章推荐
Python3学习笔记之列表方法示例详解
Oct 06 Python
python如何定义带参数的装饰器
Mar 20 Python
Django 实现购物车功能的示例代码
Oct 08 Python
老生常谈python中的重载
Nov 11 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
python sklearn库实现简单逻辑回归的实例代码
Jul 01 Python
Python利用scapy实现ARP欺骗的方法
Jul 23 Python
python面向对象 反射原理解析
Aug 12 Python
python中struct模块之字节型数据的处理方法
Aug 27 Python
django自定义模板标签过程解析
Dec 14 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
python文件路径操作方法总结
Dec 21 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动态图像的创建
2006/10/09 PHP
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
功能齐全的PHP发送邮件类代码附详细说明
2008/07/10 PHP
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
php+curl 发送图片处理代码分享
2015/07/09 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
PHP中的多种加密技术及代码示例解析
2016/10/20 PHP
PHP获取链表中倒数第K个节点的方法
2018/01/18 PHP
Javascript 篱式条件判断
2008/08/22 Javascript
javascript 添加和移除函数的通用方法
2009/10/20 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
jQuery 操作option的实现代码
2011/03/03 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
Bootstrap弹出带合法性检查的登录框实例代码【推荐】
2016/06/23 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
原生js和css实现图片轮播效果
2017/02/07 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
Vue不能检测到Object/Array更新的情况的解决
2018/06/26 Javascript
[06:53]DOTA2每周TOP10 精彩击杀集锦vol.3
2014/06/25 DOTA
django2 快速安装指南分享
2018/01/05 Python
澳大利亚家具和家居用品在线:BROSA
2017/11/02 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
日语求职信范文
2013/12/17 职场文书
网上祭先烈心得体会
2014/09/01 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
小时代观后感
2015/06/10 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
浅析Django接口版本控制
2021/06/26 Python
JavaWeb 入门篇(3)ServletContext 详解 具体应用
2021/07/16 Java/Android