回答ありがとうございます。以前は StackOverflow を使用したことがなかったので、回答の数とその速度に驚きました。素晴らしいです。
私はまだ適切に回答を行っていませんが、問題の仕様にいくつかの情報を追加する必要があると考えました. 下の画像を参照してください。
ポイントが足りないので画像は掲載できませんが、http://journal.acquitane.com/2010-01-20/image003.jpgで画像をご覧いただけます
この画像は、私が達成しようとしていることをより詳しく説明している可能性があります。したがって、ページ全体の水平線がチャートの価格ポイントであることがわかります。これで、それぞれの 0.5% 以内の線のクラスター化が得られました。これは良いことであり、これらのクラスターを自動的に識別したい理由です。チャートで、S2 & MR1、R2 & WPP1 にクラスターがあることがわかります。
そのため、毎日これらの価格を作成し、0.5% 以内のものを手動で特定できます。-しかし、この質問の目的は、pythonルーチンでそれを行う方法です。
ラベルを付けてリストを再作成しました (以下を参照)。2 つの異なる日付のものであるため、表示価格が画像の価格と一致しないことに注意してください。
[YR3,175.24,8] [SR3,147.85,6] [YR2,144.13,8] [SR2,130.44,6] [YR1,127.79,8] [QR3,127.42,5] [SR1,120.94,6] [ QR2,120.22,5] [MR3,118.10,3] [WR3,116.73,2] [DR3,116.23,1] [WR2,115.93,2] [QR1,115.83,5] [MR2,115.56,3] [DR2 ,115.53,1] [WR1,114.79,2] [DR1,114.59,1] [WPP,113.99,2] [DPP,113.89,1] [MR1,113.50,3] [DS1,112.95,1] [WS1, 112.85,2] [DS2,112.25,1] [WS2,112.05,2] [DS3,111.31,1] [MPP,110.97,3] [WS3,110.91,2] [50MA,110.87,4] [MS1,108.91 ,3] [QPP,108.64,5] [MS2,106.37,3] [MS3,104.31,3] [QS1,104.25,5] [SPP,103.53,6] [200MA,99.42,7] [QS2,97.05, 5] [YPP,96.68,8] [SS1,94.03,6] [QS3,92.66,5] [YS1,80.34,8] [SS2,76.62,6] [SS3,67.12,6] [YS2,49.23,8] ] [YS3,32.89,8]
グループ C は間違っており、含めるべきではないという点で、元のリストを間違えました。ご指摘ありがとうございます。
また、0.5% は固定されていません。この値は日々変化しますが、問題を特定するための例として 0.5% を使用しました。
再度、感謝します。マーク
PS。私は今、答えをチェックすることでひび割れます。
やあ:
株価を操作する必要があります。Python を使い始めたばかりです (ただし、どの言語でもこれを実装するのは難しいと思います)。これをPythonでうまく実装する方法についてのアイデアを探しています。
ありがとうマーク
問題: サブリストに 2 つの項目 (株価、重量) があるリスト (FloorLevels (以下を参照)) のリストがあります。株価が互いに 0.5% 以内にある場合、株価をグループに分けたいと考えています。グループの強さは、その総重量によって決まります。例えば:
Group-A
115.93,2
115.83,5
115.56,3
115.53,1
-------------
TotalWeight:12
-------------
Group-B
113.50,3
112.95,1
112.85,2
-------------
TotalWeight:6
-------------
FloorLevels[
[175.24,8]
[147.85,6]
[144.13,8]
[130.44,6]
[127.79,8]
[127.42,5]
[120.94,6]
[120.22,5]
[118.10,3]
[116.73,2]
[116.23,1]
[115.93,2]
[115.83,5]
[115.56,3]
[115.53,1]
[114.79,2]
[114.59,1]
[113.99,2]
[113.89,1]
[113.50,3]
[112.95,1]
[112.85,2]
[112.25,1]
[112.05,2]
[111.31,1]
[110.97,3]
[110.91,2]
[110.87,4]
[108.91,3]
[108.64,5]
[106.37,3]
[104.31,3]
[104.25,5]
[103.53,6]
[99.42,7]
[97.05,5]
[96.68,8]
[94.03,6]
[92.66,5]
[80.34,8]
[76.62,6]
[67.12,6]
[49.23,8]
[32.89,8]
]