發表文章

程式碼註解

圖片
Python 函數def 函數名稱: def draw(): canvas繪圖套件 create_line(x起點,y起點,x終點,y終點) def draw第二個delete def draw():#按下按鈕button1執行draw canvas.create_line(0,500,700,500,width=3,fill='black',arrow='last') canvas.create_line(10,600,10,5,width=3,fill='black',arrow='last') for firm in firms: t=(firm, year.get()) x = 10+20*stdev[t]*2*3**0.5 #放大20 y = 500 - 10*mean[t]*12 #放大10 dot=canvas.create_oval(x-5,y-5,x+5,y+5,fill='blue') lab=canvas.create_text(x+10,y,text=firm[4:7],anchor=W,font=('微軟中黑體', 16)) def delete():#按下按鈕button2執行delete canvas.delete('all') years=[x for x in range(2007, 2025)] year=IntVar(tk) year.set(years[0]) label = Label(tk, text="年度",font=('Arial',30,'bold'),).pack(side=LEFT) #距離左側 option1 = OptionMenu(tk, year, *years).pack(side=LEFT) button1 = Button(tk, text="賴青德繪圖 ",font=('Arial',30,'bold'), command = draw, bg='black...

陳瑀晞python運算CSV輸出TKINTER投資風險與報酬Markowitz

圖片
關鍵程式碼 def draw():#按下按鈕button1執行draw canvas.create_line(0,500,700,500,width=3,fill='black',arrow='last') canvas.create_line(10,600,10,5,width=3,fill='black',arrow='last') for firm in firms: t=(firm, year.get()) x = 10+20*stdev[t]*2*3**0.5 #放大20 y = 500 - 10*mean[t]*12 #放大10 dot=canvas.create_oval(x-5,y-5,x+5,y+5,fill='blue') lab=canvas.create_text(x+10,y,text=firm[4:7],anchor=W,font=('微軟中黑體', 16)) def delete():#按下按鈕button2執行delete canvas.delete('all') years=[x for x in range(2007, 2025)] year=IntVar(tk) year.set(years[0]) label = Label(tk, text="年度",font=('Arial',30,'bold'),).pack(side=LEFT) #距離左側 option1 = OptionMenu(tk, year, *years).pack(side=LEFT) button1 = Button(tk, text="陳瑀晞繪圖 ",font=('Arial',30,'bold'), command = draw, bg='black',fg='white').pack(side=LEFT) button2 = Button(tk, text="陳瑀晞刪除...

馬可維茲風險平均數平面

圖片
https://drive.google.com/file/d/1DEfDy4-l1ikSiOpCNR6SZR7iRB5fvIbt/view?usp=drive_link 程式碼 import csv #輸入csv套件comma separated value f = open('200201to202505.csv','r', encoding="utf-8")#打開下載的檔案SPY.CSV,模式是r讀取, csvreader = csv.reader(f) #將檔案讀入變數csvreader header, rows = list(), list() #宣告空白串列(陣列,清單) firms = set() #建構集合 header = next(csvreader) #串列header儲存檔案第一列 for record in csvreader: #檔案紀錄,逐列row檢視 rows.append(record) #第i筆附加append於rows串列成為rows[i] firms.add(record[0]) #row[0]公司名稱 f.close() #關閉檔案 months = dict() for year in range(2007,2026): months[year]=[str(year*100+month) for month in range(1,13)] count, sum, sumSq, mean, stdev = dict(), dict(), dict(), dict(), dict() for firm in firms: for year in range(2007, 2026): t = (firm, year) #元組(公司,年) count[t] = 0 sum[t] = 0.0 sumSq[t] = 0.0 for...

陳瑀晞LIST清單DICT字典RANDOM模組

圖片
#註解陳瑀晞\學過python import random x = [ i for i in range(10)] print('產生清單',x) y ={} for i in x: y[i]=random.random() print(y) for i in y: print(i, y[i])

CSV程式庫

圖片
今天的python 程式碼 import csv #輸入csv套件comma separated value file = open('SPY.CSV','r') #打開下載的檔案SPY.CSV,模式是r讀取, csvreader = csv.reader(file) #將檔案讀入變數csvreader header, rows = [], [] #宣告空白串列(陣列,清單) header = next(csvreader) #串列header儲存檔案第一列 for row in csvreader: #檔案接續逐列附加append於rows串列 rows.append(row) file.close() #關閉檔案 header.append('MA20') #appendix附錄,為header串列list新曾元素 header.append('部位') #print('印出前十列') #print(header) for i in range(20): rows[i].append(rows[i][5]) for i in range(21,len(rows)): sum20 = 0.0 #實數=浮點數 for j in range(i-20, i): sum20 += float(rows[j][5]) rows[i].append(sum20/20) for i in range(len(rows)-3,len(rows)): #length的命令len(rows) print('第',i+1,'列',rows[i]) file = open('SPYW.CSV','w',newline='') w = csv.writer(file) #寫入檔案 VScode是IDE(程式)整合開發環境 w.writerow(header) #第5列將檔案欄位名稱列header w.writerow...

標普500正三、正二、SPY、負一、負二、負三

圖片
標普500ETF一天走勢 標普500ETF五年走勢 教學影片070

陳瑀晞期中考python讀取csv檔案

圖片
到「程式交易040」下載檔案,然後拷貝程式碼,貼到spyder,另存新檔案abc.py但一定要和下載的檔案同一目錄。 電腦學過HTML, CSS(控制網頁的樣式style), Javascript, Python import csv#陳瑀晞python #輸入csv套件comma separated value file = open('SPY.CSV','r') #打開下載的檔案SPY.CSV,模式是r讀取, csvreader = csv.reader(file) #將檔案讀入變數csvreader header, rows = [], [] #宣告空白串列(陣列,清單) header = next(csvreader) #串列header儲存檔案第一列 for row in csvreader: #檔案接續逐列附加append於rows串列 rows.append(row) file.close() #關閉檔案 print(header) print('陳瑀晞分析資料數目'+str(len(rows))) 參考的線內css指令 <pre style='border: 3px double blue'> double也可以使用其他實心solid點線dotted虛線dashed