Board logo

標題: 請問什麼地方錯了 [打印本頁]

作者: cdkee    時間: 2010-9-27 15:32     標題: 請問什麼地方錯了

Public i As Integer
Public m As Integer
Public n As Integer
Public B As Integer
Public S As Integer
Dim buyArray(99) As Single
Dim sellArray(99) As Single
Private Sub CommandButton1_Click()
B = 1
i = i + 1
        Sheets("sheet1").Cells(i, 1) = "買"
        Sheets("sheet1").Cells(i, 2) = Int((10 * Rnd) + 1)
m = m + 1
buyArray(m) = Sheets("sheet1").Cells(i, 2)
If B = S Then
    If m > n Then
    Sheets("sheet1").Cells(i, 3) = sellArray(n) - buyArray(n)
    S = 0
    Else
    Sheets("sheet1").Cells(i, 3) = sellArray(m) - buyArray(m)
    B = 0
    End If
   
End If


End Sub

Private Sub CommandButton2_Click()
S = 1
i = i + 1
        Sheets("sheet1").Cells(i, 1) = "賣"
        Sheets("sheet1").Cells(i, 2) = Int((10 * Rnd) + 1)
n = n + 1
sellArray(n) = Sheets("sheet1").Cells(i, 2)
If S = B Then
    If n > m Then
    Sheets("sheet1").Cells(i, 3) = sellArray(m) - buyArray(m)
    B = 0
    Else
    Sheets("sheet1").Cells(i, 3) = sellArray(n) - buyArray(n)
    S = 0
    End If
   
End If
End Sub
作者: cdkee    時間: 2010-9-27 15:36

本帖最後由 cdkee 於 2010-9-27 15:40 編輯

用以上的程式,其中的結果...sample a)看不到有問題,sample b)問題出現在重複了上一個平倉的損益額!
sample a)
買 8
賣 6 -2
買 6
賣 3 -3
買 4
賣 8 4
買 1
賣 8 7
買 9
賣 8 -1

sample b)
買 8
買 6
買 6
賣 3 -5
買 4
賣 8 2
賣 1 -5
賣 8 4
賣 9 4
賣 8
作者: et5323    時間: 2010-9-27 15:38

本帖最後由 et5323 於 2010-9-27 15:40 編輯

能运行,没发现有什么问题的嘛.
作者: cdkee    時間: 2010-9-27 15:38

每當全部的買或賣平倉了,之後新的一個買或賣,只要跟上一個買賣方向相同,就會出現了上一個平倉的損益額!
作者: cdkee    時間: 2010-9-27 15:43

能运行,没发现有什么问题的嘛.
et5323 發表於 2010-9-27 15:38



    sample b)問題出現在重複了上一個平倉的損益額!
作者: oobird    時間: 2010-9-27 22:20

沒人看得到你的文件,自行除錯吧!
作者: cdkee    時間: 2010-9-27 22:45

沒人看得到你的文件...
oobird 發表於 2010-9-27 22:20



    沒文件的,程式已寫在1#.
作者: oobird    時間: 2010-9-27 22:56

看不出來你的損益額是什麼,不過感覺你須要在產生亂數前加上Randomize
作者: cdkee    時間: 2010-9-27 23:08

看不出來你的損益額是什麼,不過感覺你須要在產生亂數前加上Randomize
oobird 發表於 2010-9-27 22:56


損益額指一買一賣後的損益.
"要在產生亂數前加上Randomize"---版大可否有例子再說明?謝謝!
作者: oobird    時間: 2010-9-27 23:39

Sheets("sheet1").Cells(i, 1) = "買"
Randomize
        Sheets("sheet1").Cells(i, 2) = Int((10 * Rnd) + 1)
作者: cdkee    時間: 2010-9-27 23:55

回復 10# oobird


    謝謝版大!但問題還在喔!
作者: oobird    時間: 2010-9-28 00:23

本帖最後由 oobird 於 2010-9-28 00:25 編輯
回復  oobird


    謝謝版大!但問題還在喔!
cdkee 發表於 2010-9-27 23:55



    兩段都要加的。
若還不是你要的,那就真是看不出來你問什麼了!
作者: cdkee    時間: 2010-9-28 00:35

兩段都要加的。
oobird 發表於 2010-9-28 00:23



  兩段都加了,問題還在(紅色部分) ,因為之前5次"買"+5次"賣",已經沒有倉,之後的1個買賣是不應計出現損益!
買        5       
買        7       
賣        1        -4
賣        7        0
賣        3       
賣        10       
買        1        2
買        10        0
買        9       
賣        3        -6
買        7        -6
買        8       
賣        2        -5
買        10       
賣        2        -6
賣        9        -1
買        1        -1
賣        10        9
作者: oobird    時間: 2010-9-28 00:46

這麼說不是亂數重疊的問題了。
損益的問題我不懂。
作者: cdkee    時間: 2010-9-28 01:11

這麼說不是亂數重疊的問題了。
損益的問題我不懂。
oobird 發表於 2010-9-28 00:46



    再謝謝版大的指導!
作者: cdkee    時間: 2010-9-28 13:16

想了半天,還是沒法子!煩請大大幫助指正,萬分感謝!
作者: oobird    時間: 2010-9-28 20:38

因為之前5次"買"+5次"賣",已經沒有倉,之後的1個買賣是不應計出現損益
外行人完全不懂你在說什麼。




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)