用AI打造交易人需要的日常工具(零)

更新於 發佈於 閱讀時間約 17 分鐘
使用AI如ChatGPT來提昇工作效率已經成為今年最熱門的顯學,透過提示工程(Prompt Engineering)不管是使用AI寫作,寫code,甚至快速寫出所需要的工具,都可以在比以往所需時間的一半甚至更少時間完成。這個工具系列挑戰就是想透過AI快速的建立一個交易人在交易的時候所需要的各種工具,包括報表,策略,技術分析,機器學習等所有工具。看完這個系列相信除了產生交易相關工具外,對怎麼使用AI加速工作效率也能略有領悟。
這篇文章是第零篇文章,將會透過介紹如何實作提示工程來產生所需要的文圖程式碼來產生一個紀錄交易小程式。(劇透: 本篇文章文字產生時間約為半小時,主要時間花在重複測試prompt與加入所需要的元素)。為區分AI與本人的寫作,AI寫作部分將由粗體字呈現。

要解決的問題: 產生一個交易紀錄小服務

在證券期貨商品交易的世界,一個好的交易者最重要的第一步就是保持交易紀錄,並透過檢視分析自己的交易紀錄來驗證自己的交易策略和績效是否符合期待。這個交易紀錄可以是最基本的google sheet或是excel檔,也可以是進階一些的網路服務(web app)。接下來示範如何透過AI(chatGPT)來產生此份需求。
通常正常人很難一次到位的把提示寫的盡善盡美。前史丹佛大學教授AI界大神Andrew Ng在他的Prompt Engineering課程中再三呼籲好的提示要能:
  1. 寫出清楚且明確的指示,給出AI必須擔任的角色。
  2. 給模型時間思考,也就是將工作條列式表達完成。
  3. 一步一步建構,每一次建構時都需回頭檢視哪裡沒有達到需求。
  4. 清楚表達所需要產生的格式,如python程式碼,csv檔案。
在不斷實驗下驗證下,以下是經過數次循環產生文件與程式碼並透過檢查輸出不斷修改出來的最終版提示,這邊以括號內的數字表示不同階段給的提示。
----
你是一位熟悉Excel或Google表格的專業人士,我需要一個工作表來記錄股票交易者的交易紀錄。該工作表應包含以下內容:
  1. 交易編號
  2. 入場日期
  3. 做多或做空
  4. 股票代號
  5. 交易股數
  6. 入場價格
  7. 當前價格
  8. 入場交易費用
  9. 其他費用
  10. 總入場花費 = 第5項 * 第6項 + 第7項 + 第8項
  11. 交易指標(例如通道寬度)
  12. 出場日期
  13. 出場價格
  14. 出場交易費用
  15. 其他費用
  16. 總出場收益 = 第13項 * 第5項 - 第14項 - 第15項
  17. 盈虧 = 第16項 - 第10項
  18. 入場評分
  19. 出場評分
  20. 交易評分
  • 請提供一段用於生成上述工作表的Python代碼。(一)
  • 將程式碼轉化成 streamlit網路服務介面並創造出相應之按鈕。(二)
(註:streamlit為資料科學家常用之雛形網路服務庫)
  • 接下來你是一個部落客作家,透過產生之程式碼寫出相應之文章。(三)
  • 加入以下引用: 引用自進入我的交易室一書第八章,作者亞歷山大·埃爾德(四)
  • 另外產生一個python檔案讀取生成之交易紀錄檔並產生Profit/Loss對應時間的圖表(五)
---
以下為AI產生出來的結果,確實很驚人!
標題:使用Python建立交易工作表:逐步指南(參考《進入我的交易室》一書,作者:亞歷山大·埃爾德)
簡介: 在股票交易領域中,準確記錄交易紀錄對於分析績效和做出明智決策至關重要。儘管像Excel或Google Sheets等試算表工具通常用於此目的,但我們可以利用Python創建定制的交易工作表。在本逐步指南中,我們將引導您透過Python建立交易工作表的過程,使您能夠高效記錄和分析您的股票交易紀錄。
先決條件: 為了跟隨本教程,您需要安裝Python和以下庫:
  • pandas:一個強大的數據處理庫。
  • streamlit:一個用於構建交互式應用程序的易用框架。
