內容目錄
ChatGPT簡介
ChatGPT是什麼?
ChatGPT是由OpenAI公司所開發的一個人工智能系統(AI),
是一個可以讓使用者輸入問題,他來回答的聊天機器人。
那聊天機器人在過去幾年中,網路上也都時不時都有,
但跟以往的聊天機器人不同,
他是專門依照人類語言溝通的方式訓練的AI(自然語言處理),
所以你跟他對話起來,對話的體驗感是大幅上升一個維度的。
而他學習了在公開網路上成千上萬的知識,
所以幾乎可以面對任何領域的使用者,所提出的問題都能夠回答。
當然一些比較敏感或爭議性的問題有被OpenAI公司刻意屏蔽。
從去年底,2022年11月30日公開發布起,就造成全網轟動,
網路上許多大神用ChatGPT來創作出賺錢的文案、完整劇情的短影片等等,都讓人驚艷。
而我們在電影中看到鋼鐵人跟他的AI語音助理Jarvis那樣自然的對話,
並且可以幫鋼鐵人處理各式各樣的問題,
ChatGPT就是Jarvis的雛型,
艾比相信在未來幾年內,我們每個人都會有一位像Jarvis的私人虛擬助理。
如果你還沒開始用ChatGPT,那一定要開一個帳號去體驗看看。
https://openai.com/blog/chatgpt/
順帶一提, OpenAI的創始人是伊隆·馬斯克,
那個超狂的男人。
聊天機器人有什麼新功能?
你一定會納悶說:
不就一個聊天機器人,能有多厲害?怎麼網路上講得好像要顛覆世界一樣?
因為他的功能遠遠超過聊天。
以下艾比就示範幾個常見的功能:
1.寫文章、寫小說、寫詩、寫歌詞
請ChatGPT寫比較長的文章時,
常常會遇到寫一半斷掉、他人消失的狀況,
此時請他繼續就可以了。
之前大家一直認為機器人會取代社會中的勞力工作,
但目前看起來,可能連創作工作都會不保(哈哈。
2. 想主題、列大綱
這根本就是靈感量產機,
如果創作者在創作時遇到沒靈感不知道要做什麼內容,
就可以請ChatGPT幫你列出幾十幾百個。
雖然他給出的答案都很中規中矩,而現在的創作者很要求個人特色,
但實在是不失為一個發想靈感的輕鬆方式。
如果你有創作需求,不妨來奴役他看看(邪惡的笑
3. 寫功能信件
ChatGPT很強的是你還可以要求他的寫作風格,
這是以往傳統聊天機器人辦不到的,
同樣的內容,你可以叫他用各種不同風格寫一次給你。
當然你還可以請他幫你寫情書,
你提供ChatGPT一些對方的特質,讓他幫你寫出符合對方口味的情書。
4. 虛擬助理、虛擬客服、虛擬情人
你可以問他各種問題,
有必要可以進一步訓練他,讓他能客製化回答你公司的問題,
串接在你自己的用戶窗口,就直接化身虛擬客服。
也可以化身為你的虛擬秘密情人…哇!超宅的!
小心未來網路上的情感詐騙,
真面目也不是一個肥宅,而只是一隻程式了。
(我寧願選程式)
5. 寫Excel公式
眾所周知,Excel中可以使用各種公式跟VBA的程式語法,
但是像艾比這樣對於VBA不熟悉的人,要自己寫出來就很困難,
而ChatGPT超方便的是,你只要提供給他你想要達成的功能,
他就能馬上幫你生出來公式的程式碼。
所以從這邊開始我們可以看到,
ChatGPT對於寫「功能性」的程式碼,是非常在行的,
接著我們就來看看,他有多厲害、能夠寫那些語言的程式碼。
6. 寫程式碼
以下是請ChatGPT寫Python程式碼。
直接叫他寫一個猜拳遊戲,
猜拳遊戲是Python初學者應該都會練習到的一個基本功,
使用者可以透過終端輸入數字(分別代表剪刀、石頭、布),
然後程式會隨機從三個數字中生成一個,來跟使用者猜拳。
把程式碼直接複製到Python的IDE當中去跑,
跑出來超完美。
接下來試試看寫java程式碼:
不過艾比不會寫java語法,也沒有IDE去執行,
不確定他寫的功能會不會正常運作,
但大致看起來沒什麼問題。
下面這個是期貨程式交易MultiCharts 的語法,
給ChatGPT一個策略,讓他直接寫出來:
到這裡,大家應該看得出來,
ChatGPT寫程式碼真的是一流,
只要給他短短的一段敘述、加上使用哪種語法,
他幾乎沒有寫不出來的程式。
那這樣一個超酷的功能,
到底是會擊落工程師?還是幫助工程師裝上一對翅膀呢?
這個部分我們在底下再來討論。
那我們這個部落格的是針對MT4與MT5的EA程式交易,
使用的是mql4與mql5的語法,
接下來我們就來試試看,請ChatGPT來寫EA,寫起來是如何呢?
ChatGPT寫EA
在寫程式的時候,大部分的「功能」都可以寫成函數,
在主程式碼中呼叫這個函數就可以使用該功能。
所以其實我們可以請ChatGPT把我們想要的每個小功能函數寫出來,
再去呼叫使用。
當然我們也會來對ChatGPT做壓力測試,
看看他能不能直接寫出完整能交易的EA。
寫MQL4
首先,請ChatGPT寫一個計算場上現在有幾張多單的函數:
以上ChatGPT回答的程式碼是完全正確的,
你複製到你的MQL4編輯器當中是就可以直接使用的。
其實艾比測試過ChatGPT這個相同的問題不只一次,
雖然之前也會寫出完整的程式碼給我,但整體比較簡短,
而這一次測試時,很驚豔的是他不只寫出程式碼,
還告訴我在主程式碼當中要如何呼叫這個函數,並且跟我解釋範例中12345的意思,
真的發自內心的覺得好厲害!
再來我們看一下,請ChatGPT寫一個時間到下午四點時平倉的函數:
他寫出的這串代碼,一樣直接複製到MQL4編輯器中編譯後回測,
也是完全可以使用的。
那以上示範都是功能性的函數,並且是屬於比較簡單的,
接下來我們來看一下,
如果請ChatGPT發想一些交易策略,他會回答什麼:
請ChatGPT幫我們想一個策略來區分盤整跟趨勢行情,
他給出的是用「兩條均線」來判斷上升趨勢或下降趨勢,
然後兩條均線相等時是盤整。
自己有在開發交易策略的就知道,
要兩條均線相等是多麼困難的事情好不好!
盤整時均線的表現就是糾纏而已啦,不可能會到相等。
所以如同他最後說的:「這只是一個示範性的程式碼」,
能不能使用還是要看交易員的sense。
不過像這種開放性的問題,
其實在ChatGPT裡面,你不同時間點問他可能都會得到不同答案,
甚至不同人問也會得到不同答案(笑。
像艾比有位學員也是問ChatGPT這個問題,
可是他的ChatGPT回答他的答案,就是艾比自己有使用的高低點加上ATR的濾網,
這個答案就超有sense,得到這種回答完全就是賺到了。
高低點加上ATR的濾網,之前文章也有分享過。
延伸閱讀:
KD鈍化舊策略加上新濾網變得更神奇了!
寫MQL5
ChatGPT在寫MQL4的語法時,基本上都是正確的,
所以可以直接通過編譯使用在MT4當中。
可是MT5使用的語法是MQL5,它雖然邏輯跟MT4是99.9%一樣,
但在很多內建語法使用時,名稱寫法跟MT4就完全不一樣。
那我們接下來來看看ChatGPT是否也能寫出MT5的語法:
如果你直接複製ChatGPT給的程式碼到MT5的EA編輯器的話,
你會發現內建函數它都沒有變色(所以不是MQL5的內建函數),
按編譯後根本全部都是錯誤,沒辦法通過編譯。
第一個,MT5的場上訂單應該是PositionsTotal()而不是OrdersTotal(),
OrdersTotal()是MT4的寫法;
第二個,MT4當中才需要先用OrderSelect來選擇訂單,MT5不用,
所以也不存在後面的SELECT_BY_POS, MODE_TRADES等的語法。
再來,選擇交易訂單的屬性也不是簡單的OrderMagicNumber這樣的寫法,
而是全部都換成PositionGetInteger這樣的抓取訂單特性寫法。
總之看起來就是ChatGPT只會寫MT4哈哈哈。
但可怕的是,我指定他幫我寫MQL5的寫法,
他卻一本正經的提供我MQL4,
我跟他說他寫的是錯的,他承認錯誤後立刻給我一個新的寫法,
但是依然是MQL4啊啊啊啊。
好,那我們來換個題目讓ChatGPT再寫看看MQL5的語法,
一樣我們請他寫一個時間到下午四點時平倉的函數:
他又很一本正經的跟我說,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系列的第三集,
看看艾比找到的,正確使用ChatGPT寫出完整交易程式的方法。
👇投資自己的腦袋:
相關文章