原創(chuàng)內(nèi)容第866篇,專注智能量化投資、個人成長與財富自由。aitrader的框架后續(xù)計劃在gitee上托管,地址已經(jīng)同步在星球中,并發(fā)布的初始代碼。不想看代碼的同學,我們也打包了相應(yīng)的exe可以直接運行。https://github.com/brentvollebregt/auto-py-to-exe選擇腳本,基本參數(shù),然后把本地目錄選擇一下,就可以打包成exe了。打包過程除了文件目錄有一點不對外,基本沒有什么問題。說缺點的話,打包后文件夾比較大,200M,壓縮后60來M,還算可以接受吧。另外就是殺毒軟件可能會誤報,我是直接加到信任名單里,不過可以看下,如何解決讓它不誤報的問題。直接點擊exe就可以打開軟件,不依賴python環(huán)境 :  import time import pandas as pd from datetime import datetime from lightweight_charts import Chart def rsi(df, period: int = 14): return pd.DataFrame( {"time": df["date"], "RSI": talib.RSI(df["close"], timeperiod=14)} ) def sma(df, period: int = 50): return pd.DataFrame( {"time": df["time"], f"SMA {period}": df["close"].rolling(window=period).mean()} ).dropna() def main(): chart = Chart() df = pd.read_csv("513500.SH.csv") df = df.rename(columns={ 'date': 'time', 'open': 'open', 'high': 'high', 'low': 'low', 'close': 'close' # 如果有成交量列需添加 'volume' }) df['time'] = df['time'].apply(lambda x:datetime.strptime(str(x),'%Y%m%d')) df = df.sort_values('time') # 確保按時間升序排列 #df.set_index('date', inplace=True) print(df[['time', 'open', 'high', 'low', 'close']].head()) # 保持與 sma 返回的 SMA {period} 相同 line = chart.create_line("SMA 30") rsi_chart = chart.create_subchart(height=0.3, width=1, sync=True) rsi_line = rsi_chart.create_line("RSI") rsi_line.set(rsi(df)) line.set(sma(df, period=30)) chart.set(df) chart.show(block=True) if __name__ == "__main__": main() 短期,一天,能做的事情,很有限,其實不必列長長的清單,也許某幾天可以完成的很好,但長期會壓力大,沒有必要。七年一輩子,七年足夠你用1萬小時,去完善一個技能從零到100。關(guān)鍵是你有沒有戰(zhàn)略遠見,長期思考力,去沉淀一件有價值的事情。一次不算“激進”的休假,當然中間還是遠程處理了工作上的一些事情。對于技術(shù)管理的工作,本來就是喜歡且擅長。代碼和數(shù)據(jù)下載:AI量化實驗室——2025量化投資的星辰大海AI量化實驗室 星球,已經(jīng)運行三年多,1600+會員。 aitrader代碼,因子表達式引擎、遺傳算法(Deap)因子挖掘引擎等,支持vnpy,qlib,backtrader和bt引擎,內(nèi)置多個年化30%+的策略,每周五迭代一次,代碼和數(shù)據(jù)在星球全部開源。
|