這是我的第一篇文章。對不起,如果它看起來像一堵文字牆。 希望有人能夠理解我的問題,並提供一個可以做到這一點的示例模塊,或者一些代碼來嘗試。 我正在與時間序列CSV數據時,下面的實施例的行,列是(日期時間,O,H,L,C)Python優化算法調整線越過儘可能多的點
1999-10-26 21:00:00 68.81 68.83 68.07 68.19
1999-10-27 21:00:00 68.19 68.2 66.83 67.43
1999-10-28 21:00:00 67.43 68.06 66.91 68.06
1999-10-29 21:00:00 68.06 68.11 66.31 66.66
1999-01-11 22:00:00 66.66 67.15 66.09 66.63
1999-02-11 22:00:00 66.63 67.38 66.42 66.58
1999-03-11 22:00:00 66.58 67.73 66.42 67.48
1999-04-11 22:00:00 67.48 67.81 66.54 66.76
1999-05-11 22:00:00 66.76 68.2 66.54 67.87
哪個是所謂燭臺在金融價格數據,並可以被表示視覺上像這樣:
現在,我想實現的是自動繪製,將橫看成燈芯(垂直線的燭臺)儘可能一條線,而不是跨越超過規定的公差更蠟燭體數量(綠色或紅色區域)
希望這是有道理的。 示例。穿越儘可能多的燈芯(在這種情況下蠟燭下面)的線將開始在位置4,大約66.4,並且具有上升斜率,直到位置9大約在66.55 ...
我想象的線條基於上述
畫面是否有一個模塊,可以做到這一點,如果我提供了一個首發位置? 基本上,像一條最合適的線,但實際上穿過所有的點(一個點是一條垂直線,所以在x軸上的範圍),同時避免穿過紅色/綠色區域,所以本質上是趨勢線(不是彎曲的)
如果這太複雜了,因爲這條線是對角線,那麼您最好還是提供一個水平線來做相同的示例(從x軸只有一個值)。例如,如最後兩條記錄的數據L(第四列)所示,66.54的值也可以起作用(它將穿過所有燈芯,並觸摸最後兩條記錄) 請參閱黃線交叉或觸摸所有低燈芯
在這種情況下值(x軸)的起始位置蠟燭無關緊要的,並調節得
線在預定的點(例如,我可以選擇在位置5將開始圖像,這是最低點),並繼續,直到獲得最佳效果,以便它可以在任何地方停下來。然後我計劃使用基於這兩點的角度值來擴展這條線。因此,我要查找的輸出實際上只是線((x,y)的對角線趨勢線)或簡單的x軸值(水平線)的終點位置。起點將被選擇(A),並且終點基於算法優化,其中線應儘可能多地跨越蠟燭的垂直線(只看向起點的右側),但保持跨越的計數蠟燭身體區域低於公認的閾值容限,直到找不到更好的解決方案。 (B)
我已經看過佈雷森漢姆的線算法和一堆其他人,但沒有看到如何在Python時間序列數據中實現這個。我希望這很容易就像使用fbprophet
真正的csv文件重達500MB,幷包含多達600萬行 我寧願一個窮舉算法,而不是遺傳,每次都會產生不同的結果...
我已經就如何嘗試在此期間做到這一點的一些想法,但找不到與示例中的任意合適的模塊,以加快這一進程
如果這還不清楚......我想最大化在蠟燭中間(圖片上的白線)所看到的線條穿過垂直線的次數,同時保持允許跨越限制爲所選值的綠色/紅色區域的次數。
我用pyqtgraph爲visuallisation 實施例的代碼,使劇情: http://www.pyqtgraph.org/downloads/0.10.0/pyqtgraph-0.10.0-deb/pyqtgraph-0.10.0/examples/customGraphicsItem.py
感謝您的建議,並指出我在正確的方向。經過進一步的研究,我相信我正在尋找的是一種算法,以返回+1或-1皮爾遜相關係數的所有可能性,其中元素多於2。 – Cactus