บทความมากมายเกี่ยวกับการซื้อขาย crypto แบบอัลกอริทึมทำให้ความเป็นจริงของการสร้างเครื่องมือการซื้อขายและการทดสอบโค้ดย้อนหลังเป็นเรื่องง่ายเกินไป ที่นี่เราจะตรวจสอบ 3 แง่มุมของการทดสอบย้อนหลังที่มักถูกมองข้ามแต่กลับเป็นเช่นนั้น กุญแจสำคัญในการบรรลุผล.
มาเริ่มกันเลย 3 คีย์สำหรับการทดสอบย้อนหลัง:
- เทียน ค่าต่ำ สำหรับการหยุด
- การจัดการ ราคาดำเนินการ
- ซ้ำแล้วซ้ำเล่า เปรียบเทียบ backtest กับความเป็นจริง
นี่หมายถึงการทดสอบย้อนกลับที่แข็งแกร่งคือ ความพยายามมาก (ไม่แปลกใจเลย!) แต่มาเจาะลึกเรื่องนี้กันดีกว่า
แท่นทดสอบย้อนหลังหลายแห่งใช้เทียน ปิดการขาย ค่าสำหรับแต่ละขีด ในการซื้อขายจริงด้วยคำสั่งหยุดการขาดทุน มันเป็นค่าที่ต่ำในขีดที่จะหยุดตำแหน่งของคุณ.
เอาล่ะoตกลงตามตัวอย่าง ในแผนภูมิด้านล่างสำหรับ BTC ลองจินตนาการว่าเราดำเนินการคำสั่งซื้อที่เส้นสีน้ำเงินบนแท่งเทียนสีเขียวด้านล่าง ประมาณกึ่งกลางจากต่ำไปสูงสำหรับจุดนั้น
จุดต่ำสุดถัดไปอาจทำให้เกิดการหยุดได้หากเป็นจุดหยุดขาดทุนที่แน่น แต่หากโค้ด backtest ของคุณถือว่ามีจุดขายแบบหยุดขาดทุนเมื่อปิด นั่นก็จะไม่เป็นเช่นนั้น ตำแหน่งจะขยายไปข้างหน้าในการจำลองของคุณ มองอย่างใกล้ชิดที่แท่งเทียนสีแดงตามจุดเข้าสีเขียว (กากบาท) ค่าปิดและค่าต่ำแตกต่างกันมาก ในกรณีนี้ กรณีหลังจะแสดงผลกำไรที่มากขึ้น
ดังนั้นผลกระทบของการซื้อในราคาที่สูงกว่าราคาเปิด อาจจะมี ผลที่ตามมาร้ายแรงต่อการจำลองและการทดสอบย้อนกลับของคุณ มันคือ ไม่ ความแตกต่างระหว่างราคาที่ดำเนินการกับราคาเปิด แต่อาจเป็นความแตกต่างอย่างมากในวิธีที่ตำแหน่งขยายและรับผลกำไร
ราคาดำเนินการอาจมีผลกระทบต่อกำไรของการเทรดแบบเรียงซ้อน
พิจารณา 2 ตำแหน่ง ตำแหน่งหนึ่งเข้าเวลา 20.00 น. (เพื่อใช้ตัวเลขกลม) ตำแหน่งที่สองเข้าเวลา 20.50 น. ซึ่งเป็นราคาที่สูงกว่าเล็กน้อย (ซื้อในตลาด) ความแตกต่าง [ค่อนข้างน้อย] ของ 0.50 หน่วยนี้สามารถมีได้ เอฟเฟกต์แบบเรียงซ้อน เกี่ยวกับกำไรของตำแหน่งในช่วงเวลาหนึ่ง ทำไม เนื่องจากในช่วงต่อมา ตำแหน่ง 20.50 อาจถูกหยุด เนื่องจากค่าต่ำอาจต่ำกว่าการตั้งค่าจุดหยุดขาดทุน ในขณะเดียวกันตำแหน่งแรกยังคงดำเนินต่อไปเพื่อทำกำไรอีกหลายครั้ง ความแตกต่างที่ยิ่งใหญ่!
เพื่อจัดการกับสิ่งนี้ เราจำเป็นต้องประมาณราคาที่ดำเนินการของเรา...
สิ่งสำคัญที่ต้องจำไว้ว่างานของการทดสอบย้อนกลับคือการประมาณผลตอบแทนจากแบบจำลอง/กลยุทธ์เมื่อดำเนินการในอดีต
รหัส backtesting ของคุณไม่ทราบว่าราคาการค้าที่ได้รับ (อดีตกาล) ในด้านซื้อหรือขาย
เมื่อดูข้อมูลตลาดในอดีต จะไม่ทราบราคาการดำเนินการตามคำสั่งซื้อจริง แน่นอนว่าคุณอาจมีบันทึกที่แสดงราคาจริงของสถานะ แต่ผู้ซื้อขายกลับกำลังดูข้อมูลตลาดทั่วไป ไม่ใช่บันทึกการค้าแต่ละรายการ
การใช้ราคาเปิดสำหรับขีดเมื่อเข้านั้นไม่เป็นไปตามความเป็นจริง และไม่ได้ใช้ราคาปิดด้วย เหตุใดสิ่งนี้จึงสร้างความแตกต่างอย่างมาก? เนื่องจากตามที่กล่าวไว้ในหัวข้อก่อนหน้า การเข้าสู่ราคาดำเนินการที่สูงกว่าอาจทำให้คำสั่งการขายแบบจำกัดเกิดขึ้นเร็วกว่าในการจำลองการทดสอบย้อนหลังได้อย่างง่ายดาย
คุณต้องการให้ผลการทดสอบย้อนหลังของคุณมองโลกในแง่ร้ายเล็กน้อย
ไม่มีคำตอบที่แท้จริงว่าควรประมาณการราคาดำเนินการอย่างแม่นยำที่ใด สิ่งสำคัญคือต้องเข้าใจว่าคุณไม่สามารถทำให้ราคาถูกต้องแม่นยำในการจำลองของคุณได้ สมมติว่าราคาเปิดสำหรับคำสั่งซื้อของคุณโดยทั่วไปแล้วถือเป็นแง่ดีและไม่ใช่แนวทางในอุดมคติ ในทำนองเดียวกัน สมมติว่าราคาปิดสำหรับคำสั่งซื้อขายของคุณมีแนวโน้มที่จะเบี่ยงเบนไปจากผลลัพธ์จริงอย่างมาก
ซื้อที่ตลาด
นี่คือตัวเลือกบางส่วนให้เลือก สำหรับคำสั่งซื้อในตลาด:
ก) ประมาณการราคาดำเนินการตรงกลาง (หรือระยะทางที่กำหนดไว้ล่วงหน้า) ระหว่างจุดเปิดและปิดของขีด
b) ประมาณการราคาดำเนินการตรงกลาง (หรือระยะทางที่กำหนดไว้ล่วงหน้า) ระหว่าง LOW และ HIGH ของขีด
c) เลือกราคาสุ่มระหว่าง OPEN หรือ LOW และ CLOSE หรือ HIGH
แม้ว่าการเคลื่อนไหวของตลาดมักจะเกิดขึ้นแบบสุ่ม แต่ฉันไม่ชอบ (c) เพราะโค้ด backtest ของคุณ จะไม่เป็น idempotent; มันจะส่งคืนผลลัพธ์ที่แตกต่างกันในแต่ละครั้งที่รันบนข้อมูลเดียวกัน นี่มันยุ่งมาก
ตัวเลือก (b) เน้นถึงตลาดที่มีความผันผวนมากขึ้น ในขณะที่ตัวเลือก (a) น้อยกว่า ขึ้นอยู่กับคุณ แต่ต้องทำการเลือก คุณสามารถใช้ได้ ดัชนีความผันผวนเช่น CVI จากนั้นเลือกตามค่านั้นในช่วงเวลาที่คุณกำลังทดสอบย้อนหลัง
การขายทำกำไรตามคำสั่งจำกัด
นี่คือตัวเลือกบางส่วนให้เลือก เพื่อทำกำไร ขายคำสั่งจำกัด:
ก) ประมาณการราคาดำเนินการตรงกลาง (หรือระยะทางที่กำหนดไว้ล่วงหน้า) ระหว่างราคาเปิดและสูงของขีด
b) ประมาณการราคาดำเนินการในช่วงกลางระหว่าง CLOSE และ HIGH ของขีด
c) เลือกราคาสุ่มระหว่างค่าเทียนข้างต้น
คำสั่งจำกัดการขายหยุดการขาดทุน
นี่คือตัวเลือกบางส่วนให้เลือก สำหรับคำสั่งจำกัดการขายแบบหยุดขาดทุน:
ก) ประมาณการราคาดำเนินการที่อยู่กึ่งกลางระหว่างราคาเปิดและปิดของขีด
b) ประมาณการราคาดำเนินการตรงกลางระหว่าง CLOSE และ LOW ของขีด
c) เลือกราคาสุ่มระหว่างค่าเทียนข้างต้น
สังเกตการใช้ค่า LOW กับ HIGH ขึ้นอยู่กับลำดับ ท่าทาง. คำสั่งขายแบบจำกัดการทำกำไรกำลังจัดการกับราคาที่เพิ่มขึ้น ในขณะที่คำสั่งขายแบบจำกัดการหยุดการขาดทุนกำลังจัดการกับราคาที่ลดลง ทั้งสองมีแนวโน้มที่จะเผชิญกับช่องว่างที่กระโดดเกินค่าขีดจำกัด!
การจัดการกับคำสั่งจำกัดการหยุดการขาดทุนที่ผ่านมา
วิธีทั่วไปในการขยายการสูญเสียตำแหน่งของคุณคือการมี ช่องว่างราคาลงผ่านคำสั่งหยุดการขาดทุนของคุณ. อุปกรณ์การค้าของคุณจำเป็นต้องจัดการสิ่งนี้โดยการระบุตำแหน่งที่ต่ำกว่าคำสั่งจำกัดการหยุดการขาดทุน และดำเนินการคำสั่งขายในตลาดก่อนที่จะไปต่อที่สีแดง
โปรดจำไว้ว่าการแลกเปลี่ยนการซื้อขายหลายแห่งไม่รองรับคำสั่งหยุดการขาดทุนของตลาด เช่น Binance ดังนั้นคุณจึงถูกบังคับให้ใช้ ขีดจำกัดการหยุดการขาดทุน คำสั่งเพื่อปกป้องตำแหน่งของคุณ คำสั่งจำกัดการหยุดการขาดทุนมี 'ราคาหยุด' และ 'ราคาจำกัด' โดยคำสั่งแรกจะกระตุ้นให้ขายขีดจำกัดในราคาของคำสั่งหลัง
การแลกเปลี่ยนหลายแห่งเช่น Binance ไม่รองรับคำสั่งหยุดการขาดทุน
สิ่งนี้หมายความว่าอย่างไรสำหรับอัลกอริธึม backtest ของคุณ? หากต้องการมีมุมมองอนุรักษ์นิยม/มองโลกในแง่ร้าย ควรทำ ราคาขายที่ไหนสักแห่ง ระหว่างราคาจำกัดของจุดหยุดและจุดต่ำสุด. ยิ่งอัตราส่วนต่ำเท่าใดผลลัพธ์ก็จะยิ่งอนุรักษ์นิยมมากขึ้นเท่านั้น เป็นกรณีที่เปอร์เซ็นต์ที่มีนัยสำคัญของคำสั่งจำกัดการหยุดขาดทุนเหล่านี้จะดำเนินการที่ราคาจำกัด แต่คำสั่งอื่นๆ จะดำเนินการต่ำกว่าราคาจำกัด และ สิ่งนี้จะต้องถูกนำมาพิจารณา.
การบัญชีสำหรับการขายทำกำไร
หากเครื่องมือการซื้อขายของคุณรองรับโมเดลการทำกำไร (ควรเป็นเช่นนั้น) โดยตำแหน่งจะถูกปิดโดยมีกำไรเมื่อถึงระดับทางออก คำสั่งซื้อเหล่านี้ควรได้รับการจัดการอย่างจริงจัง
ในสถานการณ์นี้ คำสั่งของตลาดจะทิ้งผลกำไรไว้บนโต๊ะ เป็นการดีกว่าถ้าจะสร้างคำสั่งขายแบบจำกัดที่ราคาเฉพาะ
แนวทางที่ชัดเจนเมื่อต้องการทำกำไรในตำแหน่งหนึ่งคือการได้อันดับสูงสุดในรายการสั่งซื้อ (ดูด้านบน) และกำหนดราคาจำกัดการขายไว้ที่ราคาใดราคาหนึ่งเหล่านี้ ซึ่งมีแนวโน้มที่จะเติมเต็มในราคา (กำไร) ที่สูงกว่าคำสั่งซื้อของตลาดในขณะนี้
สิ่งนี้หมายความว่าอย่างไรสำหรับอัลกอริธึม backtest ของคุณ? หากต้องการมีมุมมองอนุรักษ์นิยม/มองโลกในแง่ร้ายก็ควรถือว่า ราคาระหว่างระดับออกเพื่อทำกำไรและทำเครื่องหมายสูง. ราคาขายจริงจะ ขึ้นอยู่กับการสั่งกระจายหนังสือ ณ เวลาที่ซื้อขาย แต่แน่นอนว่าไม่มี 'รายการสั่งซื้อ' ในโปรแกรมจำลองการทดสอบย้อนหลัง ดังนั้นเราจึงจำเป็นต้องประมาณจากข้อมูลที่มีอยู่
ไม่มีวิธีใดที่จะปรับปรุงอัลกอริธึมการทดสอบย้อนหลังได้ เว้นแต่จะมีการเปรียบเทียบกับผลลัพธ์จริง ซ้ำแล้วซ้ำเล่า.
เว้นแต่ว่าคุณจะเปรียบเทียบผล backtest ของคุณกับผลการซื้อขายจริงซ้ำๆ คุณจะไม่สามารถมั่นใจใน backtest ของคุณได้
นี่เป็นตัวอย่างที่ชัดเจนของวิธีการบรรลุเป้าหมายนี้:
- ใช้งานอุปกรณ์การซื้อขายจริงของคุณเป็นระยะเวลาหนึ่ง เช่น 24 ชั่วโมง
- บันทึกผลลัพธ์: การซื้อขายแต่ละครั้ง การออกแต่ละครั้ง การหยุดการขาดทุนแต่ละครั้ง
- หลังจากช่วงเวลานี้ ให้รันโค้ด backtest ของคุณในช่วงเวลาเดียวกันนั้น
- เปรียบเทียบผลลัพธ์ของ backtest กับผลลัพธ์จริงของคุณ!
เปรียบเทียบการซื้อขายแต่ละครั้งโดยละเอียด รหัส backtest ของคุณตั้งสมมติฐานอะไรบ้างซึ่งไม่ได้เป็นตัวแทนของการซื้อขายจริง?
อะไรคือความแตกต่าง?
- backtest ของคุณมีแง่ดีไหม? ถ้าเป็นเช่นนั้นที่ไหน? ยังไง? ทำไม
- backtest ของคุณมองโลกในแง่ร้ายเกินไปหรือเปล่า?
คุณต้องการให้ backtest แสดงผลในแง่ร้ายเล็กน้อยอย่างสม่ำเสมอ ซึ่งอนุรักษ์นิยม.
หลังจากทำเช่นนี้สองสามครั้ง ให้ปิดอุปกรณ์การซื้อขายของคุณ และพัฒนาทั้งโค้ด backtest และอุปกรณ์การซื้อขายของคุณ จากนั้น ย้ำ.
เนื่องจากอุปกรณ์การซื้อขายสดของคุณสามารถรันได้ด้วยขนาดคำสั่งซื้อที่ค่อนข้างเล็ก จึงไม่มีค่าใช้จ่ายมากนักในการทดสอบ
แน่นอนว่าในช่วงเวลาใดๆ ก็ตาม จะมีการดำเนินการที่ไม่คาดคิดเกิดขึ้นในตลาด ประเด็นที่นี่คือการระบุพื้นที่ที่ backtest ของคุณไม่ได้ประเมินอย่างชัดเจนถึงสิ่งที่เปิดเผยจริงของคุณ
ตัวอย่างสิ่งที่ฉันพบเมื่อทำสิ่งนี้:
- backtest มีแง่ดีมากเกินไปเกี่ยวกับราคาขายจำกัด ในการซื้อขายจริงมักจะมีสถานการณ์ gap-down ที่ทำให้กำไรลดลง
- backtest มีทัศนคติเชิงบวกมากเกินไปเกี่ยวกับราคาดำเนินการซื้อ ในการซื้อขายจริง เป็นเรื่องยากที่จะดำเนินการราคาเปิดแบบติ๊ก
- การทดสอบย้อนกลับไม่ได้จับคำสั่งขายแบบ STOP-LOSS ที่ค่าต่ำภายในขีดเดียว ในการซื้อขายจริงนี่เป็นการสิ้นสุดตำแหน่งก่อนกำหนด
นี่เป็นวิธีเดียวที่จะได้รับผลกำไรจากเครื่องมือการซื้อขาย crypto ของคุณ พัฒนาการทดสอบย้อนกลับของคุณเมื่อเวลาผ่านไป และทำซ้ำตามผลลัพธ์จริงเพื่อปรับปรุง
การทดสอบโมเดลการซื้อขายอัลกอริทึมของคุณย้อนหลังนั้นเป็นงานหนัก! สิ่งนี้ไม่ควรแปลกใจเลย ที่นี่ไม่มี 'เส้นทางที่ง่าย'
- 7
- การกระทำ
- ALGO
- ขั้นตอนวิธี
- อัลกอริทึม
- บทความ
- อัตโนมัติ
- backtesting
- binance
- BTC
- การก่อสร้าง
- ซื้อ
- ก่อให้เกิด
- ปิด
- รหัส
- ร่วมกัน
- อย่างต่อเนื่อง
- การเข้ารหัสลับ
- การซื้อขายแบบ crypto
- ข้อมูล
- จัดการ
- การซื้อขาย
- รายละเอียด
- DID
- ระยะทาง
- EV
- แลกเปลี่ยน
- ทางออก
- แสดง
- ใบหน้า
- ชื่อจริง
- ข้างหน้า
- General
- GM
- GP
- สีเขียว
- GV
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- จุดสูง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- ทำอย่างไร
- hr
- HTTPS
- ia
- แยกแยะ
- ส่งผลกระทบ
- ดัชนี
- IP
- IT
- การสัมภาษณ์
- กระโดด
- กุญแจ
- ชั้น
- LG
- Line
- LP
- ตลาด
- กลาง
- ML
- แบบ
- ตัวเลข
- เปิด
- ตัวเลือกเสริม (Option)
- Options
- ใบสั่ง
- คำสั่งซื้อ
- ราคา
- กำไร
- ป้องกัน
- ความจริง
- ผลสอบ
- รับคืน
- ทบทวน
- เสกสรร
- วิ่ง
- ขาย
- ชุด
- การตั้งค่า
- จำลอง
- ขนาด
- เล็ก
- So
- สนับสนุน
- รองรับ
- แปลกใจ
- ทดสอบ
- เวลา
- ด้านบน
- การค้า
- เทรด
- ความคุ้มค่า
- รายละเอียด
- การระเหย
- W
- ภายใน