การแบ่งข้อมูล train & test เบื้องต้น

การใช้ข้อมูล และ การแบ่งข้อมูล ตรงนี้แล้วแต่เทคนิคของแต่ละคนเลยครับ เพราะต้องใช้ให้เหมาะกับโมเดล และกลยุทธ์ที่จะใช้ สมัยก่อนผมทำงี้ (สมมติตลาด FX) 1. training data คือ 2000 – 20172. test data คือ 2018 – ปัจจุบัน แต่พบว่า เหมาะกับกลยุทธ์ที่ถือหน่อย เช่น ถือเฉลี่ย 3 วัน เทรดไม่บ่อยมาก เพราะสมัยก่อนผมถนัดเทรดแบบนี้ ต่อมาพบว่า1. test data มีช่วงกว้างไป พักหลังผมอยากทำบอทเทรดสั้นขึ้นกว่าเดิม2. test data กว้างแบบนั้นเหมาะกับ TF M15 มากกว่า และเทรดแบบเล่นรอบนิดนึง ทำให้ช่วง SL,…

กลไกการทำงานของระบบ DQ-BT

Origin of DQ-BT (DeepQuant Backtesting)

ผมขอเล่านิดนึงครับ ผมเริ่มออกแบบ trading system สำหรับเทรดมือในปี 2014 แล้วเริ่มพัฒนา algorithmic trading & robot ในปี 2015 โดยเริ่มพัฒนาด้วยการเขียนโค้ด บน Excel ด้วยภาษาโปรแกรมชื่อ VBA (Visual Basic for Application) และได้พัฒนาระบบ backtesting บน Excel ใช้เอง โดยนำความรู้จากการทำ paper trading ตอนเทรดมือมาใช้ ต่อมาผมเปลี่ยนมาพัฒนา algorithmic trading & robot และระบบ backtesting ด้วยภาษา Java ซึ่งถนัดกว่าและ advance กว่า จนกระทั่งปี…

Scenario 1: bt_gw_fx_orca_gu_3_m5.ipynb (รันผ่าน Jupyter Notebook)

<< กลับไปหน้า Backtesting Examples & Workshops << กลับไปหน้า Backtesting Setting Description รูปแบบการรัน backtest สำหรับ scenario นี้คือ

การคำนวณ Position Size สำหรับตลาดต่างๆ

การคำนวณ position size หรือขนาดการลงทุน เป็นส่วนหนึ่งของการบริหารความเสี่ยง (risk management) และ การบริหารเงิน (money management) และยังถูกใช้ในหลายกลยุทธ์เทรด แนวทางการทำ position sizing ที่อยากแนะนำคือ อย่าเสี่ยงมาก อย่าโลภมาก ใช้ position size ให้เหมาะกับสภาวะตลาด และต้องมีวินัย เช่น ตลาดกำลังวิ่งดีมีโมเมนตัมดีก็ใช้ position size ใหญ่หน่อยได้, ตลาดผันผวนมากก็ใช้ position size เล็กหน่อย, ตลาดไซด์เวย์ยังไม่เลือกทางเดาทางไม่ถูกยังคลุมเครืองั้นก็ใช้ position size เล็กหน่อย นอกจากนี้ยังทำ position sizing ประกอบการบริหารการเทรดได้ เช่น วันนี้ได้กำไรทะลุเป้าแล้วงั้นก็ใช้ position size…

Simple Execution Process

สำหรับ execution process นี้เป็นส่วนหนึ่งของระบบ Execution Management System (EMS) เวอร์ชั่นแรกที่ผมออกแบบโดยเน้นความเรียบง่าย เพื่อให้สามารถใช้เทรดได้ทุก symbol และทุกตลาด แต่ในความเรียบง่ายนี้ก็มีข้อจำกัดบ้างคือ 1 bot / 1 trade model / 1 symbol / 1 position / 1 microservice ในอนาคตผมจะออกแบบและพัฒนาระบบ execution ใหม่ๆ ขึ้นมาอีก เพื่อให้รองรับรูปแบบของบอทและกลยุทธ์การเทรดที่หลากหลายขึ้น

Time Series Overview