第1步:環境設置 首先,在項目目錄中創建一個新目錄並初始化虛擬環境。打開終端或命令提示符,運行以下命令:
mkdir trading-worksheet
cd trading-worksheet
python -m venv env
source env/bin/activate  # 對於Unix系統
env\Scripts\activate  # 對於Windows系統
第2步:安裝所需庫 在終端中運行以下命令安裝所需庫:
pip install streamlit pandas
第3步:創建Streamlit界面 創建一個新的Python文件,例如trading_worksheet.py,並在首選的文本編輯器中打開它。將以下代碼複製到文件中:
import streamlit as st
import pandas as pd
# 創建一個空字典以存儲交易細節
columns = {
    '交易編號': [],
    '入場日期': [],
    '做多或做空': [],
    '股票代號': [],
    '交易股數': [],
    '入場價格': [],
    '當前價格': [],
    '入場交易費用': [],
    '其他費用': [],
    '總入場花費': [],
    '交易指標': [],
    '出場日期': [],
    '出場價格': [],
    '出場交易費用': [],
    '其他費用': [],
    '總出場收益': [],
    '盈虧': [],
    '入場評分': [],
    '出場評分': [],
    '交易評分': []
}
# 創建Streamlit界面
st.title('股票交易紀錄')
# 提示用戶輸入要記錄的交易數量
num_transactions = st.number_input('輸入交易數量:', min_value=1, step=1)
# 根據交易數量迭代
for i in range(num_transactions):
    st.header(f'交易 {i + 1}')
    # 提示用戶輸入交易細節並將其添加到字典中
# 從字典創建DataFrame
df = pd.DataFrame(columns)
第4步:收集交易細節 在迴圈中,提示用戶輸入交易細節,如入場日期、做多或做空、股票代號、交易股數、入場價格、當前價格、入場交易費用、其他費用、交易指標、出場日期、出場價格、出場交易費用和其他費用。將以下代碼更新到迴圈中:
for i in range(num_transactions):
    st.header(f'交易 {i + 1}')
    transaction_number = i + 1
    date_of_entry = st.text_input('入場日期(YYYY-MM-DD):')
    long_or_short = st.selectbox('做多或做空:', ['做多', '做空'])
    stock_ticker = st.text_input('股票代號:')
    number_of_stocks_traded = st.number_input('交易股數:', min_value=0.0, step=0.01)
    price_of_entry = st.number_input('入場價格:', min_value=0.0, step=0.01)
    current_price = st.number_input('當前價格:', min_value=0.0, step=0.01)
    entry_transaction_fees = st.number_input('入場交易費用:', min_value=0.0, step=0.01)
    other_fees = st.number_input('其他費用:', min_value=0.0, step=0.01)
    trading_metric = st.text_input('交易指標(例如通道寬度):')
    date_of_exit = st.text_input('出場日期(YYYY-MM-DD):')
    price_of_exit = st.number_input('出場價格:', min_value=0.0, step=0.01)
    exit_transaction_fees = st.number_input('出場交易費用:', min_value=0.0, step=0.01)
    other_fees_exit = st.number_input('其他出場費用:', min_value=0.0, step=0.01)
    total_entry_spend = number_of_stocks_traded * price_of_entry + current_price + entry_transaction_fees
    total_exit_gain = price_of_exit * number_of_stocks_traded - exit_transaction_fees - other_fees_exit
    profit_loss = total_exit_gain - total_entry_spend
    # 將值添加到字典的相應列中
    columns['交易編號'].append(transaction_number)
    columns['入場日期'].append(date_of_entry)
    columns['做多或做空'].append(long_or_short)
    columns['股票代號'].append(stock_ticker)
    columns['交易股數'].append(number_of_stocks_traded)
    columns['入場價格'].append(price_of_entry)
    columns['當前價格'].append(current_price)
    columns['入場交易費用'].append(entry_transaction_fees)
    columns['其他費用'].append(other_fees)
    columns['總入場花費'].append(total_entry_spend)
    columns['交易指標'].append(trading_metric)
    columns['出場日期'].append(date_of_exit)
    columns['出場價格'].append(price_of_exit)
    columns['出場交易費用'].append(exit_transaction_fees)
    columns['其他費用'].append(other_fees_exit)
    columns['總出場收益'].append(total_exit_gain)
    columns['盈虧'].append(profit_loss)
    columns['入場評分'].append('')
    columns['出場評分'].append('')
    columns['交易評分'].append('')
5步:此外,借助Python及其強大的可視化庫(如matplotlib或seaborn),您可以基於記錄在交易工作表中的盈虧數據創建深入的視覺化效果。通過將盈虧數據與日期進行繪製,您可以在視覺上對自己的交易績效有更深入的了解。
要生成盈虧的視覺化效果,您可以利用從交易工作表生成的Excel表格中存儲的數據。首先,導入必要的庫:接下來,將Excel文件讀取到DataFrame中:假設您的Excel表格中有一個名為「Date of Entry」的列,其中包含日期,以及一個名為「Profit/Loss」的列,代表每筆交易的盈虧情況,您可以創建一個折線圖來視覺化隨時間累計的盈虧情況。
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('transaction_logs.xlsx')
# Convert the "Date of Entry" column to datetime data type
df['Date of Entry'] = pd.to_datetime(df['Date of Entry'])
# Sort the DataFrame by date
df.sort_values('Date of Entry', inplace=True)
# Calculate the cumulative sum of profit/loss
df['Cumulative Profit/Loss'] = df['Profit/Loss'].cumsum()
# Create the plot
plt.figure(figsize=(10, 6))
plt.plot(df['Date of Entry'], df['Cumulative Profit/Loss'])
plt.title('Cumulative Profit/Loss Over Time')
plt.xlabel('Date')
plt.ylabel('Cumulative Profit/Loss')
plt.xticks(rotation=45)
plt.grid(True)
# Display the plot
plt.show()
第6步:保存工作表 在這一點上,用戶已經輸入了所有必要的交易細節。要將交易工作表保存為Excel文件,在迴圈之後添加以下代碼:
# 從字典創建DataFrame
df = pd.DataFrame(columns)
# 將DataFrame保存為CSV文件
df.to_excel('transaction_logs.xlsx', index=False)
st.success('交易工作表已保存為「transaction_logs.xlsx」')
第7步:運行應用程序 要運行應用程序,打開終端或命令提示符,切換到項目目錄並執行以下命令:
streamlit run trading_worksheet.py
結論: 在本逐步指南中,我們展示了如何使用Python和Streamlit庫來創建交易工作表,並參考了亞歷山大·埃爾德的《進入我的交易室》一書中的原則。通過遵循本指南,您可以開發一個定制的工具,用於記錄和分析您的股票交易紀錄,幫助您深入了解自己的績效並為未來的交易策略做出基於數據的決策。隨著Python的靈活性和埃爾德博士的原則,您將能夠建立一個強大的交易系統。祝您交易愉快!
--
檢視以上AI產生的程式碼和文字,可以很坦白的說正確率尤其是程式碼部份極高。拜chatGPT大量閱讀程式碼之賜,現在的AI已經可以準確地寫出提示明確的程式碼。在文字部份也是基本符合給出的提示需求。最後產生出來的web服務測試過後略為修改一點點也可以正確啟用。如此一來AI已經可以幫助我們大幅度減少所需要的工時,而讓我們尤其是交易者可以專心思考重要的細節,如策略條件,產生何種技術分析。若是分析師也可以快速產生所需要的文字說明。
各位要不要也試試看呢?
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
你可能也想看
Google News 追蹤
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
背後的機制是: 人類用戶:設定目標 AI Agent:定義任務排序任務 (Defining and Sequencing Tasks),執行任務 (Task Execution),評估 (Evaluation) 而這途中,AI Agent可以使用大語言模型,可以使用網路,可以使用其他工具。
Thumbnail
個股當沖完整記錄目前也會放上來做紀錄,其實量化自動交易就是完成實際上的回測數據,接下來就是嚴格執行,過程中不能干預,並維持確保系統正常執行,並持續開發新策略即可。
Thumbnail
股市交易中,若能透過程式來輔助進出場的訊號,當手上的持股或者股池數量較多時,可以提供投資人較有效率的判斷,因此非常建議投資人花費一點時間了解程式交易的邏輯,比較常見的就是XQ全球贏家的"盤中量化模組(1000NT/月)" 或者比較簡易型的量化積木模組(500NT/月)。 每個投資者會因學習的過
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
分享在工作場景中使用AI生成帶狀節目腳本的實際應用,並提供了關於AI腳本生成的效率革命、腳本生成流程拆解、定期內容創作的AI應用、AI腳本生成步驟拆解以及AI協作的相關內容。讓AI幫助做出精彩演出,提升工作效率,減輕負擔。
Thumbnail
給出好的指令也是一門學問! 我們在業界稱為「指令工程」(Prompt Engineering),OpenAI 官方也有公布指令工程的操作資訊,但是今天我們只要學會這樣的操作方式,你可以贏過現在多數的AI使用者。
Thumbnail
對於許多企業而言,試算表是日常業務和決策過程中不可或缺的工具。它們被用於各種目的,從財務預算和盈虧分析到庫存管理和客戶數據記錄。然而,隨著業務的發展和數據量的增加,許多人會發現自己面臨著試算表管理和維護的挑戰,這些挑戰可能妨礙效率、準確性和生產力。 1. 數據管理的繁瑣性 試算表中數據的輸入
Thumbnail
大家好,我是萊丘,今天要與大家分享的是 OpenAI最新公布的AI提示詞生成指南。這份指南分成六大要點,幫助我們如何有效地跟ChatGPT互動,就算你不會寫 code 也可以輕鬆掌握。 要點一:指令清晰且具體 大家都知道,ChatGPT 雖然聰明,但它不是讀心術的高手,所以我們需
提問的內容越是清晰,強者、聰明人越能在短時間內做判斷、給出精準的建議,他們會對你產生「好印象」,認定你是「積極」的人,有機會、好人脈會不自覺地想引薦給你
背後的機制是: 人類用戶:設定目標 AI Agent:定義任務排序任務 (Defining and Sequencing Tasks),執行任務 (Task Execution),評估 (Evaluation) 而這途中,AI Agent可以使用大語言模型,可以使用網路,可以使用其他工具。
Thumbnail
個股當沖完整記錄目前也會放上來做紀錄,其實量化自動交易就是完成實際上的回測數據,接下來就是嚴格執行,過程中不能干預,並維持確保系統正常執行,並持續開發新策略即可。
Thumbnail
股市交易中,若能透過程式來輔助進出場的訊號,當手上的持股或者股池數量較多時,可以提供投資人較有效率的判斷,因此非常建議投資人花費一點時間了解程式交易的邏輯,比較常見的就是XQ全球贏家的"盤中量化模組(1000NT/月)" 或者比較簡易型的量化積木模組(500NT/月)。 每個投資者會因學習的過
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
  本篇文章分享了自行開發的臺指期當沖策略,並使用XQ全球贏家進行自動化交易買賣。主要內容包括今日交易重點、當日損益、自動交易損益計算與績效圖以及各交易策略說明。文章強調策略的執行和分享交易績效的重要性。
