1978年,哈佛大學EMBA學生在教室中發明電子試算表(electronic spreadsheet),這個發明永遠改變人們利用電腦在商業應用的方式(forever changed how people use computers in business.)。後來,賈伯斯請比爾蓋茲為蘋果電腦開發相同軟體,稱為EXCEL,比爾蓋茲要求EXCEL也可以賣到其他平台,最後導致Mac電腦與IBM相容電腦並存。
蔣姿如
2023年6月15日 星期四
2023年5月25日 星期四
劉任昌python import openpyxl 處理EXCEL
import openpyxl #蔣姿如輸入import openpyxl處理EXCEL的函式庫
book = openpyxl.load_workbook(r'wb.xlsx') #開啟EXCEL工作簿wb.xlsx print("1. 列出所有工作表名稱") sheetNames=book.sheetnames #所有工作表的集合 for name in sheetNames: print(name) print("2. 針對特定工作表, 列出前面數列") #sheet = book["python"] #for row in sheet.iter_rows(min_row=1, max_row=3, min_col=1, max_col=5, values_only=True): # print(row) print("3. 列出工作表所有內容") #sheet["F1"], sheet["G1"], sheet["H1"], sheet["I1"]="波段H","波段L","部位","損益" #sheet["F2"], sheet["G2"], sheet["H2"], sheet["I2"]=sheet["C2"].value, sheet["D2"].value, 0, 0 #for row in sheet.iter_rows(min_row=1, max_row=3, min_col=1, max_col=9, values_only=True): # print(row) #book.save()
from tkinter import * import pygame root = Tk() root.title("蔣姿如") root.geometry("500x400") pygame.mixer.init() def play(): pygame.mixer.music.load('mixkit-tech-house-vibes-130.mp3') pygame.mixer.music.play(loops=0) def stop(): pygame.mixer.music.stop() my_button = Button(root, text=("演奏"), command=play) my_button.pack(pady=20) stop_button = Button(root, text="停止", command=stop) stop_button.pack(pady=20) root.mainloop() # www.pygame.org #pip install -U pygame==2.4.0 --user
2023年5月11日 星期四
蔣姿如 python math radon
w3schools學習python math random函式庫
import math #蔣姿如 輸入數學函式庫 import random #輸入亂數資料庫 x = math.sqrt(2) print(x) #大樂透是49個號碼開出六個 for i in range(6): x=random.randint(1,49) print("開出的第 " + str(i+1) +" 個號碼: " + str(x)) #str是將數字轉成字串string
w3schools學習python math random截圖
2023年5月4日 星期四
蔣姿如Python視窗使用者介面GUI類別class建構正多邊形或星形
#蔣姿如教python設窗程式設計 from tkinter import * #從函式庫 tkinter 輸入所有 * 方法 from math import * #從函式庫 math 輸入所有 * 方法 class Regular: #定義類別Regular正多邊形或星型 def __init__(self, cx, cy, cr, s, t, c, w): #類別共同的設定 self.cx, self.cy, self.cr = cx, cy, cr #取得中心座標cx, cy, 半徑cr self.s, self.t = s, t #取得邊角數目s,t尖銳程度,取代原來的k = s.get() self.c, self.w = c, w #取得顏色c,寬度w self.u = 2 * pi / self.s #使用模組 math 圓周率 pi self.x, self.y = [], [] for i in range( int(self.s * 1.5)): self.x.append(self.cx + self.cr*cos(i*self.u)) self.y.append(self.cy + self.cr*sin(i*self.u)) def draw(self): #類別的方法 for i in range( int(self.s * 1.5) - self.t): canvas.create_line(self.x[i], self.y[i], self.x[i + self.t], self.y[i + self.t], fill = self.c, width = self.w) def show(): #畫圖 poly = Regular(cx.get(), cy.get(), cr.get(), s.get(), t.get(), c.get(), w.get()) polyList.append(poly) polyList[len(polyList)-1].draw() def clear(): #清除視窗的all所有canvas圖 canvas.delete('all') polyList = [] xyr = (50,75,100,150,200,250,300,350,400) st = (1,2,3,4,5,6,7,8,9,10,11,12,16,20,24,28,32) tk = Tk() tk.title("蔣姿如視窗使用者介面GUI") #也可以定義視窗名為 window, root課本都如此習慣 canvas = Canvas(tk, width=600, height=450) canvas.pack() cx, cy, cr, s, t = IntVar(tk),IntVar(tk),IntVar(tk),IntVar(tk),IntVar(tk) cx.set(xyr[3]) #預設座標 x=200 cy.set(xyr[3]) #預設座標 y=200 cr.set(xyr[1]) #預設半徑 r=100 s.set(st[9]) #預設邊形 8 t.set(st[0]) #預設堅度 1即凸多邊形 label1 = Label(tk, text="位置x ").pack(side=LEFT) #距離左側 option1 = OptionMenu(tk, cx, *xyr).pack(side=LEFT) label2 = Label(tk, text="位置y ").pack(side=LEFT) #距離頂端 option2 = OptionMenu(tk, cy, *xyr).pack(side=LEFT) label3 = Label(tk, text="半徑r ").pack(side=LEFT) #半徑 option3 = OptionMenu(tk, cr, *xyr).pack(side=LEFT) label4 = Label(tk, text="邊形s ").pack(side=LEFT) #幾個邊 option4 = OptionMenu(tk, s, *st).pack(side=LEFT) label5 = Label(tk, text="堅度t ").pack(side=LEFT) #相鄰建構,尖銳度 option5 = OptionMenu(tk, t, *st).pack(side=LEFT) label6 = Label(tk, text="顏色").pack(side=LEFT) #顏色 c = StringVar(tk) colorL = ('black','red', 'green', 'blue', 'purple', 'gray') c.set(colorL[0]) option6 = OptionMenu(tk, c, *colorL).pack(side=LEFT) label7 = Label(tk, text="寬度").pack(side=LEFT) #寬度 w = IntVar(tk) widthL = (1, 2, 3, 4, 5, 6) w.set(widthL[0]) option7 = OptionMenu(tk, w, *widthL).pack(side=LEFT) button = Button(tk, text=" 繪圖 ", command = show, bg='black',fg='white').pack(side=LEFT) button1 = Button(tk, text="移除All", command = clear).pack(side=LEFT) tk.mainloop()
增加出現所有圖形的函數與按鈕
2023年4月20日 星期四
蔣姿如python迴圈range
#註解蔣姿如程式交易python迴圈相當於EXCEL一列
#相當於JavaScript的//
for i in range(20,10,-2):
print("第"+str(i)+"列")
#整數i要和字串相+連,先轉成字串string指令str
複習EXCEL都會對應到python指令
- Max
- Min
- Match
- Index
- 目標搜尋,學找最佳會參數
- 運算列表,判斷參數是否可靠、是否一致
使用修飾的CSS指令前後要加style與/style
h1 {background-color: purple;color: white; text-align: center; padding: 10px; border: yellow 20px solid; border-radius: 30px;} h2{ border: green 10px solid; border-radius: 20px;text-align: center;} pre {font-family: verdana; font-size: 20px; border: solid 2px blue; line-height: 1.5}教學影片
013
014
2023年4月13日 星期四
蔣姿如IV隱含波動率/資料/模擬分析/目標搜尋
從選取範圍建立名稱
股價 100 履約價 100 波動率 0.2 利率 0.01 時間 1 d1 0.15 =(LN(股價/履約價)+(利率+波動率*波動率/2)*時間)/波動率/SQRT(時間) d2 -0.05 =d1_-波動率*SQRT(時間) 買權價格 8.43331869 =股價*NORMSDIST(d1_)-履約價*EXP(-利率*時間)*NORMSDIST(d2_) 蔣姿如
資料/模擬分析/目標搜尋/隱含利率說明影片
012
心得
- 求取選擇權的隱含波動率(IV, Implied Volatility)的觀念,類似程式交易回溯測試的最佳化參數。
- 選擇權權利金的理論價格,計算參數股價、履約價、波動率、利率、時間。
- 利用日資料回溯測試求最佳化參數,未來做日內資料的投機交易,使用五分鐘K線。
- 台灣期貨市場日交易時段五個小時(8:45-13:45),相當於60個五分鐘。
- 將利用日資料算得的最佳化參數,除以60,來進行實際操作交易
2023年4月6日 星期四
蔣姿如EXCEL資料/模擬分析/運算列表:買權訂價公式
運算列表練習 股價 履約價 到期日 波動度 利率
工作表worksheet
蔣姿如運算列表練習 股價 履約價 到期日 波動度 利率
550 560 0.1 0.2 0.05
買權權利金 D1 D2
10.657 -0.174 -0.237
=LN(股價/履約價)+(利率+波動度^2/2)*到期日
=NORMSDIST(D1_)*股價-NORMSDIST(d2_)*履約價*EXP(-到期日*利率)
運算列表買權敏感度分析
sigma\時間
10.65705276 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08
0.002 0 0 0 0 2.7673E-266 9.5955E-209 5.2339E-168 8.9536E-138
0.004 0 3.9914E-201 9.7472E-128 3.81612E-91 2.78908E-69 8.70332E-55 1.65927E-44 7.32479E-37
0.006 1.1863E-189 2.06805E-91 1.2357E-58 2.96875E-42 1.92302E-32 6.3904E-26 2.78159E-21 8.02849E-18
0.008 2.7317E-108 8.01117E-53 2.91751E-34 5.89266E-25 2.30217E-19 1.23568E-15 5.68462E-13 5.60892E-11
0.01 1.62863E-70 7.5815E-35 7.25188E-23 7.75721E-17 3.36691E-13 9.19374E-11 5.13224E-09 1.05776E-07
0.012 6.46251E-50 5.27344E-25 1.3398E-16 2.37455E-12 8.9194E-10 4.81648E-08 8.52534E-07 7.4826E-06
0.014 1.93764E-37 5.15522E-19 9.12156E-13 1.36088E-09 1.16592E-07 2.36348E-06 2.08757E-05 0.000109224
0.016 2.67806E-29 4.38164E-15 3.07885E-10 9.19517E-08 3.0116E-06 3.22504E-05 0.000181018 0.00067551
0.018 1.10175E-23 2.33209E-12 1.79049E-08 1.77126E-06 2.99451E-05 0.000206633 0.000848335 0.002506424
0.02 1.21448E-19 2.204E-10 3.46556E-07 1.55242E-05 0.000163244 0.000821195 0.002691275 0.006717812
0.022 1.24972E-16 6.69091E-09 3.24853E-06 8.08336E-05 0.000597245 0.002374417 0.006577566 0.014474309
0.024 2.54623E-14 9.33025E-08 1.84996E-05 0.000293892 0.001657923 0.005503964 0.013401238 0.026765127
0.026 1.65179E-12 7.49434E-07 7.38958E-05 0.000826755 0.003775859 0.010882079 0.023940304 0.044297634
0.028 4.66206E-11 4.02464E-06 0.000227639 0.001925913 0.007430355 0.019122875 0.038782785 0.067487638
0.03 7.07757E-10 1.59931E-05 0.000576959 0.003891627 0.013091122 0.030725518 0.05831151 0.09650128 <-波動度0.03,到期日0.08的買權權利金
excel截圖
訂閱:
文章 (Atom)
電子試算表發明人
1978年,哈佛大學EMBA學生在教室中發明電子試算表(electronic spreadsheet),這個發明永遠改變人們利用電腦在商業應用的方式(forever changed how people use computers in business.)。後來,賈伯斯請比爾...
-
w3schools學習python math random函式庫 import math #蔣姿如 輸入數學函式庫 import random #輸入亂數資料庫 x = math.sqrt(2) print(x) #大樂透是49個號碼開出六個 for i in range(6...
-
import openpyxl #蔣姿如輸入import openpyxl處理EXCEL的函式庫 book = openpyxl.load_workbook(r'wb.xlsx') #開啟EXCEL工作簿wb.xlsx print("1. 列出所...
-
w3schools學習python w3schools學習python程式碼 #註解蔣姿如程式交易python迴圈相當於EXCEL一列 #相當於JavaScript的// for i in range(20,10,-2): print("第"+str(...