用ChatGPT自動來寫MT4/MT5的程式交易? EA工程師即將失業?!【ChatGPT第一集】

ChatGPT簡介

ChatGPT是什麼?

ChatGPT是由OpenAI公司所開發的一個人工智能系統(AI),
是一個可以讓使用者輸入問題,他來回答的聊天機器人。

那聊天機器人在過去幾年中,網路上也都時不時都有,
但跟以往的聊天機器人不同,
他是專門依照人類語言溝通的方式訓練的AI(自然語言處理)
所以你跟他對話起來,對話的體驗感是大幅上升一個維度的。

而他學習了在公開網路上成千上萬的知識,
所以幾乎可以面對任何領域的使用者,所提出的問題都能夠回答。
當然一些比較敏感或爭議性的問題有被OpenAI公司刻意屏蔽。

從去年底,2022年11月30日公開發布起,就造成全網轟動,
網路上許多大神用ChatGPT來創作出賺錢的文案、完整劇情的短影片等等,都讓人驚艷。

而我們在電影中看到鋼鐵人跟他的AI語音助理Jarvis那樣自然的對話,
並且可以幫鋼鐵人處理各式各樣的問題,
ChatGPT就是Jarvis的雛型,
艾比相信在未來幾年內,我們每個人都會有一位像Jarvis的私人虛擬助理。

如果你還沒開始用ChatGPT,那一定要開一個帳號去體驗看看。

https://openai.com/blog/chatgpt/

ChatGPT使用

順帶一提, OpenAI的創始人是伊隆·馬斯克,
那個超狂的男人。

 

聊天機器人有什麼新功能?

你一定會納悶說:
不就一個聊天機器人,能有多厲害?怎麼網路上講得好像要顛覆世界一樣?

因為他的功能遠遠超過聊天。

以下艾比就示範幾個常見的功能:

1.寫文章、寫小說、寫詩、寫歌詞

ChatGPT1

 

請ChatGPT寫比較長的文章時,
常常會遇到寫一半斷掉、他人消失的狀況,
此時請他繼續就可以了。

 

ChatGPT1 1

 

ChatGPT1 2

 

