返回列表 上一主題 發帖

[發問] 迴圈問題

本帖最後由 hugh0620 於 2012-3-22 10:35 編輯

回復 3# spermbank

這是你需要去思考~ 哪一些是運算中動數(x)=>穫利1%的新股價~ 在賣出價的時候
所以~ 買價是一個既定的事實情況下~ 去推算[穫利1%的新股價]
因此第二個迴圈~ 我用的是 do  loop
先求得基本的參數值
1. 買:股價/手續費
再依買的股價依股價原則一個值一格個值去推算小於或等於1%獲利股價
2.用do loop去推算賣出的股價
  1. Sub nn()

  2. '=========================='調整C區股價規則
  3. For Each A In Range("A:A").SpecialCells(xlCellTypeConstants, xlNumbers)
  4. B = Application.Lookup(A, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5))
  5. A.Offset(, 2) = Application.Ceiling(A, B)
  6. Next
  7. '=========================='獲利1%股利計算,不包含手續費、證交稅
  8. Sheets("Sheet1").Select
  9. x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算
  10. For i = 2 To x
  11.     Cells(i, "G") = Cells(i, "C") * Cells(9, "O") + Cells(i, "C")
  12. Next
  13. '=========================='調整獲利股價規則
  14. For Each A In Range("G:G").SpecialCells(xlCellTypeConstants, xlNumbers)
  15. B = Application.Lookup(A, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5))
  16. A.Offset(, 0) = Application.Ceiling(A, B)
  17. Next
  18. '=========================='計算獲利1%扣除手續費與證交稅金額
  19. Sheets("Sheet1").Select
  20. x = Application.WorksheetFunction.CountA(Range("A:A")) '欄位有值範圍計算

  21. For i = 2 To x
  22.         K = Cells(i, "C")    '買進股價,是一個固定值的條件下,推算穫利接接近1%時的股價及獲利
  23.         If K * 1000 * 0.001425 * 0.28 <= 20 Then '買進手續費是一個已發生的條件,若低於20圓,則為20圓,
  24.             ABuyP = 20
  25.         Else
  26.             ABuyP = B * 1000 * 0.001425 * 0.28
  27.         End If
  28.         ABuy = K * 1000 + ABuyP
  29.         B1 = Application.Lookup(K, Array(0, 11, 51, 101, 501, 1001), Array(0.01, 0.05, 0.1, 0.5, 1, 5)) '股價增加比率
  30.         J = 0
  31.         Do
  32.         B2 = B1 * J
  33.         If (K + B2) * 1000 * 0.001425 * 0.28 <= 20 Then '賣出手續費若低於20圓,則為20圓
  34.             ABuyP1 = 20
  35.         Else
  36.             ABuyP1 = (K + B2) * 1000 * 0.001425 * 0.28
  37.         End If
  38.         ASell = (K + B2) * 1000 - (K + B2) * 1000 * 0.003 - ABuyP1
  39.         A = (ASell - ABuy) / ABuy
  40.         J = J + 1
  41.         Loop While A <= 0.01     '貨利在>=0.01時,停止運算
  42.         Cells(i, "K") = K + B2 - B1 '計算獲利扣除手續費與證交稅的獲利%數
  43.         Cells(i, "L") = (((K + B2 - B1) * 1000 - (K + B2 - B1) * 1000 * 0.003 - ABuyP1) - ABuy) / ABuy
  44.         Cells(i, "M") = (((K + B2 - B1) * 1000 - (K + B2 - B1) * 1000 * 0.003 - ABuyP1) - ABuy) '計算獲利扣除手續費與證交稅的獲利金額
  45. Next


  46. End Sub
複製代碼
學習才能提升自己

TOP

回復 3# spermbank


     這個不是程式運用的問題~
     這是一個運算的問題~
學習才能提升自己

TOP

回復 2# hugh0620


    獲利股價 = C區股價*1%  
    Buy = C區股價*1000 + C區股價*手續費率*打折
    Sell = 獲利股價*1000 - 獲利股價*手續費率*打折-獲利股價*證交稅
    獲利%數 = (Sell - Buy)/Buy
    獲利金額 = Sell-Buy
    另外:手續費,若小於20元以20元計算。

    利用設計迴圈或是什麼方式
    可以讓獲利股價(新)扣除手續費與證交稅,能讓獲利%數趨近1%及獲利金額
    想不太出來怎麼來寫,請各位大大指教。

TOP

回復 1# spermbank


    基本的運算總該要提供一下吧~
    哪些欄位的計算是哪些值進行運算~
    並不是所有人都懂~ 這些是怎麼運算滴唷~
學習才能提升自己

TOP

        靜思自在 : 時時好心就是時時好日。
返回列表 上一主題