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

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

ChatGPT能寫出程式交易嗎?

在ChatGPT系列的前兩集有講到,
目前要使用ChatGPT寫出完整的交易策略EA還是很困難的,
其中的各種錯誤太多,
而程式新手對語法的理解還不深、可能沒辦法解決所有的錯誤。

延伸閱讀:
用ChatGPT自動來寫MT4/MT5的程式交易? EA工程師即將失業?!【ChatGPT第一集】
請ChatGPT寫出完整交易策略,它能寫出更長的MT4程式碼嗎?【ChatGPT第二集】

而艾比在近期的EA教學課程當中,為了要教學員如何使用ChatGPT,
突然領悟到要使用ChatGPT這個工具的正確方式。

透過這樣正確的方式,
我自己只寫了整支EA的1%程式碼,而且是無關緊要的部分;
其他99%都完全靠「出一張嘴」的方式,命令ChatGPT寫出來的。

程式交易員接下來真的可以進入動口不動手、史上最快速寫出EA的境界了。
然後我們就可以更快的去回測到某個交易策略,
去知道一個策略賺不賺錢?能不能使用了。

 

怎樣才是完整程式交易策略?

首先,我們要先釐清的定義是:
「怎樣的策略才算是『完整的』交易策略?」

那艾比這邊的定義就是:
有「進場+出場」,就是完整的交易策略。

這是最基本的所謂的一個完整交易的兩個步驟:進場與出場,
一個交易不會只有進場沒有出場;或是沒有進場只有出場,
一進一出才能構成完整的交易循環。

那當然交易策略還會包含很多其他的內容,進而變成更完整的交易系統,
例如:
如何設定止損盈利?、如何加減碼?放在什麼商品與時區?
進一步再到策略與策略間的相關性高低?
策略與帳戶之間的資金風險控制、要多大的曝顯?等等…

但以上都不包含在本文的所謂的完整交易策略中,
今天的目標就是使用ChatGPT製作出包含「進場+出場」的EA。

先求有再求好。

 

ChatGPT寫出完整程式交易

各個擊破法

明確了「進場+出場」的概念之後,我們再去細分EA要包含的內容。
我們不會希望說只有進場+出場,也就是沒理由的進場之後,馬上又沒理由的出場。

所以實際上會是需要:
1.進場條件、2.進場的動作、
3.出場條件、4.出場的動作,以上這四個功能。

我們在這邊更加釐清了每個需要的「小區塊」,
我們接下來要做的就是讓ChatGPT寫出以上四個小區塊的程式碼,
我們再自行把它們組裝在一起。

這個概念是在演算法當中用來解決問題的方式,
英文叫做「divide and conquer」
顧名思義就是把一個大問題分割成多個較小的子問題,進行分別解決,
最終將子問題的解合併起來得到整個問題的解。
用中文來說,就是「各個擊破」。

而因為小的問題好解決,
如同我們在ChatGPT系列文章中的前兩集有講到:
ChatGPT寫一個簡單函數的正確機率非常高、幾乎可以直接使用。

所以我們就把完整EA拆分成上面提到的四個簡單函數,
就能夠用最高正確機率的ChatGPT答案,進而不用修改什麼的最快速度
生出完整的程式交易EA。

 

進場下單

首先,我們先來要求ChatGPT生出進場下單的函數,
並且為了不要一旦符合條件之後,就瘋狂的一直打單進去,
所以給它一個要求限制,
就是場上沒有多單才會進多單;場上沒有空單才會進空單。

然後ChatGPT快速給出了以下函數:

ChatGPT3 進場函數1

MT4下單的函數OrderSend是一個很簡單的函數,所以不太會有問題,
而且在ChatGPT下方的說明中,還會跟你解釋OrderSend第一個參數是交易品種、第二個參數是交易類型等等…算是還教你一些使用知識。

那在一開始判斷場上有沒有單的時候,它使用了一個函數叫做「MarketPosition()」,
說這個函數可以判斷持倉狀態,
我驚訝了一下,想說竟然還有這樣的函數我不知道嗎?

結果,我把ChatGPT的程式碼貼到編輯器之後按編譯,
哈,根本就沒有這個內建函數、MQL4或MQL5都沒有這個函數喔,
ChatGPT又在一本正經的胡說八道了!
後來google了一下才知道MarketPosition()是Multicharts的語法。

所以這邊就再指定給它說請不要使用MarketPosition(),
請它在重寫一個:

ChatGPT3 進場函數2

第二次寫出來的程式碼就很好了,
直接貼入編輯器當中,可以直接編譯成功。

細看語法也沒有問題,
就是標準的用迴圈掃描場上、再用OrderSelect來選擇交易單,
如果沒有單,它的自創函數hasPosition就會是false,進而才能夠下單。

所以,在這邊我們請ChatGPT寫出「進場的動作」的任務成功!
多單進場跟空單進場的動作兩個函數都完成!

接下來我們就往下一步,進出場的條件來邁進。

 

交易條件

這次的交易條件使用的是近期的EA教學實體課當中,
有學員問我的一個寫法,
其實就是著名的K線組合的「酒田戰法」,當中的三連陽。

那對於程式邏輯概念不熟悉的新熟來說,
要學會for迴圈怎麼使用,是要花一些時間理解的,
而艾比其實一直提倡的是程式交易應該著重在交易上面,而不是程式功力多強大。

所以對於你只想把連續三根K棒上漲寫出來的新手,
最快的方式就是一根一根K棒寫收盤價>開盤價即可,也用不了5分鐘。

可是今天我們有了ChatGPT(握拳),寫個迴圈出來只要出一張嘴就可以了~

那就給了咒語,請ChatGPT使用迴圈寫出連續三根K棒收盤價都>開盤價的函數,
這邊沒有特別指定用MQL4,是因為前面有要求過了,它會繼續記得你的需求。

ChatGPT3 連續三根K棒

ChatGPT使用for迴圈去算前1~3根K棒的收盤價與開盤價,
如果收盤價>開盤價,記數的count就+1,
所以如果count等於3,就代表連續三根K棒都是上漲的K棒,
此函數就會回傳true、代表成立;否則就會是false。

真的是10秒鐘就完成了多單進場條件的函數,
沒寫到一個程式碼、沒有學怎麼使用for迴圈結構,
就完成了以往新手可能要花好幾天才能學會寫得出來的功能。

ChatGPT的魅力此時真是不可限量。

連續三根K棒上漲作為多單的進場條件,
反過來我們使用連續三根K棒下跌當作空單的條件。
這個很簡單,
我們只要將上面ChatGPT給出的函數當中的「close > open」
改為「close < open」就完事了。

所以在這一趴,我們輕鬆得到了多空單的進場條件,
那出場條件呢?

這支EA我們使用「反向出場」的方式,也就是「多空對翻」,
意思就是連續三根K棒上漲不只是多單的進場,同時也是空單的出場條件;
反之,連續三根K棒下跌是空單進場條件,也是多單的出場條件。

這邊我們就完成了「進場條件」+「出場條件」的設定囉。

 

出場平倉

最後一個部分,出場的動作,也就是平倉,
基本上咒語跟程式碼的結構都與進場類似。
所以我們這邊直接請他寫多單平倉與空單平倉的函數,
並提醒它不要使用MarketPosition():

ChatGPT3 平倉函數

ChatGPT只用了幾秒快速地完成,
複製程式碼貼入編輯器編譯,也可以成功通過,沒有error。

基本上編譯沒有問題,就可以進入回測了,
回測時我們才會知道到底實際的「功能」是否能正確執行,
如果回測發現功能有誤、或是跟預期策略動作不同,
會再回來檢查程式碼的細部內容。

在這一部分,我們透過ChatGPT得到了多單與空單出場的動作。

所以我們四個功能的程式碼都有了:
1.進場條件、2.進場的動作、
3.出場條件、4.出場的動作。
接下來就只要把它們組裝起來就形成一隻完整的交易程式EA了。

 

最後組裝

最後我們回到程式執行區OnTick當中,
使用簡單的if語法,也就是如果…就…的方式來組裝起來我們的所有函數。

如果[連續三根K棒上漲],就執行[進場多單]與[空單平倉];
如果[連續三根K棒下跌],就執行[進場空單]與[多單平倉]。

ChatGPT3 組合ontick

你沒有看錯,就這樣簡單的兩行,就寫完了我們的EA。
基本上我們就只有寫兩個if而已,
其他的所有功能,都是由ChatGPT產生出來的。

完成EA之後,我們要做的就是去回測看看,
看交易單的進出場,是不是按照我們預想的交易策略在執行?

ChatGPT3 回測

透過視覺化的複盤顯示,我們可以看到:
多單的進場都是在連續三根K棒上漲,同時空單平倉出場;
然後出場在連續三根K棒下跌時,並同時進場空單,
與艾比一開始要求的交易策略吻合。

那這裡我們只有規定連續三根K棒上漲或下跌,
沒有去限定K棒的身體多長?、上下影線多長?等等…
那這些條件,你只要能夠明確的寫給ChatGPT,讓它寫出來絕不是問題。

 

ChatGPT正確用法總結

很多人覺得ChatGPT沒有用,是因為一次要它做出從頭到尾的完整事情,
但AI目前還沒有那麼聰明到能夠取代人類,所以許多回答比較鬆散,相對有漏洞。

但絕對是非常好用的「工具」與「幫手」,
我們請AI幫我們生出各個小零件,再由人類去組裝,
就能大幅提升我們的工作效率。

所以要使用「ChatGPT正確用法」的人,
他要能夠知道:「如何把一個大的問題,去切割成一個一個的小問題」,
這件事就會是各個擊破方法的關鍵。

那這樣的能力除了平時自身多訓練自己的獨立思考能力之外,
還有「稍微擁有」某個專業領域的知識,
你可以不用厲害到專業領域中的執行技能,但你必須對該領域「有概念」。

所以老實說,ChatGPT能夠發揮最大效益的是在「半吊子」的身上
因為專業技能很強的人,他其實不需要ChatGPT的協助就可以做出專業的事情;
完全不懂專業技能的人,也不知道如何正確使用ChatGPT。

