python 瀑布線指標(biāo)編寫(xiě)實(shí)例
我就廢話不多說(shuō)了,大家還是直接看代碼吧!
# -*- 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 #獲取數(shù)據(jù) 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() ''' 瀑布線 原理:均線類(lèi)指標(biāo) 用法: 瀑布線是趨勢(shì)性指標(biāo),因其在運(yùn)行的過(guò)程中,形態(tài)與瀑布極其相似,故得名為瀑布線。 瀑布線在低位粘合,短線瀑布線向上穿越長(zhǎng)線瀑布線并向上發(fā)散,買(mǎi)入。 瀑布線在高位粘合,短線瀑布線向下穿越長(zhǎng)線瀑布線并向下發(fā)散,賣(mài)出。 當(dāng)長(zhǎng)中短期瀑布線依次由下向上排列形成多頭排列時(shí),可持股。 當(dāng)長(zhǎng)中短期瀑布線依次由上向下排列形成空頭排列時(shí),應(yīng)空倉(cāng)。 '''
補(bǔ)充知識(shí):Python使用邏輯運(yùn)算符and、or、nor判斷整數(shù)正負(fù)
今天刷Leetcode的時(shí)候,對(duì)整數(shù)進(jìn)行翻轉(zhuǎn),由于Python的除法是向下取整,因此要對(duì)輸入整數(shù)進(jìn)行正負(fù)的判斷,當(dāng)時(shí)想到的是使用三目運(yùn)算,但是看參考答案的時(shí)候,發(fā)現(xiàn)使用的是邏輯運(yùn)算符進(jìn)行正負(fù)數(shù)的判斷,當(dāng)時(shí)一臉懵逼,經(jīng)過(guò)查找相關(guān)資料理解了原理,故此做個(gè)記錄。
答案代碼如圖所示:
sign = x<0 and -1 or 1
其中x為輸入整數(shù),如果x為正數(shù)返回1,如果為負(fù)數(shù)返回-1。
由于最開(kāi)始接觸的C語(yǔ)言,學(xué)習(xí)Python的時(shí)候就沒(méi)有太在意邏輯運(yùn)算符,以為跟C語(yǔ)言一樣返回的是一個(gè)布爾值,不知道為何會(huì)返回1和-1,查了相關(guān)資料發(fā)現(xiàn)Python中邏輯運(yùn)算原理如下:
x and y | 布爾"與" - 如果 x 為 False,x and y 返回 False,否則它返回 y 的計(jì)算值。 |
---|---|
x or y | 布爾"或" - 如果 x 是 True,它返回 x 的值,否則它返回 y 的計(jì)算值。 |
not x | 布爾"非" - 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 |
當(dāng)輸入為一個(gè)負(fù)數(shù)時(shí),運(yùn)算過(guò)程如下所示:
>>> -123<0 True >>> True and -1 -1 >>> -1 or 1 -1
首先判斷-123<0,返回True,此時(shí)True與-1進(jìn)行與運(yùn)算,x為真,返回y的值為-1;然后-1與1進(jìn)行或運(yùn)算,由于非零整數(shù)都是為False,此時(shí)返回x的值-1。
當(dāng)輸入為一個(gè)正數(shù)時(shí),運(yùn)算過(guò)程如下所示:
>>> 123<0 False >>> False and -1 False >>> False or 1 1
首先判斷123<0,返回False,此時(shí)False與-1進(jìn)行與運(yùn)算,x為假,返回False,然后False與1進(jìn)行或運(yùn)算,由于x為假,此時(shí)返回y的值1。
總而言之,使用Python中的邏輯運(yùn)算符返回的并不是非False即True,而與輸入x,y相關(guān)。
另外判斷輸入整數(shù)的正負(fù)還可以使用三目運(yùn)算,如下所示:
sign = 1 if x>0 else -1
另附對(duì)整數(shù)實(shí)現(xiàn)翻轉(zhuǎn)完整代碼:
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 瀑布線指標(biāo)編寫(xiě)實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python用函數(shù)創(chuàng)造字典的實(shí)例講解
在本篇文章里小編給大家整理的是一篇關(guān)于python用函數(shù)創(chuàng)造字典的實(shí)例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。2021-06-06python連接sql?server數(shù)據(jù)庫(kù)的方法實(shí)戰(zhàn)
當(dāng)我們用Python來(lái)編寫(xiě)網(wǎng)站,必須要能夠通過(guò)python操作數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于python連接sql?server數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08python3 面向?qū)ο骭_類(lèi)的內(nèi)置屬性與方法的實(shí)例代碼
這篇文章主要介紹了python3 面向?qū)ο骭_類(lèi)的內(nèi)置屬性與方法的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11Django發(fā)送郵件和itsdangerous模塊的配合使用解析
這篇文章主要介紹了Django發(fā)送郵件和itsdangerous模塊的配合使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08在Python中利用Into包整潔地進(jìn)行數(shù)據(jù)遷移的教程
這篇文章主要介紹了在Python中如何利用Into包整潔地進(jìn)行數(shù)據(jù)遷移,在數(shù)據(jù)格式的任意兩個(gè)格式之間高效地遷移數(shù)據(jù),需要的朋友可以參考下2015-03-03Python順序結(jié)果、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)詳解
這篇文章主要給大家介紹了關(guān)于Python順序結(jié)果、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的相關(guān)資料, 程序由3種基本結(jié)構(gòu)組成,順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),需要的朋友可以參考下2023-07-07Python修改IP地址的常見(jiàn)方法總結(jié)
在網(wǎng)絡(luò)編程中,可能會(huì)遇到需要修改IP地址的情況,Python提供了一些功能強(qiáng)大的庫(kù)和模塊,可以幫助我們實(shí)現(xiàn)IP地址的修改操作,本文將介紹幾種常見(jiàn)的方法,以及如何使用它們來(lái)修改IP地址,需要的朋友可以參考下2023-12-12