วิธีสร้าง cBot ผ่าน ChatGPT
AI แบบสร้างสรรค์กำลังเติบโตขึ้น และการสร้าง cBot โดยไม่ต้องเขียนโค้ดแม้แต่บรรทัดเดียวไม่ใช่ความฝันอีกต่อไป แต่เป็นความจริง ในบทความนี้และวิดีโอที่เกี่ยวข้อง เราจะแสดงให้คุณเห็นว่าคุณสามารถสร้าง cBot โดยใช้ ChatGPT ได้อย่างไร เราจะสาธิตวิธีประเมินโค้ด cBot ที่ ChatGPT ให้มา และทำให้แน่ใจว่าบอทที่สร้างด้วย AI ของคุณพร้อมใช้งานได้ในเวลาไม่กี่นาที
สร้างคำสั่งที่ถูกต้อง
สำหรับวัตถุประสงค์ของวิดีโอนี้ เราจะใช้โมเดล GPT-3.5 ซึ่งเป็นบริการฟรีสำหรับทุกคน และแม้ว่าจะมีคุณสมบัติน้อยกว่าโมเดล GPT รุ่นใหม่ แต่ก็ให้ผลลัพธ์ที่ยอดเยี่ยม
ส่วนแรกของการสร้าง cBot ที่ยอดเยี่ยมด้วย ChatGPT คือการพิมพ์คำสั่งที่ถูกต้อง นี่คือกฎบางข้อสำหรับสิ่งที่ทำให้คำสั่งดี:
1. กระตุ้นให้ ChatGPT พยายามแสดงบทบาทเป็นนักพัฒนา cBot มืออาชีพ
คุณสามารถทำได้โดยพิมพ์คำสั่งเริ่มต้นด้วยคำว่า "มาเล่นเกมที่คุณเป็นนักพัฒนา algo ที่มีคุณสมบัติสำหรับ cTrader..." หรืออะไรประมาณ "สมมติว่าคุณเป็นนักพัฒนา cBot มืออาชีพสำหรับ cTrader..."
2. ให้รายละเอียดที่เฉพาะเจาะจง
ยิ่งคุณให้รายละเอียดกับ ChatGPT มากเท่าไหร่ ก็ยิ่งดีเท่านั้น คำสั่งเช่น "สร้าง cBot ที่ทำกำไรให้ฉัน..." จะส่งผลให้เกิดความสับสนมากในส่วนของ AI
เราขอแนะนำให้ระบุแต่ละส่วนของ cBot ของคุณอย่างแม่นยำที่สุดเท่าที่จะเป็นไปได้ พิจารณาว่าควรมีพารามิเตอร์อะไรบ้าง ควรตอบสนองต่อเงื่อนไขใด และควรดำเนินการเทรดอย่างไร หากคุณกำลังสร้าง แผงการเทรดที่กำหนดเอง ให้พิจารณาว่าควรมีองค์ประกอบ UI อะไรบ้างและควรวางไว้ที่ไหน
3. สุภาพและให้ความเคารพ
อาจฟังดูน่าประหลาดใจ แต่การวิจัยแสดงให้เห็นว่าการสุภาพกับ ChatGPT จริงๆ แล้วช่วยปรับปรุงคุณภาพของผลลัพธ์ รวมวลีเช่น "ฉันจะขอบคุณมากถ้า...", "จะดีมากถ้า..." หรือคล้ายๆ กัน
สร้าง cBot การเทรดตามสี
สำหรับเริ่มต้น เราต้องการสร้าง cBot อย่างง่ายที่วางคำสั่งตลาดใหม่ในทุกๆ การเปิดแท่งเทียน ทิศทางของคำสั่งขึ้นอยู่กับว่าแท่งเทียนก่อนหน้าเป็นสีเขียวหรือสีแดง หากแท่งเทียนเป็นสีแดง เราต้องการวางคำสั่งขาย และหากเป็นสีเขียว เราต้องการวางคำสั่งซื้อ
นี่คือวิธีที่เราสามารถทำได้โดยการให้คำสั่งที่ถูกต้อง
- ประโยคเริ่มต้น: "สมมติว่าคุณเป็นนักพัฒนา cBot มืออาชีพสำหรับ cTrader เขียนโค้ดที่เข้าใจง่ายและง่ายมาก"
- ข้อกำหนดเฉพาะ: "สร้าง cBot ในทุกๆ แท่งเทียน ควรวางคำสั่งตลาดใหม่โดยไม่มีกลไกป้องกัน ปริมาณคำสั่ง (ในหน่วย) ควรเป็นพารามิเตอร์ที่ปรับแต่งได้ ควรวางคำสั่งซื้อหากแท่งเทียนก่อนหน้าเป็นสีเขียว ควรวางคำสั่งขายหากแท่งเทียนก่อนหน้าเป็นสีแดง"
- ความสุภาพ: "ฉันจะขอบคุณมากถ้าคุณทำงานนี้ ขอบคุณครับ!"
โค้ดที่ ChatGPT ให้ออกมาอาจแตกต่างกันไป แต่ในทุกกรณีเราสามารถคัดลอกและวางลงในหน้าต่างตัวแก้ไขโค้ดเพื่อดูว่าถูกต้องหรือไม่และเพื่อดูว่าใช้ตรรกะที่เราต้องการหรือไม่
โดยปกติแล้วจะมีข้อผิดพลาดที่ไม่สำคัญเพียงไม่กี่อย่างที่ต้องแก้ไข ในกรณีของเรา สิ่งเดียวที่ต้องแก้ไขคือการเปลี่ยนวัตถุ Symbol ในเมธอด ExecuteMarketOrder เป็นสตริง SymbolName นี่คือโค้ดสุดท้ายที่เราได้รับหลังจากทำทั้งหมดนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
ตามปกติ เราบันทึกและสร้างบอท ในแอปพลิเคชัน Trade เราแนบอินสแตนซ์ของบอทกับกราฟและดูว่าทำงานตามที่ตั้งใจไว้หรือไม่ บอททำงานได้อย่างไม่มีที่ติและตอบสนองต่อสีของแท่งเทียนในอดีตโดยการวางคำสั่งใหม่ ปริมาณคำสั่งยังเป็นพารามิเตอร์ที่ปรับแต่งได้
หมายเหตุ
หมายเหตุว่าเราไม่จำเป็นต้องอ่านโค้ดที่ ChatGPT สร้างขึ้นด้วยซ้ำ เราเพียงแค่แก้ไขคำเตือนทุกรายการที่แสดงในโปรแกรมแก้ไขโค้ดแล้วเปิดใช้งานบอท
สร้าง cBot การเทรดตามเทรนด์
แม้ว่า cBot ก่อนหน้านี้จะทำงานได้ดี แต่ก็ใช้ตรรกะอย่างง่ายและไม่ได้ให้ความสนใจกับเทรนด์ของตลาด เราจะลองสร้างบางสิ่งที่ซับซ้อนขึ้นโดยใช้วิธีการพรอมต์แบบเดียวกับก่อนหน้านี้
- ประโยคเริ่มต้น: "ลองจินตนาการว่าคุณเป็นนักพัฒนา cBot ที่มีทักษะสำหรับ cTrader ฉันจะเป็นลูกค้าของคุณ"
- ข้อกำหนดเฉพาะ: "สร้าง cBot ในทุกๆ แท่งเทียน มันควรตรวจสอบว่าค่าเฉลี่ยเคลื่อนที่ 50 วันอยู่เหนือหรือต่ำกว่าค่าเฉลี่ยเคลื่อนที่ 200 วัน หากอยู่เหนือกว่า บอทควรส่งคำสั่งซื้อ หากอยู่ต่ำกว่า บอทควรส่งคำสั่งขาย บอทไม่ควรส่งคำสั่งหากมีโพสิชันที่เปิดอยู่แล้วในทิศทางเดียวกัน ปริมาณคำสั่งควรเป็นพารามิเตอร์ที่สามารถปรับแต่งได้"
- ความสุภาพ: "ขอบคุณสำหรับความช่วยเหลือ!"
อีกครั้ง เราจะเพียงแค่คัดลอกและวางโค้ดที่ ChatGPT ให้เราลงในหน้าต่างโปรแกรมแก้ไขโค้ดและลองสร้างบอท นี่คือข้อผิดพลาดในการสร้างทั้งหมดที่เราได้รับ:
- โค้ดกำลังใช้สมาชิก API
MarketSeriesที่ล้าสมัย เราสามารถแทนที่ด้วยคอลเลกชันBars.ClosePrices - เราต้องแทนที่อาร์กิวเมนต์
Symbolด้วยSymbolNameอีกครั้ง - เราควรลบอาร์กิวเมนต์ที่ไม่จำเป็นบางส่วนออกจากเมธอด
ExecuteMarketOrderเนื่องจากไม่ตรงกับโอเวอร์โหลดเมธอดที่มีอยู่
เราสามารถดูวิธีที่ตรรกะของเราถูกสร้างขึ้นได้ด้วย ในเมธอด OnStart() เราเริ่มต้นค่าเฉลี่ยเคลื่อนที่ของเรา ChatGPT ทำให้ช่วงเวลาของค่าเฉลี่ยเคลื่อนที่เป็นพารามิเตอร์ที่สามารถปรับแต่งได้แม้ว่าเราจะไม่ได้ขอให้ทำเช่นนั้น เราสามารถปล่อยไว้แบบนั้นได้โดยไม่ส่งผลกระทบต่อตรรกะหลัก
อย่างไรก็ตาม ในเมธอด OnBar() เราสามารถเห็นได้ว่าบอทจะส่งคำสั่งใหม่เฉพาะเมื่อไม่มีโพสิชันที่เปิดอยู่ (Positions.Count ==0) นี่ไม่ใช่สิ่งที่เราต้องการเนื่องจากเราต้องการตรวจสอบทิศทางของโพสิชันด้วย เราสามารถแก้ไขโค้ดเล็กน้อยเพื่อให้ได้บอทดังต่อไปนี้
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | |
เราได้ใช้เมธอด Positions.FindAll(string label) เพื่อรับโพสิชันทั้งหมดที่มีป้ายกำกับที่กำหนดและคำนวณจำนวนของพวกมัน
เมื่อเราสร้างบอท เราสามารถเพิ่มมันลงในแผนภูมิได้ เราจะเพิ่มค่าเฉลี่ยเคลื่อนที่ 50 และ 200 วันด้วยเพื่อให้เราสามารถประเมินพฤติกรรมของ cBot ได้ หลังจากที่เรารอสักครู่ เราสามารถเห็นได้ว่าบอททำงานตามที่คาดหวัง คำสั่งใหม่ถูกส่งเมื่อจำเป็นแต่ไม่มีโพสิชันที่เปิดอยู่มากกว่าหนึ่งโพสิชันในทิศทางที่กำหนด
สร้าง cBot โดยใช้ AI อื่น
สรุป
ChatGPT สามารถเป็นเครื่องมือที่มีคุณค่าเมื่อคุณต้องการสร้าง cBot อย่างรวดเร็วด้วยตรรกะที่กำหนดไว้อย่างแม่นยำ แม้ว่า ChatGPT จะสร้างข้อผิดพลาดบางอย่าง แต่โดยปกติแล้วมักจะไม่สำคัญและสามารถแก้ไขได้อย่างรวดเร็ว