Time Series Data คือ ข้อมูลที่ประกอบด้วยข้อมูลย่อยหลายข้อมูล (หลายตัวอย่าง) แต่ละข้อมูลย่อยกำกับด้วยวันเวลา โดยข้อมูลทั้งหมดเรียงลำดับตามวันเวลา ตัวอย่างเช่น ข้อมูลราคาหุ้น, ข้อมูลพยากรณ์อากาศ, ข้อมูลจากเซ็นเซอร์, ข้อมูล log, ข้อมูลทรานแซกชั่น ประเภทข้อมูล time series มักแบ่งตามคุณลักษณะ ซึ่งคุณลักษณะที่เกี่ยวกับการลงทุนที่มักมีการกล่าวถึงบ่อยครั้งคือ ข้อมูลประเภท stationary กับ non-stationary การทำนายข้อมูล time series ที่ให้ความแม่นยำสูงมักเป็นประเภท stationary ซึ่งหมายถึงข้อมูลที่มีวัฏจักรสม่ำเสมอ เช่น ฤดูกาล, การออกดอก/ผลตามฤดูกาลของพืชผลทางการเกษตร, การจ่ายปันผลประจำปี, ค่าน้ำ/ค่าไฟ ข้อมูลลักษณะแบบนี้มักคาดการณ์ได้ง่าย เช่น หากเดือนที่แล้วมีค่าไฟ 1,000 บาท หากเดือนนี้ใช้ไฟใกล้เคียงกับเดือนที่แล้ว เดือนนี้ก็อาจมีค่าไฟใกล้เคียง 1,000 บาท…

Basic Charting & Technical Indicators

ทักษะพื้นฐานสำคัญด้านหนึ่งในการลงทุนคือ การวิเคราะห์ข้อมูล ซึ่งข้อมูลนั้นก็มีความหลากหลาย โดยทั่วไปแบ่งเป็น 2 ประเภทได้แก่ การวิเคราะห์พื้นฐานในการพัฒนาระบบ algorithmic trading มีข้อจำกัดและมีอุปสรรคบ้างในแง่การหาหรือรวบรวมข้อมูล ทั้งที่เป็น historical data และ real time data ซึ่งมีความยุ่งยากกว่าการใช้ข้อมูลราคาที่หาได้ง่ายกว่า อีกทั้งในงานด้าน data analytics ยุคใหม่และยุค big data ในปัจจุบัน เป็นแนว data-driven ที่เน้นการใช้ข้อมูลที่มีปริมาณมาก แล้วสร้างโมเดลมาเรียนรู้ข้อมูลอีกที ทำให้การใช้ข้อมูลพื้นฐานมีข้อจำกัดมากโดยเฉพาะปริมาณ historical data ที่มีน้อย จำเป็นต้องใช้ ‘ประสบการณ์และความรู้’ หรือ domain expertise ประกอบการวิเคราะห์สูง ต่างจากการใช้ข้อมูลราคามาวิเคราะห์เชิงเทคนิค ที่มีความยืดหยุ่นกว่า สามารถทำได้ง่ายกว่า และไม่จำเป็นต้องใช้ประสบการณ์และความรู้สูงมากนัก ก็สามารถวิเคราะห์และทำนาย…

กลยุทธ์การเทรดเบื้องต้น

มาทำความรู้จักกับกลยุทธ์การเทรดแบบต่างๆ กันครับ ใครเทรดหรือลงทุนมานานแล้วสามารถข้ามหัวข้อนี้ได้นะครับ นอกจากนี้มีข้อแนะนำเล็กน้อยครับ คือ การออกแบบ algo trading นั้นเปรียบเสมือนการออกแบบระบบไอที และในส่วนการออกแบบท่อน trade model นั้นต้องอาศัยการคิดวิเคราะห์แบบ systematic เพราะเรากำลังจะสร้างระบบไอทีหรือโรบอทให้เทรดด้วยกลยุทธ์การเทรดที่เราต้องการ ดังนั้นเราจึงต้องตีความและถ่ายทอดความคิด ไอเดีย จินตนาการ ประสบการณ์ ของเราออกมาเป็นอัลกอริธึมหรือเป็น systematic ที่ประกอบด้วยองค์ประกอบต่างๆ มีลำดับขั้นตอนต่างๆ จากประสบการณ์ผมที่สอนหนังสือมากว่า 20 ปีทางด้าน software architecture หรือทางด้านการออกแบบซอฟต์แวร์หรือระบบไอที พบว่าคนส่วนใหญ่มักติดที่ขั้นตอนนี้ครับ คนที่มีประสบการณ์ด้านบัญชีมานานไม่ได้หมายความว่าจะออกแบบระบบโปรแกรมบัญชีได้ดี, คนที่ลงทุนมานานก็ไม่ได้หมายความว่าจะออกแบบและพัฒนาโปรแกรมโรบอทเทรดได้ดี แนะนำเมื่อดูคลิปด้านล่างครบแล้ว ลองดูคลิป Problem Modeling ดูนะครับเพื่อจะเข้าใจสิ่งที่ผมกล่าว ความท้าทายสำคัญคือ การเอาชนะ bias & ego ของตัวเองครับ ศักยภาพของสมองซีกขวาและ…

พื้นฐานการลงทุนเบื้องต้น

รายการคลิปวิดีโอ พื้นฐานการลงทุนเบื้องต้น มีทั้งรายคลิปของผมเอง และคลิปดีๆ ที่น่าสนใจที่รวบรวมมาให้เรียนรู้เพิ่มเติมกันครับ สไลด์นี้เป็นสรุปจาก AI เข้าใจโลกการลงทุนใน 40 นาที โดย ลงทุนศาสตร์