Board logo

標題: 請問怎樣做出來 [打印本頁]

作者: cdkee    時間: 2010-9-29 06:01     標題: 請問怎樣做出來

本帖最後由 cdkee 於 2010-9-29 06:20 編輯

以另一方面想,用EXCEL 怎樣可以計算出每對買賣賺蝕數目,放入C那行?( )內的數值是我自己計算出來。謝謝大大!
每個買賣數量=1
買=買入, 賣=沽空(即平了買入,無貨時,沽空就是看跌)

A  B=買賣價 C
買 8
買 6
賣 6       (-2)
賣 3       (-3)
賣 4
賣 8
買 1       (3)
買 8       (0)
買 9
賣 8       (-1)
買 1
買 5
賣 9      (8)
買 8
賣 4      (-1)
賣 10     (2)
買 9
賣 1      (-8)
作者: Hsieh    時間: 2010-9-29 11:06

第一列為欄名
  1. Sub Buy_Sale()
  2. Dim Sale, Buy, A As Range, s&, k&
  3. Set Sale = CreateObject("Scripting.Dictionary")
  4. Set Buy = CreateObject("Scripting.Dictionary")
  5. For Each A In Range([A2], [A65536].End(xlUp))
  6.    Select Case A.Value
  7.       Case "買"
  8.       If Sale.Count > 0 Then
  9.       A.Offset(, 2) = Sale(s) - A.Offset(, 1)
  10.       Sale.Remove s
  11.       s = s + 1
  12.       Else
  13.       Buy(s) = A.Offset(, 1)
  14.       A.Offset(, 2) = ""
  15.       s = s + 1
  16.       End If
  17.       Case "賣"
  18.       If Buy.Count > 0 Then
  19.       A.Offset(, 2).Value = A.Offset(, 1) - Buy(k)
  20.       Buy.Remove k
  21.       k = k + 1
  22.       Else
  23.       Sale(k) = A.Offset(, 1)
  24.       A.Offset(, 2) = ""
  25.       k = k + 1
  26.       End If
  27.    End Select
  28. Next
  29. End Sub
複製代碼
[attach]2913[/attach]
作者: cdkee    時間: 2010-9-29 15:13

回復 2# Hsieh


    謝謝版大教導!
1)跟版大的程式,結果如下,但計算的結果只有8個,應該有9個(括弧的是想要的結果,是以first in first out方式計算)
2)如何才做到在輸入買賣時,即時計算結果。

買        8       
買        6       
賣        6        0(-2)
賣        3                 (-3)       
賣        4       
賣        8       
買        1        2(3)
買        8        -4(0)
買        9        -1
賣        8                  (-1)       
買        1        7
買        5       
賣        9        4(8)
買        8       
賣        4        -4(-1)
賣        10            (2)
買        9        1
賣        1             (-8)
作者: cdkee    時間: 2010-9-29 15:22

回復 2# Hsieh


    再請教版大,以下是小輩的程式,怎樣加入版大的程式在自己的程式中才對?謝謝!
Public i As Integer
Public m As Integer
Public n As Integer
Public B As Integer
Public S As Integer
Public check 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)


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)


End Sub
作者: Hsieh    時間: 2010-9-29 18:17

本帖最後由 Hsieh 於 2010-9-29 22:33 編輯
  1. Private Sub CommandButton1_Click()
  2. r = Application.CountA(Columns("A")) + 1
  3.         Sheets("sheet1").Cells(r, 1) = "買"
  4.         Randomize
  5.         Sheets("sheet1").Cells(r, 2) = Int((10 * Rnd) + 1)
  6. Buy_Sale
  7. End Sub
  8. Private Sub CommandButton2_Click()

  9. r = Application.CountA(Columns("A")) + 1
  10.         Sheets("sheet1").Cells(r, 1) = "賣"
  11.         Randomize
  12.         Sheets("sheet1").Cells(r, 2) = Int((10 * Rnd) + 1)
  13. Buy_Sale
  14. End Sub
  15. Sub Buy_Sale()
  16. Dim Sale, Buy, A As Range, s&, k&
  17. Set Sale = CreateObject("Scripting.Dictionary")
  18. Set Buy = CreateObject("Scripting.Dictionary")
  19. For Each A In Range([A1], [A65536].End(xlUp))
  20.    Select Case A.Value
  21.       Case "買"
  22.       If Sale.Count > 0 Then
  23.       A.Offset(, 2) = Sale(s) - A.Offset(, 1)
  24.       Sale.Remove s
  25.       s = s + 1
  26.       Else
  27.       Buy(s) = A.Offset(, 1)
  28.       A.Offset(, 2) = ""
  29.       s = s + 1
  30.       End If
  31.       Case "賣"
  32.       If Buy.Count > 0 Then
  33.       A.Offset(, 2).Value = A.Offset(, 1) - Buy(k)
  34.       Buy.Remove k
  35.       k = k + 1
  36.       Else
  37.       Sale(k) = A.Offset(, 1)
  38.       A.Offset(, 2) = ""
  39.       k = k + 1
  40.       End If
  41.    End Select
  42. Next
  43. End Sub
複製代碼

作者: cdkee    時間: 2010-9-29 18:56

回復 5# Hsieh


    淚如雨下 ,小輩感激無言!再細味版大美意!




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