發表文章

詹瑋哲python輸入openpyxl處理EXCEL檔案

圖片
  from openpyxl import load_workbook #劉任昌指導詹瑋哲等學生專題 book = load_workbook(filename='wb.xlsx') print(book.sheetnames) #列出所有工作表 """以下也被註解暫時不執行python語言註解 #後面不執行 前後三個引號的部分也不執行 都是註解用 sheet = book['20200101p'] #工作表 rowBegin = 4 #起始列 rowEnd = 10 #結束列780 criticalInc = 0.01 criticalDes = 0.01 localH = sheet.cell(row=rowBegin, column=3).value localL = sheet.cell(row=rowBegin, column=4).value status = 0 wealth = 0 for x, row in enumerate(sheet.iter_rows(min_row = rowBegin, max_row = rowEnd)): rowNo = x + rowBegin #串列編號 x 起始於 0 dayH = row[2].value #當日最高C欄 dayL = row[3].value #當日最低D欄 dayC = row[4].value #當日收盤E欄 if status == -1: #檢測波段高 localH = dayH elif localH < dayH: localH = dayH if status == 1: #檢測波段低 localL = dayL elif localL > dayL: localL = dayL sheet.cell(row = rowNo, column = 6).value =...

詹瑋哲EXCEL運算列表grid search獲得最佳參數

圖片
詹瑋哲 運算列表 A784放置目標函數  漲幅最大 =MATCH(GA784,B784:FY784,0) match index =INDEX($B$783:$FY$783,GB784) 最大 最大的位置match找到 11205.56 73 7.3% 下跌突破點 77 7.7% 上漲突破點

詹瑋哲python處理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"] #將工作表python稱為sheet 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. 列出工作表所有內容") x = sheet["A1"].value #將A1的年月日存在x sheet["A1"] = "劉任昌" + x sheet["F1"] = "波段H" sheet["G1"] = "波段L" sheet["H1"] = "部位" sheet["I1"] = "損益" 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(...

詹瑋哲python import openpyxl 處理EXCEL 5月 18, 2023

圖片
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()

詹瑋哲python math random

圖片
  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程式 影片

詹瑋哲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(...

詹瑋哲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_) 詹瑋哲 資料/模擬分析/目標搜尋/隱含波動率 心得 求取選擇權的隱含波動率(IV, Implied Volatility)的觀念,類似程式交易 回溯測試 的 最佳化參數 。 選擇權權利金的理論價格,計算 參數 股價、履約價、波動率、利率、時間。 利用日資料回溯測試求最佳化參數,未來做日內資料的投機交易,使用五分鐘K線。 台灣期貨市場日交易時段五個小時(8:45-13:45),相當於60個五分鐘。 將利用日資料算得的最佳化參數,除以60,來進行實際操作交易。