之前大家一直認為機器人會取代社會中的勞力工作,
但目前看起來,可能連創作工作都會不保(哈哈。

 

2. 想主題、列大綱

ChatGPT2

這根本就是靈感量產機,
如果創作者在創作時遇到沒靈感不知道要做什麼內容,
就可以請ChatGPT幫你列出幾十幾百個。

雖然他給出的答案都很中規中矩,而現在的創作者很要求個人特色,
但實在是不失為一個發想靈感的輕鬆方式。
如果你有創作需求,不妨來奴役他看看(邪惡的笑

 

3. 寫功能信件

ChatGPT3 1

ChatGPT3 2

 

ChatGPT很強的是你還可以要求他的寫作風格,
這是以往傳統聊天機器人辦不到的,
同樣的內容,你可以叫他用各種不同風格寫一次給你。

當然你還可以請他幫你寫情書,
你提供ChatGPT一些對方的特質,讓他幫你寫出符合對方口味的情書。

 

4. 虛擬助理、虛擬客服、虛擬情人

ChatGPT4

 

你可以問他各種問題,
有必要可以進一步訓練他,讓他能客製化回答你公司的問題,
串接在你自己的用戶窗口,就直接化身虛擬客服。

也可以化身為你的虛擬秘密情人…哇!超宅的!

ChatGPT4 1

 

小心未來網路上的情感詐騙,
真面目也不是一個肥宅,而只是一隻程式了。
(我寧願選程式)

 

5. 寫Excel公式

ChatGPT5

ChatGPT5 1

 

眾所周知,Excel中可以使用各種公式跟VBA的程式語法,
但是像艾比這樣對於VBA不熟悉的人,要自己寫出來就很困難,
而ChatGPT超方便的是,你只要提供給他你想要達成的功能,
他就能馬上幫你生出來公式的程式碼。

所以從這邊開始我們可以看到,
ChatGPT對於寫「功能性」的程式碼,是非常在行的,
接著我們就來看看,他有多厲害、能夠寫那些語言的程式碼。

 

6. 寫程式碼

以下是請ChatGPT寫Python程式碼。
直接叫他寫一個猜拳遊戲,
猜拳遊戲是Python初學者應該都會練習到的一個基本功,
使用者可以透過終端輸入數字(分別代表剪刀、石頭、布),
然後程式會隨機從三個數字中生成一個,來跟使用者猜拳。

ChatGPT6 1

ChatGPT6 2

 

把程式碼直接複製到Python的IDE當中去跑,
跑出來超完美。

接下來試試看寫java程式碼:

ChatGPT6 3-java

 

不過艾比不會寫java語法,也沒有IDE去執行,
不確定他寫的功能會不會正常運作,
但大致看起來沒什麼問題。

 

下面這個是期貨程式交易MultiCharts 的語法,
給ChatGPT一個策略,讓他直接寫出來:

ChatGPT6 4

 

到這裡,大家應該看得出來,
ChatGPT寫程式碼真的是一流,
只要給他短短的一段敘述、加上使用哪種語法,
幾乎沒有寫不出來的程式。

那這樣一個超酷的功能,
到底是會擊落工程師?還是幫助工程師裝上一對翅膀呢?
這個部分我們在底下再來討論。

那我們這個部落格的是針對MT4與MT5的EA程式交易,
使用的是mql4與mql5的語法,
接下來我們就來試試看,請ChatGPT來寫EA,寫起來是如何呢?

 

ChatGPT寫EA

在寫程式的時候,大部分的「功能」都可以寫成函數,
在主程式碼中呼叫這個函數就可以使用該功能。

所以其實我們可以請ChatGPT把我們想要的每個小功能函數寫出來,
再去呼叫使用。

當然我們也會來對ChatGPT做壓力測試,
看看他能不能直接寫出完整能交易的EA。

寫MQL4

首先,請ChatGPT寫一個計算場上現在有幾張多單的函數:

ChatGPT MT4 1

 

以上ChatGPT回答的程式碼是完全正確的,
你複製到你的MQL4編輯器當中是就可以直接使用的。

其實艾比測試過ChatGPT這個相同的問題不只一次,
雖然之前也會寫出完整的程式碼給我,但整體比較簡短,

而這一次測試時,很驚豔的是他不只寫出程式碼,
還告訴我在主程式碼當中要如何呼叫這個函數,並且跟我解釋範例中12345的意思,
真的發自內心的覺得好厲害!

 

再來我們看一下,請ChatGPT寫一個時間到下午四點時平倉的函數:

ChatGPT MT4 2

 

他寫出的這串代碼,一樣直接複製到MQL4編輯器中編譯後回測,
也是完全可以使用的。
ChatGPT MT4 2 2

 

那以上示範都是功能性的函數,並且是屬於比較簡單的,
接下來我們來看一下,
如果請ChatGPT發想一些交易策略,他會回答什麼:

ChatGPT MT4 3

 

請ChatGPT幫我們想一個策略來區分盤整跟趨勢行情,
他給出的是用「兩條均線」來判斷上升趨勢或下降趨勢,
然後兩條均線相等時是盤整。

自己有在開發交易策略的就知道,
要兩條均線相等是多麼困難的事情好不好!
盤整時均線的表現就是糾纏而已啦,不可能會到相等。

所以如同他最後說的:「這只是一個示範性的程式碼」,
能不能使用還是要看交易員的sense。

不過像這種開放性的問題,
其實在ChatGPT裡面,你不同時間點問他可能都會得到不同答案,
甚至不同人問也會得到不同答案(笑。

像艾比有位學員也是問ChatGPT這個問題,
可是他的ChatGPT回答他的答案,就是艾比自己有使用的高低點加上ATR的濾網,
這個答案就超有sense,得到這種回答完全就是賺到了。

高低點加上ATR的濾網,之前文章也有分享過。
延伸閱讀:
KD鈍化舊策略加上新濾網變得更神奇了!

 

寫MQL5

ChatGPT在寫MQL4的語法時,基本上都是正確的,
所以可以直接通過編譯使用在MT4當中。

可是MT5使用的語法是MQL5,它雖然邏輯跟MT4是99.9%一樣,
但在很多內建語法使用時,名稱寫法跟MT4就完全不一樣。

 

那我們接下來來看看ChatGPT是否也能寫出MT5的語法:

ChatGPT MT5 1

 

如果你直接複製ChatGPT給的程式碼到MT5的EA編輯器的話,
你會發現內建函數它都沒有變色(所以不是MQL5的內建函數),
按編譯後根本全部都是錯誤,沒辦法通過編譯。

ChatGPT MT5 2

第一個,MT5的場上訂單應該是PositionsTotal()而不是OrdersTotal(),
OrdersTotal()是MT4的寫法;

第二個,MT4當中才需要先用OrderSelect來選擇訂單,MT5不用,
所以也不存在後面的SELECT_BY_POS, MODE_TRADES等的語法。

再來,選擇交易訂單的屬性也不是簡單的OrderMagicNumber這樣的寫法,
而是全部都換成PositionGetInteger這樣的抓取訂單特性寫法。

總之看起來就是ChatGPT只會寫MT4哈哈哈。

但可怕的是,我指定他幫我寫MQL5的寫法,
他卻一本正經的提供我MQL4,
我跟他說他寫的是錯的,他承認錯誤後立刻給我一個新的寫法,
但是依然是MQL4啊啊啊啊。

 

好,那我們來換個題目讓ChatGPT再寫看看MQL5的語法,
一樣我們請他寫一個時間到下午四點時平倉的函數:

ChatGPT MT5 3

 

他又很一本正經的跟我說,MQL5程式碼如下….

我們可以看到,在for迴圈中跟剛剛提到的問題一樣,
他依然使用OrdersTotal()、OrderSelect、OrderMagicNumber等這些只能用在MT4的語法。

除此之外MQL5在調用時間的語法,也不能直接寫Hour()跟Minute(),
所以這次ChatGPT提供的答案,依然無法直接使用在MT5的EA當中。

 

這樣看起來,對MT5的使用者來說可能就沒MT4使用者高興了,
ChatGPT幾乎可以提供正確的MT4語法,
但使用MT5的同學目前可能還是要靠自己(或是靠艾比哈哈)。

原因可能是因為在網路上還是以MQL4的資料居多,
並且ChatGPT目前沒有聯網,他學習的資料只有到2021年第四季,
所以也沒辦法為使用者即時的去線上查詢MQL5的語法。

但相信未來會推出能夠聯網的ChatGPT(或類似的),
到時請ChatGPT幫忙寫MT5程式碼應該也沒問題的。

 

ChatGPT目前可以取代工程師嗎?

目前(2023/2)是沒辦法的。原因有二:

一,ChatGPT會用肯定語氣給出錯誤答案

其實透過上面的幾個請ChatGPT寫程式的例子我們就可得知,
如果使用者是不懂程式碼的人,直接使用ChatGPT給出的答案程式碼是有風險的。
即使他的正確率很高,
但一旦有錯誤時,還是要靠工程師才能揪出錯誤,並去人工修改,
所以懂程式碼的工程師還是需要的。

二,內行人才能講出好咒語

從畫圖AI到語言AI(ChatGPT),都是透過使用者輸入特定文字當作指令,
而要精準的寫出該功能的程式碼,也是要懂得人才能下出指令,
不懂的人應該連要請ChatGPT寫什麼功能都講不出來,
所以目前還沒有簡單到可以讓外行小白來直接讓ChatGPT變出能用的程式。

 

所以目前ChatGPT還不會擊落工程師,反而是幫助工程師裝上一對翅膀!

懂程式碼的工程師可以大幅減少coding時間,
可以直接把想要的功能請ChatGPT幾秒鐘來寫出來,
再檢查看有沒有錯誤、或是去IDE編譯後看有沒有error。

或是像艾比這樣非理工背景出生的寫程式者,
很多時候燒腦的是去想程式碼的邏輯要怎麼呈現,例如迴圈、陣列等…
現在有了ChatGPT,我就不用在慢慢去想邏輯怎麼寫,直接請他寫就好,
在這部分,不得不說ChatGPT是更輕鬆的。

應該所有工程師都要去跟ChatGPT當好朋友!

 

ChatGPT寫出完整的EA

在這一篇我們已經看過很多ChatGPT寫出的程式碼,
相信大家都更想知道,
ChatGPT是否可以透過對他講出需求,他就直接幫我們寫出完整EA?

下一篇文章,艾比將來測試看看,
用ChatGPT寫出有完整進出場的EA,並且來回測看看結果如何!

請ChatGPT寫出完整交易策略,它能寫出更長的MT4程式碼嗎?【ChatGPT第二集】

或是也可以直接跳到ChatGPT系列的第三集,
看看艾比找到的,正確使用ChatGPT寫出完整交易程式的方法。

我找到讓ChatGPT寫出完整程式交易策略的方法了!各個擊破法【ChatGPT第三集】

 

👇投資自己的腦袋:

外匯保證金MT4/MT5新手村全修班(線上課程)

MT4/MT5程式交易(EA)語法撰寫實戰班(兩日實體+線上)

 

艾比曾經有一段時間對交易很迷茫
因為聽到了一個說法
說做投資交易的人是對社會「沒有貢獻」的

的確

因為靠投資交易賺來的錢
並不是靠勞動或是付出什麼而得到的
而是靠著在市場當中別人的輸錢而得來的

為什麼要做著對世界沒有幫助的事情
「我是不是應該轉行?」
「我是不是應該去找一份能對社會有貢獻的職業?」

在那段時間艾比一直在思考交易的意義
面對跟交易有關的一切事情
都快樂不起來
因為我覺得自己竟然成為了一個「沒用的人」

後來在一本書當中
學習到了金融的本質,也了解到了金融的意義

--------

人都會生老死,因此有了和其他人做跨期交換的需求
➡金融的本質就是「價值的跨期交換」

人活著的基本行為是在做👉「規避風險」

從東西方早期的文化可以看出規避風險的兩個極端

【東方-儒家文化】

使用「人」當作規避風險的手段
「養兒防老」是儒家文化的出發點

重男輕女
因為男生娶老婆進門,才會是自己家的人
為這個家能夠付出勞力,長輩老了之後照顧長輩

家族婚姻
兒女沒有自由選擇婚姻的權利
因為情感的自由遠不及家族的利益來得重要

傳統社會沒有個人自由 → 自由選擇和養兒防老是不相容的

一個社會越是以「人」為金融、避險工具
就越依戀血緣這種原始因素

【西方-資本主義】

金融市場發達、有豐富的金融工具
透過保險、投資等規劃
不需用養兒防老當作生老病死風險的唯一安排

👉人們可以更自由的安排想要的生活方式

(在中國受儒家文化影響越深的地區,買保險的人口比就越低)

相較於華人重視血緣、傳子不傳賢
歐美更多願意領養小孩
在政府與公司等也能夠讓真正有能力的人來做事

--------

艾比以前剛踏入交易市場時
跟大部分的人一樣
只想要多增加一些收入來讓自己的生活過得更好

但後來開始開設課程收學生
全部的生活都是跟交易相關的
專職從事這些工作

讓我開始思考在賺錢之外,做這些事情的意義

開始去了解為什麼世界會發展出金融?
金融市場帶給世界的幫助又是什麼?

從早期發展出的證券市場
到期貨、選擇權這些衍伸性金融商品
股市、房市、匯市等等
不只是投資者在其中可以獲取財富
而都是有其存在的價值與意義的

理解了之後
艾比對於交易是對社會「沒有貢獻」的這個觀念
就徹底改觀了

這本書是「**耶魯最受歡迎的金融通識課**」
作者陳志武是耶魯大學管理學院金融學教授
雖然是中國湖南人
但對於東西方金融市場分析的非常精闢在理

是一本艾比非常推薦、值得一讀的好書

💬IG留言「金融」
艾比就私訊送給你超過萬字的讀書心得整理
看完覺得收穫滿滿

讓你即使沒有時間看完整本
也可以快速吸收到精華喔

🔔關注@mt4mt5 學習更多交易知識
艾比曾經有一段時間對交易很迷茫 因為聽到了一個說法 說做投資交易的人是對社會「沒有貢獻」的 的確 因為靠投資交易賺來的錢 並不是靠勞動或是付出什麼而得到的 而是靠著在市場當中別人的輸錢而得來的 為什麼要做著對世界沒有幫助的事情 「我是不是應該轉行?」 「我是不是應該去找一份能對社會有貢獻的職業?」 在那段時間艾比一直在思考交易的意義 面對跟交易有關的一切事情 都快樂不起來 因為我覺得自己竟然成為了一個「沒用的人」 後來在一本書當中 學習到了金融的本質,也了解到了金融的意義 -------- 人都會生老死,因此有了和其他人做跨期交換的需求 ➡金融的本質就是「價值的跨期交換」 人活著的基本行為是在做👉「規避風險」 從東西方早期的文化可以看出規避風險的兩個極端 【東方-儒家文化】 使用「人」當作規避風險的手段 「養兒防老」是儒家文化的出發點 重男輕女 因為男生娶老婆進門,才會是自己家的人 為這個家能夠付出勞力,長輩老了之後照顧長輩 家族婚姻 兒女沒有自由選擇婚姻的權利 因為情感的自由遠不及家族的利益來得重要 傳統社會沒有個人自由 → 自由選擇和養兒防老是不相容的 一個社會越是以「人」為金融、避險工具 就越依戀血緣這種原始因素 【西方-資本主義】 金融市場發達、有豐富的金融工具 透過保險、投資等規劃 不需用養兒防老當作生老病死風險的唯一安排 👉人們可以更自由的安排想要的生活方式 (在中國受儒家文化影響越深的地區,買保險的人口比就越低) 相較於華人重視血緣、傳子不傳賢 歐美更多願意領養小孩 在政府與公司等也能夠讓真正有能力的人來做事 -------- 艾比以前剛踏入交易市場時 跟大部分的人一樣 只想要多增加一些收入來讓自己的生活過得更好 但後來開始開設課程收學生 全部的生活都是跟交易相關的 專職從事這些工作 讓我開始思考在賺錢之外,做這些事情的意義 開始去了解為什麼世界會發展出金融? 金融市場帶給世界的幫助又是什麼? 從早期發展出的證券市場 到期貨、選擇權這些衍伸性金融商品 股市、房市、匯市等等 不只是投資者在其中可以獲取財富 而都是有其存在的價值與意義的 理解了之後 艾比對於交易是對社會「沒有貢獻」的這個觀念 就徹底改觀了 這本書是「**耶魯最受歡迎的金融通識課**」 作者陳志武是耶魯大學管理學院金融學教授 雖然是中國湖南人 但對於東西方金融市場分析的非常精闢在理 是一本艾比非常推薦、值得一讀的好書 💬IG留言「金融」 艾比就私訊送給你超過萬字的讀書心得整理 看完覺得收穫滿滿 讓你即使沒有時間看完整本 也可以快速吸收到精華喔 🔔關注@mt4mt5 學習更多交易知識

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *