ตัวแทนการซื้อขายตามการเรียนรู้แบบเสริมกำลังเชิงลึกสำหรับ Bitcoin โดยใช้เครือข่าย DeepSense สำหรับการประมาณฟังก์ชัน Q
สำหรับรายละเอียดทั้งหมดเกี่ยวกับชุดข้อมูล การประมวลผลล่วงหน้า สถาปัตยกรรมเครือข่าย และการนำไปใช้ โปรดดูที่ Wiki ของพื้นที่เก็บข้อมูลนี้
หากต้องการตั้งค่าเครื่องเสมือน Ubuntu ที่มีการขึ้นต่อกันทั้งหมดเพื่อเรียกใช้โค้ด โปรดดูที่ assets/vm
ดึงอิมเมจนักเทียบท่าที่สร้างไว้ล่วงหน้าโดยตรงจากฮับนักเทียบท่าแล้วเรียกใช้เป็น
docker pull samre12/deep-trading-agent:latest
docker run -p 6006:6006 -it samre12/deep-trading-agent:latest
หรือ
สร้างอิมเมจนักเทียบท่าในเครื่องโดยดำเนินการคำสั่งและรันอิมเมจเป็น
docker build -t deep-trading-agent .
docker run -p 6006:6006 -it deep-trading-agent
นี่จะเป็นการตั้งค่าพื้นที่เก็บข้อมูลสำหรับการฝึกอบรมตัวแทนและ
ติดตั้งไดเร็กทอรีปัจจุบันลงใน /deep-trading-agent
ในคอนเทนเนอร์
ในระหว่างการสร้างอิมเมจ ประวัติการทำธุรกรรมล่าสุดจากการแลกเปลี่ยนจะถูกดึงและสุ่มตัวอย่างเพื่อสร้างชุดข้อมูลขนาด Bitcoin ต่อนาที ชุดข้อมูลนี้อยู่ที่ /deep-trading-agent/data/btc.csv
เพื่อเริ่มต้นการฝึกอบรมตัวแทน ระบุพารามิเตอร์ที่เหมาะสมในไฟล์ปรับแต่ง (ไฟล์ปรับแต่งตัวอย่างมีให้ที่ /deep-trading-agent/code/config/config.cfg
) และรันโค้ดโดยใช้ /deep-trading-agent/code/main.py
การฝึกอบรมรองรับการบันทึกและการตรวจสอบผ่าน Tensorboard
มีการติดตั้ง vim
และ screen
ในคอนเทนเนอร์เพื่อแก้ไขไฟล์การกำหนดค่าและรัน tensorboard
ผูกพอร์ต 6006 ของคอนเทนเนอร์กับ 6006 ของเครื่องโฮสต์เพื่อตรวจสอบการฝึกอบรมโดยใช้ Tensorboard
โปรดมอบพื้นที่เก็บข้อมูลนี้เพื่อสนับสนุนโครงการ ?
Preprocessor
ได้รับแรงบันดาลใจจาก Deep Q-Trading ที่พวกเขาแก้ปัญหาการซื้อขายที่เรียบง่ายสำหรับสินทรัพย์เดียว
สำหรับแต่ละหน่วยการซื้อขาย อนุญาตเพียงหนึ่งในสามการกระทำเท่านั้น: เป็นกลาง(1), ยาว(2) และสั้น(3) และจะได้รับรางวัลขึ้นอยู่กับตำแหน่งปัจจุบันของตัวแทน ตัวแทน Deep Q-Learning ได้รับการฝึกอบรมเพื่อเพิ่มรางวัลสะสมทั้งหมดให้สูงสุด
โมเดล Deep Q-Trading ปัจจุบันได้รับการแก้ไขโดยใช้สถาปัตยกรรม Deep Sense สำหรับการประมาณ ฟังก์ชัน Q
รับซีรีย์ Bitcoin ต่อนาทีโดยการแก้ไขขั้นตอนที่กล่าวถึงในพื้นที่เก็บข้อมูลนี้ ธุรกรรมในการแลกเปลี่ยน Coinbase จะถูกสุ่มตัวอย่างเพื่อสร้างชุดราคา Bitcoin
โปรดดู assets/dataset
เพื่อดาวน์โหลดชุดข้อมูล
การประมวลผลล่วงหน้าขั้นพื้นฐาน
ละเว้นค่าที่หายไปโดยสิ้นเชิงและลบออกจากชุดข้อมูลและสะสมบล็อกของค่าต่อเนื่องโดยใช้การประทับเวลาของราคา
บล็อกที่สะสมทั้งหมดที่มีจำนวนการประทับเวลาน้อยกว่า ความยาวประวัติ รวมของรัฐและ ขอบเขต ของเอเจนต์จะถูกกรองออกเนื่องจากไม่สามารถใช้สำหรับการฝึกอบรมของเอเจนต์ได้
ในการใช้งานปัจจุบัน ราคา Bitcoin ต่อนาที 3 ชั่วโมง (180 นาที) ที่ผ่านมาจะถูกนำมาใช้เพื่อสร้างการแสดงสถานะปัจจุบันของตัวแทน
ด้วยชุดข้อมูลที่มีอยู่ (ณ เวลาที่เขียน) บันทึกต่อไปนี้เป็นที่สร้างขึ้นขณะประมวลผลชุดข้อมูลล่วงหน้า:
INFO:root:Number of blocks of continuous prices found are 58863
INFO:root:Number of usable blocks obtained from the dataset are 887
INFO:root:Number of distinct episodes for the current configuration are 558471
การประมวลผลล่วงหน้าขั้นสูง
ประมวลผลค่าที่หายไปและต่อบล็อกที่มีขนาดเล็กลงเพื่อเพิ่มขนาดของบล็อกราคาที่ต่อเนื่อง
เทคนิคมาตรฐานในวรรณคดีเพื่อเติมค่าที่หายไปในลักษณะที่ไม่ส่งผลกระทบต่อประสิทธิภาพของแบบจำลองมากนัก คือ การใช้การเติมแบบเลขชี้กำลังโดยไม่มีการสลายตัว
(ที่จะนำไปปฏิบัติ)
เวอร์ชัน Tensorflow "1.1.0" ใช้สำหรับการนำเครือข่าย Deep Sense ไปใช้
การนำไปใช้งานได้รับการดัดแปลงจากพื้นที่เก็บข้อมูล Github นี้ โดยมีการลดความซับซ้อนเล็กน้อยในสถาปัตยกรรมเครือข่ายเพื่อรวมการเรียนรู้ผ่านชุดข้อมูล Bitcoin ในช่วงเวลาเดียว
การใช้งานและการประมวลผลล่วงหน้าได้รับแรงบันดาลใจจากโพสต์ขนาดกลางนี้ การใช้งานจริงของเครือข่าย Deep Q ได้รับการดัดแปลงมาจาก DQN-tensorflow