2022-02-07|閱讀時間 ‧ 約 2 分鐘

二分法尋根求解

承續前文的模擬與交易一文,為了將If Condition1 then Buy next bar at Highest(High,8) stop的語法,可以提前在當支K棒作用,進而化為 Buy next bar at XXX stop,其中求解適當的XXX價位有不少的方法,諸如假位法、牛頓法、正割法、疊代法、Wegstein、鬆弛法,不過考慮簡單入門易懂的原則,本文介紹二分法
二分法的邏輯很簡單,就是先對合理的數值解,找一個極端小的值與極端大的值,然後反覆運算,左右夾擊逼近到正確的數值解。
二分夾擊法圖示
二分夾擊法圖示
參考程式碼如下 minAns=8000 maxAns=20000 '以目前的台指期為例,數值解極端小值設為8000、極端大值為20000 testAns=(minAns+maxAns)*0.5 'n二分法目前執行的計數值、f為二分法預計實施的次數、testAns為測試數值 Do while n=f testValue=Statistics(testAns) If testValuePValue then maxAns=testAns testAns=(minAns+testAns)*0.5 Else 'testValue=代入測試數值於檢定統計式 'Pvalue=查表而得的臨界值上、下界 '縮小極大值的邊界,然後產生新的測試值 minAns=testAns testAns=(testAns+maxAns)*0.5 End If n=n+1 Loop Ans=testAns
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.