2023年6月15日 星期四

電子試算表發明人

 1978年,哈佛大學EMBA學生在教室中發明電子試算表(electronic spreadsheet),這個發明永遠改變人們利用電腦在商業應用的方式(forever changed how people use computers in business.)。後來,賈伯斯請比爾蓋茲為蘋果電腦開發相同軟體,稱為EXCEL,比爾蓋茲要求EXCEL也可以賣到其他平台,最後導致Mac電腦與IBM相容電腦並存。


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截圖


亂數函數主要用在蒙地卡羅模擬分析,用於衍生性金融商品的訂價。

貪吃蛇的python程式






影片


 

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

 

w3schools學習python


w3schools學習python程式碼

#註解蔣姿如程式交易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



心得

  1. 求取選擇權的隱含波動率(IV, Implied Volatility)的觀念,類似程式交易回溯測試最佳化參數
  2. 選擇權權利金的理論價格,計算參數股價、履約價、波動率、利率、時間。
  3. 利用日資料回溯測試求最佳化參數,未來做日內資料的投機交易,使用五分鐘K線。
  4. 台灣期貨市場日交易時段五個小時(8:45-13:45),相當於60個五分鐘。
  5. 將利用日資料算得的最佳化參數,除以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截圖



2023年3月23日 星期四

蔣姿如excel公式IF,AND,MATCH

公式截圖

EXCEL公式

劉任昌	公式先用單引號拷貝國來		
F5	=IF(H4=-1,C5,IF(C5>F4,C5,F4))		
G5	=IF(H4=1,D5,IF(D5(1+$I$2)*G5),1,IF(AND(H4>-1,E5<(1-$G$2)*F5),-1,H4))
I5	=IF(H4=1,E5-E4,IF(H4=-1,E4-E5,0))
"先在以上純存格,強迫轉成文字,
再選擇行貼上,然後恢復原來的公式計算。"	

2023年3月2日 星期四

蔣姿如利用日資料學習五日平均線黃金交叉,死亡交叉

 




開盤	最高	最低	收盤	五日平均	買賣決定			
15059.92	15152.38	14998.03	15012.8					
14933.2	15021.73	14921.06	14970.68					
14972.17	15088.06	14969.97	14980.74				加'單引號註解	
14955.29	14957.82	14728.88	14728.88				=AVERAGE(E2:E6)	
14708.08	14823.15	14630.01	14630.01	14864.622	Sell		=IF(E6 >F6,"Buy",IF(E6<F6,"Sell",""))	
14631.21	14634.16	14464.2	14553.04	14772.67	Sell			
14620.27	14742.79	14620.27	14705.43	14719.62	Sell			
14658.46	14658.46	14538.66	14612.59	14645.99	Sell			
14617.86	14658.7	14515.74	14522.96	14604.806	Sell			
14557.56	14739.36	14557.56	14739.36	14626.676	Buy		共獲利	109.35
14692.92	14756.38	14649.54	14734.13	14662.894	Buy		下次使用一年資料	
14554.21	14568.31	14447.77	14528.55	14627.518	Sell		回朔測試	
14478.45	14493.72	14411.81	14433.32	14591.664	Sell		2010年的結果找出最佳參數	
14410.75	14451.91	14157.99	14170.03	14521.078	Sell		利用這個參數測試2011年的績效	
14205.06	14291.98	14197.86	14234.4	14420.086	Sell		回溯測試	
14323.04	14442.94	14323.04	14442.94	14361.848	Buy			
14318.12	14318.12	14192.98	14271.63	14310.464	Sell			
14271.2	14301.11	14253.2	14285.13	14280.826	Buy			
14310.19	14410.24	14310.19	14328.43	14312.506	Buy			
14249.83	14249.83	14119.3	14173.1	14300.246	Sell			
14097.51	14120.57	13981.63	14085.02	14228.662	Sell			
14183.52	14248.9	14137.69	14137.69	14201.874	Sell			

3/3程式交易

 


Pythoo程式交易

 

統一期貨網頁

API

功能

支援程式語言/軟體

費用

統一API

國內期貨報價

國內外期貨下單

帳務查詢

各式下單機

C#

Excel VBA

Python

免費(請洽營業員申請)

Touchance(下單機)

國內、外期貨報價

國內、外期貨下單

帳務查詢

MultiCharts

Excel VBA

Xbridge(文字檔)

1,000元/月

(或其他收費方式請洽營業員申請)

MultiCharts(專業版)

國內、外期貨報價

國內、外期貨下單

MultiCharts

詳情請洽營業員

統一API與Python

