私はあまりナンセンスを言うつもりはありません、誰もがコードを見るだけです!
# - *- coding: utf-8-*-"""
Created on Tue May 2308:57:022017
@ author: yunjinqi
E-mail:[email protected]
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 inrange(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())/3return df
get_PBX(df)
df.tail()'''
ウォーターフォールライン
原則:移動平均インジケーター
使用法:
ウォーターフォールラインは、動作中のウォーターフォールと形状が非常に似ているため、トレンドインジケーターであり、ウォーターフォールラインと呼ばれます。
滝のラインは低い位置で接着されており、短期の滝のラインは長期の滝のラインと上向きに交差し、上向きに分岐しています。購入してください。
滝のラインは高い位置に接着されており、短い滝のラインは長い滝のラインを下向きに横切り、下向きに分岐して販売します。
長期、中期、短期の滝のラインを下から上に並べて長い配置にすると、株式を保有することができます。
長期、中期、短期の滝のラインを上から下に配置して短い配置にする場合は、位置を短くする必要があります。
'''
補足知識:Pythonは論理演算子and、orを使用し、整数の正または負を決定しません
今日Leetcodeをブラッシングしたとき、整数を反転しました。Pythonの除算が切り捨てられているため、入力整数の正負を判断する必要があります。当時、三眼演算を使用することを考えていましたが、参考回答を見ると、正と負の数を判断するのは論理演算子ですが、当時は関連情報を探して混乱して原理を理解していたので記録しました。
回答コードは次のとおりです。
sign = x<0 and -1 or 1
xが入力整数である場合、xが正の数の場合は1を返し、負の数の場合は-1を返します。
最初にC言語に触れて以来、Pythonを学んだときは論理演算子にあまり注意を払っていませんでした。C言語と同じようにブール値が返されると思いました。なぜ、1と-1が返されるのかわかりません。関連情報を確認し、Pythonでロジックを見つけました。動作原理は以下のとおりです。
x and y | Boolean "and" -xがFalseの場合、xとyはFalseを返し、それ以外の場合はyの計算値を返します。 |
---|---|
xまたはy | ブール "または" -xがTrueの場合、xの値を返します。それ以外の場合、yの計算値を返します。 |
not x | Boolean "not" -xがTrueの場合、Falseを返します。 xがFalseの場合、Trueを返します。 |
入力が負の数の場合、計算プロセスは次のようになります。
-123<0
True
True and -1-1-1 or 1-1
最初に-123 <0と判断し、Trueを返します。この時点で、Trueは-1とANDされ、xはtrueであり、返されるyの値は-1です。次に、ゼロ以外の整数はすべてFalseであるため、-1は1とORされます。このとき、xの値は-1です。
入力が正の数の場合、計算プロセスは次のようになります。
123<0
False
False and -1
False
False or 11
最初に123 <0と判断し、Falseを返します。このとき、Falseは-1とAND演算されます。xがfalseの場合は、Falseを返し、次にFalseは1とOR演算されます。xはfalseなので、yの値は1に戻ります。
全体として、Pythonで論理演算子を使用しても、trueまたはfalseは返されませんが、入力xおよびyに関連しています。
さらに、以下に示すように、三眼演算を使用して入力整数の符号を決定することもできます。
sign = 1 if x 0 else -1
添付されているのは、整数を反転するための完全なコードです。
classSolution(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 //=10return a*sign if a<2**31else0
上記のPythonウォーターフォールラインインジケーターのコンパイルの例は、エディターによって共有されるすべてのコンテンツです。参照を提供したいと思います。