如何找到最近的3个最高点和最低点

for j=2 To 100 //*循环次数*,求出最近的四个高低点,确定箱体上轨和下轨 { If (Low[j-1] >= Low[j] And low[j] <= Low[j+1]) { k = j; n = j; break; BoxLowOne = Low[n]; Continue; For j=k+1 To 100 { If ( LowFirst = True And Low[j-1] >= Low[j] And low[j] <= Low[j+1]) { k = j; n = j; BoxLowTwo = Low[k]; break; } } } } For j=2 To 100 { If (LowFirst = False And High[j] >= High[j-1] And High[j] >= High[j+1]) { k = j; BoxHighOne = High[k]; Break; Continue; For j=k+1 To 100 { If (High[j] >= High[j-1] And High[j] >= High[j+1]) { k = j; BoxHighTwo = High[k]; Break; } } } } plt.line(\"BoxHighone\",BoxHighOne); plt.line(\"BoxHighTwo\",BoxHighTwo); If (LowFirst = False) { If((BoxHighTwo - BoxLowOne)/(BoxHighOne - BoxLowOne) >=2 And BoxHighTwo - BoxLowOne>=15 And BoxHighOne < BoxHighTwo) { UpBox = BoxHighOne; DownBox = BoxLowOne; } Else { UpBox = Max(BoxHighOne,BoxHighTwo); DownBox = Min(BoxLowOne,BoxLowTwo); } } Else If (LowFirst = True) { If((BoxHighOne - BoxLowTwo)/(BoxHighOne - BoxLowOne) >=2 And BoxHighOne - BoxLowTwo >=15 And BoxLowOne > BoxLowTwo) { UpBox = BoxHighOne; DownBox = BoxLowOne; } Else { UpBox = Max(BoxHighOne,BoxHighTwo); DownBox = Min(BoxLowOne,BoxLowTwo); } }