發表文章

目前顯示的是 5月, 2026的文章

林逸民野村投信全球航運龍頭00960分散風險效果

圖片
程式碼 style=background-color;blue import csv #輸入import輸出export,輸入csv套件 import math #輸入math套件 from tkinter import * #或者import tkinter as tk scale = 2000 # 放大倍率 base = 600 # 圖形中心高度 def transposeMatrix(m): #自訂轉置transpose函數 N = [] for j in range(len(m[0])): row = [] for i in range(len(m)): row.append(m[i][j]) N.append(row) return N def getMatrixMinor(m,i,j): return [row[:j] + row[j+1:] for row in (m[:i]+m[i+1:])] def getMatrixDeternminant(m): #base case for 2x2 matrix if len(m) == 2: return m[0][0]*m[1][1]-m[0][1]*m[1][0] determinant = 0 for c in range(len(m)): determinant += ((-1)**c)*m[0][c]*getMatrixDeternminant(getMatrixMinor(m,0,c)) return determinant def getMatrixInverse(m): determinant = getMatrixDeternminant(m) if len(m) == 2: #處理2x2方陣 return [[m[1][1]/determinant, -1*m[0][1]/determinant], [-1*m[1][0]/det...

林逸民「python讀入csv檔案計算黃金交叉和死亡交叉」 5月 07, 2026

圖片
 import pandas as pd import numpy as np # 1. 讀取 CSV 檔案 (假設日期欄位為 Date,並將其設為索引) df = pd.read_csv('stock_data.csv', parse_dates=['Date'], index_col='Date') # 2. 設定短天期與長天期的移動平均線 (例如:短期 5日, 長期 20日) short_window = 5 long_window = 20 # 計算均線 df['Short_MA'] = df['Close'].rolling(window=short_window).mean() df['Long_MA'] = df['Close'].rolling(window=long_window).mean() # 3. 標示黃金交叉與死亡交叉 # 黃金交叉:短期均線向上突破長期均線 # 死亡交叉:短期均線向下跌破長期均線 df['Signal'] = 0.0 df['Signal'][short_window:] = np.where(df['Short_MA'][short_window:] > df['Long_MA'][short_window:], 1.0, 0.0) # 計算訊號的變化 (找出交叉點) df['Position'] = df['Signal'].diff() # 4. 篩選出交叉的日期 # Position == 1.0 代表黃金交叉,Position == -1.0 代表死亡交叉 golden_crosses = df[df['Position'] == 1.0] death_crosses = df[df['Position'] == -1.0] print("--- 黃金交叉日期 ---") print(golden_crosses.index.strftime('%Y-%m-%d')) print("\n--- 死亡交叉日期 ---...