而半吊子,他沒有投入很多時間在研究專業,但卻可以受到ChatGPT很大幫助,
就是CP值最高的使用者!

「divide and conquer」

 

延伸閱讀:
用ChatGPT自動來寫MT4/MT5的程式交易? EA工程師即將失業?!【ChatGPT第一集】
請ChatGPT寫出完整交易策略,它能寫出更長的MT4程式碼嗎?【ChatGPT第二集】

 

👇投資自己的腦袋:

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

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

檢視自己↓

✅先收藏起來
🔔關注 @mt4mt5 學習更多交易知識

如果你有以下5個症頭
請先重點注意加強再投資‼️

----

1️⃣【存款不足】

當你今天的存款不足時
就把錢拿去投資是不正確的

你應該先存到足夠的緊急預備金
(3~6個月開支)
然後再拿一部份錢拿去規劃保險
以防不時之需

👉剩下多餘的資金再拿去投資

否則遇到緊急情況
心急反而會讓投資失利

----

2️⃣【尚未開始學習】

想在任何領域達到成就
學習一定是第一步📝

面對充滿風險的交易市場
沒有學習就投入金錢,那就會交學費給市場

你可以先看10本投資書籍
或是找幾堂投資課程上課
也可以追蹤一些投資帳號、多看一些投資資訊

----

3️⃣【情緒化】

帶著情緒在投資市場非常的危險
尤其是人性的貪婪與恐懼🎭

造成輸的時候不甘心,想再投錢進去凹單
獲利的時候抱不住,還沒到目標價格就先出場

甚至那些輸光家產的人
都是因為情緒化造成走火入魔👿

----

4️⃣【腦波弱、容易腦熱】

前兩年的NFT熱潮
眾多知名人士都出自己的NFT
各方散戶也都相互追捧

最後就只有發行人賺到了錢(割韭菜)
最後所有NFT暴跌成一文不值💸
如同1637年荷蘭的鬱金香泡沫

投資最重要的還是
👉「只碰自己熟悉的」

不要聽信傳言報明牌或媒體宣揚,就亂投資

----

5️⃣【懶惰、想不勞而獲】

想要沒有付出就得到收穫
就是現在詐騙集團猖獗的原因🤥

利用人的「不勞而穫」心態
使用保本、穩賺不賠的話術
而會上當受騙的
都是懶得查證、懶得學習的人們🤷‍♀️

要相信天底下沒有白吃的午餐
你只能賺到你認知範圍的錢

--------

追蹤 @mt4mt5

好奇你還有遇過因為什麼狀況
而導致投資失敗的嗎?

👇留言區跟艾比分享💬

#投資交易 
#trading
檢視自己↓ ✅先收藏起來 🔔關注 @mt4mt5 學習更多交易知識 如果你有以下5個症頭 請先重點注意加強再投資‼️ ---- 1️⃣【存款不足】 當你今天的存款不足時 就把錢拿去投資是不正確的 你應該先存到足夠的緊急預備金 (3~6個月開支) 然後再拿一部份錢拿去規劃保險 以防不時之需 👉剩下多餘的資金再拿去投資 否則遇到緊急情況 心急反而會讓投資失利 ---- 2️⃣【尚未開始學習】 想在任何領域達到成就 學習一定是第一步📝 面對充滿風險的交易市場 沒有學習就投入金錢,那就會交學費給市場 你可以先看10本投資書籍 或是找幾堂投資課程上課 也可以追蹤一些投資帳號、多看一些投資資訊 ---- 3️⃣【情緒化】 帶著情緒在投資市場非常的危險 尤其是人性的貪婪與恐懼🎭 造成輸的時候不甘心,想再投錢進去凹單 獲利的時候抱不住,還沒到目標價格就先出場 甚至那些輸光家產的人 都是因為情緒化造成走火入魔👿 ---- 4️⃣【腦波弱、容易腦熱】 前兩年的NFT熱潮 眾多知名人士都出自己的NFT 各方散戶也都相互追捧 最後就只有發行人賺到了錢(割韭菜) 最後所有NFT暴跌成一文不值💸 如同1637年荷蘭的鬱金香泡沫 投資最重要的還是 👉「只碰自己熟悉的」 不要聽信傳言報明牌或媒體宣揚,就亂投資 ---- 5️⃣【懶惰、想不勞而獲】 想要沒有付出就得到收穫 就是現在詐騙集團猖獗的原因🤥 利用人的「不勞而穫」心態 使用保本、穩賺不賠的話術 而會上當受騙的 都是懶得查證、懶得學習的人們🤷‍♀️ 要相信天底下沒有白吃的午餐 你只能賺到你認知範圍的錢 -------- 追蹤 @mt4mt5 好奇你還有遇過因為什麼狀況 而導致投資失敗的嗎? 👇留言區跟艾比分享💬 #投資交易 #trading

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

  1. Edi 說:

    有收到謝謝 艾比, 想再請教在第三集這篇的內容按照你1.進場條件、2.進場的動作、3.出場條件、4.出場的動作四個動作的代碼去跑回測卻沒有做出開單動作,能用郵件交流我這邊遇到的問題嗎?

發佈留言

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