- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
本帖最後由 hugh0620 於 2012-3-22 10:35 編輯
回復 3# spermbank
這是你需要去思考~ 哪一些是運算中動數(x)=>穫利1%的新股價~ 在賣出價的時候
所以~ 買價是一個既定的事實情況下~ 去推算[穫利1%的新股價]
因此第二個迴圈~ 我用的是 do loop
先求得基本的參數值
1. 買:股價/手續費
再依買的股價依股價原則一個值一格個值去推算小於或等於1%獲利股價
2.用do loop去推算賣出的股價- Sub nn()
- '=========================='調整C區股價規則
- For Each A In Range("A:A").SpecialCells(xlCellTypeConstants, xlNumbers)
- B = Application.Lookup(A, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5))
- A.Offset(, 2) = Application.Ceiling(A, B)
- Next
- '=========================='獲利1%股利計算,不包含手續費、證交稅
- Sheets("Sheet1").Select
- x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算
- For i = 2 To x
- Cells(i, "G") = Cells(i, "C") * Cells(9, "O") + Cells(i, "C")
- Next
- '=========================='調整獲利股價規則
- For Each A In Range("G:G").SpecialCells(xlCellTypeConstants, xlNumbers)
- B = Application.Lookup(A, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5))
- A.Offset(, 0) = Application.Ceiling(A, B)
- Next
- '=========================='計算獲利1%扣除手續費與證交稅金額
- Sheets("Sheet1").Select
- x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算
- For i = 2 To x
- K = Cells(i, "C") '買進股價,是一個固定值的條件下,推算穫利接接近1%時的股價及獲利
- If K * 1000 * 0.001425 * 0.28 <= 20 Then '買進手續費是一個已發生的條件,若低於20圓,則為20圓,
- ABuyP = 20
- Else
- ABuyP = B * 1000 * 0.001425 * 0.28
- End If
- ABuy = K * 1000 + ABuyP
- B1 = Application.Lookup(K, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5)) '股價增加比率
- J = 0
- Do
- B2 = B1 * J
- If (K + B2) * 1000 * 0.001425 * 0.28 <= 20 Then '賣出手續費若低於20圓,則為20圓
- ABuyP1 = 20
- Else
- ABuyP1 = (K + B2) * 1000 * 0.001425 * 0.28
- End If
- ASell = (K + B2) * 1000 - (K + B2) * 1000 * 0.003 - ABuyP1
- A = (ASell - ABuy) / ABuy
- J = J + 1
- Loop While A <= 0.01 '貨利在>=0.01時,停止運算
- Cells(i, "K") = K + B2 - B1 '計算獲利扣除手續費與證交稅的獲利%數
- Cells(i, "L") = (((K + B2 - B1) * 1000 - (K + B2 - B1) * 1000 * 0.003 - ABuyP1) - ABuy) / ABuy
- Cells(i, "M") = (((K + B2 - B1) * 1000 - (K + B2 - B1) * 1000 * 0.003 - ABuyP1) - ABuy) '計算獲利扣除手續費與證交稅的獲利金額
- Next
- End Sub
複製代碼 |
|