次のコードを使用して、H1_high
およびH1_low
列のデータのローリングハイおよびローをキャプチャできます。pd.rolling_maxおよびmin(groupbyなど)
daystart = '9:30'
IB_end = '10:29:59'
IB_session = data.between_time(daystart,IB_end, include_start=True, include_end=True)
とでこれを行う:私がやりたい何
Open High Low Last Volume H1_high H1_low
Timestamp
2014-03-04 09:30:00 1783.50 1784.50 1783.50 1784.50 171 1784.50 1783.5
2014-03-04 09:31:00 1784.75 1785.75 1784.50 1785.25 28 1785.75 1783.5
2014-03-04 09:32:00 1785.00 1786.50 1785.00 1786.50 81 1786.50 1783.5
2014-03-04 09:33:00 1786.00 1786.00 1785.25 1785.25 41 1786.50 1783.5
2014-03-04 09:34:00 1785.00 1785.25 1784.75 1785.25 11 1786.50 1783.5
2014-03-04 09:35:00 1785.50 1786.75 1785.50 1785.75 49 1786.75 1783.5
2014-03-04 09:36:00 1786.00 1786.00 1785.25 1785.75 12 1786.75 1783.5
2014-03-04 09:37:00 1786.00 1786.25 1785.25 1785.25 15 1786.75 1783.5
は以下の時間の間H1_high
とH1_low
をキャプチャするだけです:
data["H1_high"] = pd.rolling_max(data.High, window=60, min_periods=1)
data["H1_low"] = pd.rolling_min(data.Low, window=60, min_periods=1)
この
は、次のような出力を提供しますH1_high
と
H1_low
を表示し、最後の値をから順に(FFill)繰り上げて表示します3210日の終わり(16:14:00)。だからここ
はH1_high
H1_low
列に対する所望の出力です:10:29:59
から
H1_high H1_low
2014-03-04 10:29:00 1786.75 1783.5
2014-03-04 10:30:00 1786.75 1783.5
2014-03-04 10:31:00 1786.75 1783.5
最終値は、一日の終わりまで前方いっぱい:
H1_high H1_low
2014-03-04 16:14:00 1786.75 1783.5
その後、新しい一日が新鮮な値で再び開始します。
H1_high H1_low
2014-03-05 09:30:00 1788.00 1783.00
をフィルタリングする日が再び起動すると、あなたはロールは前日からの情報を含めるようにしたいですか?そうでない場合は、適切なデータ(60分分)があるときにのみロールを開始します。つまり、ローリングデータは10:30に開始されますか? – piRSquared
こんにちは@piRSquared。前日からのロールはありません。私が望むデータは最初の1時間からのもので、毎日9時30分に即座に開始します。 – ade1e
基本的には、1日のうちの1時間(9:30〜10:30)の高低です。毎日リフレッシュします。私は10時29分の価値が残りの日のために前方に満たすことを望みます。 – ade1e