Function ling(table, s1, s2)
s = s1
ling = ""
While s < s2
If PL(table, s) = 0 Then
ling = s
Else
ling = ling
End If
s = s + 0.2
Wend
If ling = "" Then
ling = "在指定区间内不存在盈亏平衡点"
Else
ling = "在制定区间内的盈亏平衡点有" & ling
End If
End Function
=========================
是一个用来算策略组合盈亏平衡点的,s是标的价格,原估计是从s1累加到s2,看看哪个值能满足盈亏为0.
问题在步长,如果用s=s+1或者s=s+0.5是可以找出这给点,但如果步长再变小就不行了。例如改成0.2,,01就会显示不存在平衡点。但理论上来说步长0.1是不可能恰好跳过平衡点的。所以不知道是不是while语句或者if语句有什么特殊限定。
注:其中用到的PL函数是没有问题的,可以正确算出各情况的值
我的PL函数有多个零点,不能用二分法,而且不可导,用不了牛顿法。我本来的程序是希望把所有零点用&串在一起,但现在出错了就先简化一下,看看问题出在哪里。
我的循环继续条件是s < s2,希望让s历遍s1到s2的点。我这样写难道不对?
这样 你把S=S+0.2这条语句放在End if之前 ling=ling之后 ,然后再ling=s 与ELSE之间 加入条语句GOto 10 , 然后在If ling = "" Then 语句之前打10 然后空格