Python是一套簡單容易入門的程式語言,擁有物件導向的特性,並提供了豐富的函式庫,可以幫助您處理各種資料分析,進行網路爬蟲,用來實作深度學習等功能建構AI金融交易模型。統一期貨現在提供Python格式的API元件,讓客戶串接即時行情報價、帳務資訊、委託下單及回報功能,使用者能快速建構自己的量化交易系統。進入量化交易的世界,就從統一期貨的Python API出發

2021年6月9日 星期三

蔣姿如Unicode, UTF-8, 資料型態

維基百科UTF8

劉任昌101單元

劉任昌102單元

 

 UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,也是一種字首碼。它可以用一至四個位元組對Unicode字元集中的所有有效編碼點進行編碼,屬於Unicode標準的一部分。(蔣姿如整理自維基百科)
比較小長度的文字碼(半形英文字碼與阿拉伯數字等)使用頻率較高,直接使用Unicode編碼效率低下,浪費記憶體空間,也浪費電腦的處理資源,更浪費傳輸時間。UTF-8就是為了解決向下相容ASCII碼而設計,Unicode中前128個字元,使用與ASCII碼相同的二進位值的單個位元組進行編碼,而且字面與ASCII碼的字面一一對應,這使得原來處理ASCII字元的軟體無須或只須做少部份修改,即可繼續使用。(蔣姿如整理自維基百科)

以上內容的HTML原始碼如下

<h1>維基百科UTF8</h1>
<iframe height="300" src="https://zh.wikipedia.org/wiki/UTF-8" width="100%"></iframe>

<img src="https://upload.wikimedia.org/wikipedia/commons/c/c4/Utf8webgrowth.svg" width="100%" />

<h1>劉任昌101單元</h1>
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/kPGpKysVOdQ" title="YouTube video player" width="560"></iframe>

<h1>劉任昌102單元</h1>
<iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/hCROAQzSuyE" title="YouTube video player" width="560"></iframe>

UTF-8(8-bit Unicode Transformation Format)是一種針對Unicode的可變長度字元編碼,也是一種字首碼。它可以用一至四個位元組對Unicode字元集中的所有有效編碼點進行編碼,屬於Unicode標準的一部分。(蔣姿如整理自維基百科)</p>

<p style="text-align: left;">比較小長度的文字碼(半形英文字碼與阿拉伯數字等)使用頻率較高,直接使用Unicode編碼效率低下,浪費記憶體空間,也浪費電腦的處理資源,更浪費傳輸時間。UTF-8就是為了解決向下相容ASCII碼而設計,Unicode中前128個字元,使用與ASCII碼相同的二進位值的單個位元組進行編碼,而且字面與ASCII碼的字面一一對應,這使得原來處理ASCII字元的軟體無須或只須做少部份修改,即可繼續使用。(蔣姿如整理自維基百科)</p>

2021年6月3日 星期四

蔣姿如JavaScript使用漢堡、三明治等字元


繪文字EMOJI的UNICODE



2021年5月19日 星期三

蔣姿如EXCEL工作表群組,Query附加與合併資料表

095教學影片

096教學影片

資料->取得資料->綜合查詢->附加Append

 


將「食品業」附加在「水泥業」。

資料->取得資料->綜合查詢->合併MERGE



將「損益表」的「營業收入」與「每股盈餘」與「水泥業與食品業」合併。

EXCEL內建函數

  • =MATCH(H34,水泥與食品營業收入EPS[NewColumn.基本每股盈餘(元)],0)
  • =INDEX(水泥與食品營業收入EPS[公司簡稱],I34)
  • =INDEX(水泥與食品營業收入EPS[董事長],I34)

將EXCEL儲存格,在撰寫模式,貼上純文字

=MATCH(H34,水泥與食品營業收入EPS[NewColumn.基本每股盈餘(元)],0)
=INDEX(水泥與食品營業收入EPS[公司簡稱],I34)
=INDEX(水泥與食品營業收入EPS[董事長],I34)

將EXCEL儲存格,在撰寫模式,直接貼上




2021年5月13日 星期四

蔣姿如,選擇性貼上,轉置Transpose,VLOOKUP,HLOOKUP,ROW

 


EXCEL函數:

  • =VLOOKUP($A2,損益表,14,FALSE) 
  • =VLOOKUP($A13,$A$2:$F$8,F$12)
  • =COLUMN(E1)
  • =ROW(A1)
  •  {=TRANSPOSE(F2:F5)} 
  • =HLOOKUP(C$30,橫變直,$A34,FALSE)

2021年4月28日 星期三

公開資訊觀測站,簽證會計師,產業類別,樞紐分析

公開資訊觀測站






公司代號    公司名稱            公司簡稱  產業類別    住址
1101 台灣水泥股份有限公司 台泥 水泥工業 台北市中山北路2段113號
1102 亞洲水泥股份有限公司 亞泥 水泥工業 台北市大安區敦化南路2段207號30、31樓
1103 嘉新水泥股份有限公司 嘉泥 水泥工業 台北市中山北路2段96號
1104 環球水泥股份有限公司 環泥 水泥工業 台北市南京東路二段125號10樓
1108 幸福水泥股份有限公司 幸福 水泥工業 台北市松江路237號15樓
1109 信大水泥股份有限公司 信大 水泥工業 台北市寶慶路37號7樓
1110 東南水泥股份有限公司 東泥 水泥工業 高雄市前金區五福三路21號4樓之1
1201 味全食品工業股份有限公司 味全 食品工業 台北市松江路125號
1203 味王股份有限公司 味王 食品工業 台北市中山北路二段79號5樓
1210 大成長城企業股份有限公司 大成 食品工業 台南市永康區蔦松二街三號
1213 大西洋飲料股份有限公司 大飲 食品工業 新北市三重區重陽路三段99號10樓






教學影片


公開資訊觀測站,簽證會計師,產業類別,樞紐分析

市占率最高的五家事務所
勤業眾信聯合會計師事務所 360
資誠聯合會計師事務所         206
安永聯合會計師事務所         95
致遠聯合會計師事務所         4
安永聯合聯合會計師事務所 1






公開資訊觀測站




美國的公開資訊觀測站EDGAR直屬於證管會,是國家機構,台灣是隸屬在台灣證卷交易所股份有限公司

2021年4月23日 星期五

期中考UNICODE對照表, EXCEL 函數, 讀取WEB

UNICODE對照表

9F80 
9FA0龿 
履歷一定要寫html網頁設計

EXCEL 函數,UNICODE


上一次從WEB讀入

劉任昌086

劉任昌087

2021年4月15日 星期四

利用函數取代Power Query的結構化

 

教學影片081使用2019



關於UNICODED




資料庫必然是結構化,所謂結構化,例如將「蘋果 Apple」拆成中文「蘋果」與英文「Apple」。 

漢字在電腦20916字。第一個漢字unicode 19968,最後一個漢字

2021年4月7日 星期三

蔣姿如EXCEL資料->從Web取得外部資料->自動更新

讀入表格

 







自動更新


道瓊30 wikipedia

鉅亨網道瓊30

從Web匯入到EXCEL

金融研訓院

網路爬蟲

2021年3月24日 星期三

德國DAX30組成公司,利用EXCEL函數將半結構化資料轉成結構化

find, left, mid, right
 '=FIND(")",[@原來]) '=LEFT([@原來],[@中文]-1)

 



公司名稱原文產業類別
愛迪達Adidas AG體育用品
安聯Allianz SE保險
巴斯夫BASF SE化工
拜耳Bayer AG醫藥
西門子能源股份公司Siemens Energy AG能源
寶馬Bayerische Motoren Werke AG汽車製造
大陸集團Continental AG運輸行業製造
科思創Covestro AG聚合物材料
戴姆勒賓士股份有限公司Daimler AG汽車製造
德意志銀行Deutsche Bank AG金融
德國證券交易所Deutsche Börse AG金融
德國郵政Deutsche Post AG物流
德國電信Deutsche Telekom AG電信
德國住宅公司Deutsche Wohnen SE房地產
益昂E.ON AG能源
費森尤斯集團Fresenius SE健康,醫院
費森尤斯醫療Fresenius Medical Care AG & Co. KGaA腎透析產品和服務,Fresenius SE的子公司
漢高Henkel化工
英飛凌Infineon Technologies AG半導體製造
林德Linde AG化工
默克集團Merck KGaA化工製藥
MTU航空發動機公司MTU Aero Engines AG飛機發動機製造
麥德龍Metro AG商品零售
慕尼黑再保險Münchener Rückversicherungs-Ges. AG保險
萊茵集團RWE AG能源
SAP公司SAP AG企業管理軟體與解決方案供應商
西門子Siemens AG電器製造
大眾汽車Volkswagen AG汽車製造
沃諾維亞Vonovia SE房地產
Delivery HeroDelivery Hero SE網際網路訂餐服務

電子試算表發明人

 1978年,哈佛大學EMBA學生在教室中發明電子試算表(electronic spreadsheet),這個發明永遠改變人們利用電腦在商業應用的方式(forever changed how people use computers in business.)。後來,賈伯斯請比爾...