Thumbnail
分享在工作場景中使用AI生成帶狀節目腳本的實際應用,並提供了關於AI腳本生成的效率革命、腳本生成流程拆解、定期內容創作的AI應用、AI腳本生成步驟拆解以及AI協作的相關內容。讓AI幫助做出精彩演出,提升工作效率,減輕負擔。
Thumbnail
給出好的指令也是一門學問! 我們在業界稱為「指令工程」(Prompt Engineering),OpenAI 官方也有公布指令工程的操作資訊,但是今天我們只要學會這樣的操作方式,你可以贏過現在多數的AI使用者。
Thumbnail
對於許多企業而言,試算表是日常業務和決策過程中不可或缺的工具。它們被用於各種目的,從財務預算和盈虧分析到庫存管理和客戶數據記錄。然而,隨著業務的發展和數據量的增加,許多人會發現自己面臨著試算表管理和維護的挑戰,這些挑戰可能妨礙效率、準確性和生產力。 1. 數據管理的繁瑣性 試算表中數據的輸入
Thumbnail
大家好,我是萊丘,今天要與大家分享的是 OpenAI最新公布的AI提示詞生成指南。這份指南分成六大要點,幫助我們如何有效地跟ChatGPT互動,就算你不會寫 code 也可以輕鬆掌握。 要點一:指令清晰且具體 大家都知道,ChatGPT 雖然聰明,但它不是讀心術的高手,所以我們需