如何存储高值或低值(交易)
How to store High or Low values (trading)
我想开发一个代码,将一个 Series 添加到我的 DataFrame 中;该系列应存储收盘价的最低值,直到达到新的低点。当达到新低时,系列中应出现新值。起始码为:
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ticker = 'EURUSD=X'
df = yf.download(ticker, start='2020-1-1')
df['fixed_low'] = ...?
因此,例如,如果 EURUSD 的最新低点是 1.1000,则在 'fixed_low' 列中,该值应该保持不变,直到达到新低点(假设为 1.0999)。然后,如果资产仍在下跌,该列应存储新的低值,直到新低持续一段时间,依此类推。我希望我说得很清楚。谢谢
import yfinance as yf
import numpy as np
ticker = 'EURUSD=X'
df = yf.download(ticker, start='2021-2-1', end= '2021-3-1')
minimum = np.min(df['Close'])#you saved the minimum
print('minimum', minimum)
df1 = yf.download(ticker, start='2021-3-2', end= '2022-5-1')
for i in df1['Close'].values:
if i < minimum:
minimum = i
print('update minimum', minimum)
创建了两个数据框。在第一个中我们找到最小值,在第二个中我们更新最小值。
ticker = 'EURUSD=X'
df = yf.download(ticker, start='2020-1-1')
df['fixed_low'] = np.nan
low = np.inf
for i in range(0, len(df)):
if df.loc[df.index[i], 'Low'] < low:
low = round(df.loc[df.index[i], 'Low'], 6)
df.loc[df.index[i], 'fixed_low'] = low
输出df
Open High Low ... Adj Close Volume fixed_low
Date ...
2019-12-31 1.120448 1.124101 1.120072 ... 1.120230 0 1.120072
2020-01-01 1.122083 1.122838 1.115947 ... 1.122083 0 1.115947
2020-01-02 1.121894 1.122712 1.116682 ... 1.122083 0 1.115947
2020-01-03 1.117081 1.118068 1.112570 ... 1.117144 0 1.112570
2020-01-06 1.116246 1.120825 1.115810 ... 1.116196 0 1.112570
... ... ... ... ... ... ... ...
2022-05-06 1.053974 1.059839 1.048537 ... 1.053974 0 1.047285
在循环之前,我将low变量的值设置为最大。
如果当前最小值小于低值,则会进行更新。 df['fixed_low'] 首先将所有值设置为 nan。
我想开发一个代码,将一个 Series 添加到我的 DataFrame 中;该系列应存储收盘价的最低值,直到达到新的低点。当达到新低时,系列中应出现新值。起始码为:
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
ticker = 'EURUSD=X'
df = yf.download(ticker, start='2020-1-1')
df['fixed_low'] = ...?
因此,例如,如果 EURUSD 的最新低点是 1.1000,则在 'fixed_low' 列中,该值应该保持不变,直到达到新低点(假设为 1.0999)。然后,如果资产仍在下跌,该列应存储新的低值,直到新低持续一段时间,依此类推。我希望我说得很清楚。谢谢
import yfinance as yf
import numpy as np
ticker = 'EURUSD=X'
df = yf.download(ticker, start='2021-2-1', end= '2021-3-1')
minimum = np.min(df['Close'])#you saved the minimum
print('minimum', minimum)
df1 = yf.download(ticker, start='2021-3-2', end= '2022-5-1')
for i in df1['Close'].values:
if i < minimum:
minimum = i
print('update minimum', minimum)
创建了两个数据框。在第一个中我们找到最小值,在第二个中我们更新最小值。
ticker = 'EURUSD=X'
df = yf.download(ticker, start='2020-1-1')
df['fixed_low'] = np.nan
low = np.inf
for i in range(0, len(df)):
if df.loc[df.index[i], 'Low'] < low:
low = round(df.loc[df.index[i], 'Low'], 6)
df.loc[df.index[i], 'fixed_low'] = low
输出df
Open High Low ... Adj Close Volume fixed_low
Date ...
2019-12-31 1.120448 1.124101 1.120072 ... 1.120230 0 1.120072
2020-01-01 1.122083 1.122838 1.115947 ... 1.122083 0 1.115947
2020-01-02 1.121894 1.122712 1.116682 ... 1.122083 0 1.115947
2020-01-03 1.117081 1.118068 1.112570 ... 1.117144 0 1.112570
2020-01-06 1.116246 1.120825 1.115810 ... 1.116196 0 1.112570
... ... ... ... ... ... ... ...
2022-05-06 1.053974 1.059839 1.048537 ... 1.053974 0 1.047285
在循环之前,我将low变量的值设置为最大。 如果当前最小值小于低值,则会进行更新。 df['fixed_low'] 首先将所有值设置为 nan。