2017-05-08 13 views
0

Pyalgotradeを使用していますが(通常はta-libインジケータと組み合わせて)、機能がありませんデータシリーズのローカル最大値と最小値を見つけますPyaserogradeはDataseriesで最新のピーク(最小または最大)を見つける

私はmin関数とmax関数を認識していますが、これは私が探しているものではありません。 E. MIN(低、カウント= 5)は私に5つの小棒の最低を与えるが、これは5つの値の外を見ない。私は特定の期間、私は "ローカル低"の値を返す関数を探しています。 e。その日の前後2日間は値が低かった。

Series [2,3,2,1,3,4,5,6,6] 

MIN(5) -> returns 3, but the lowest value is on the left border of the observed window 
      and the day before, the value was even lower! 

whatiamlookingfor() -> should return 1, 
         because it is the last local low over a +/-2 days period 

私はそれは私が何を意味するかは明らかです願っています。私が見落としたかもしれないこの目的のための機能ですか?データ系列に低いを検索するに

EDIT

、私は

def min_peak(series, interval): 
    reference = -1 
    left = reference - interval 
    while -reference < len(series): 
     if min(series[left:]) == min(series[reference:]): 
      return min(series[left:]) 
     reference -= 1 
     left -= 1 

...このような何かを思い付いた...しかし、私は、このソリューションに非常に満足していません、シリーズを後方に解析するのはあまり効率的ではないと思うからです。私は、ネイティブで動作するビルトインの何かがおそらくもっと速くなると仮定します。

種類よろしく、

エール私はNode.jsの中で座っていると私のpythonに精通していないよけれども、私が持っているのに、私はここであなたを助けたい

答えて

0

は、我々が関心(algotrading)を共有感知しますいくつかの経験...

...とにかく、ソリューションは非常に単純ですが、単に配列をスライスします。
...これは簡単ですが、私はこの質問を誤解している可能性があります。もしそうなら、plsのコメントと私はあなたのために私の答えを更新することができます参照してください。


編集


MIN/MAXは、いくつかのパラメータを取る:inReal

  • :データの配列
  • startIdx :どこ
  • からendIdx を探して起動するには、次の場所
  • optInTimePeriod 探して停止する:それはこの文脈で何をするかわからない:/

IDKこれらの場合をあなたにさらされて..?しかし、このような音は、あなたがしたいことを解決するために見なければならないところです。

+0

解決策は簡単ですが、最適化されたパッケージやta-libなどの外部ライブラリを使用すると、通常は実行中に1桁高速になります。私の希望は、再利用できるものがあるということでした。 – Ale

+0

@Ale私は自分の答えを更新しました。 – superhero

関連する問題