承續前文的模擬與交易一文,為了將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 testValue>PValue 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