สร้างกลยุทธ์ด้วยตัวเองกับใช้ Library ต่างกันแค่ไหน

Investic
investic
Published in
Jun 29, 2022

ในโลกของเทรดเดอร์ เราก็จะมี Technical Indicator ให้เราเลือกใช้มากมาย ทั้งในการใช้งานในระดับ Basic และ Indicator ที่ใช้งานอย่างซับซ้อน ซึ่งการใช้สร้าง Technical Indicator หนึ่งตัวขึ้นมา ก็ใ้ช้หลักการทางคณิตศาสตร์และตัวเลขทางสถิติเข้ามาประยุกต์ใช้ ดังนั้นเราสามารถเขียน Technical Indicator เหล่านั้นได้ด้วยตัวเองไว้ว่าจะใช้เครื่องมืออะไรก็ได้ ตัวอย่างเช่นเราสามารถใช้ Excel ในการสร้าง MACD ได้ หรือสามารถสร้าง RSI ได้

แต่สำหรับเทรดเดอร์อย่างเราๆที่สามารถใช้ Python ได้ เราก็มาสร้าง Technical Indicator เหล่านั้นด้วย Python กันดีกว่า ตัวอย่างนี้จะเป็นการสร้าง MACD เพราะเป็น Indicator ที่ค่อนข้าง Basic และสามารถสร้างได้ไม่ยาก

ซึ่งข้อได้เปรียบของ Python คือบางครั้งเราไม่จำเป็นต้องรู้หลักการ การสร้าง MACD เลยด้วยซ้ำก็สามารถสร้างได้แล้ว เพราะ Python มี Library สำเร็จรูปที่เพียงรันโค๊ดบรรทัดเดียวก็สามารถสร้าง MACD ได้แล้ว และในบทความนี้จะเปรียบเทียบการสร้าง MACD แบบปกติกับแบบที่ใช้ Library สำเร็จรูปให้ดูว่ายากง่ายต่างกันอย่างไร

ก่อนอื่นต้องรู้ก่อนว่าการสร้าง MACD นั้นเราต้องใช้ข้อมูลของราคาเพื่อมาสามารถ 3 สิ่งที่สำคัญ เส้น Slow เส้น Fast และ Signal Line เมื่อได้ 3 เส้นที่สำคัญมาแล้วต่อไปก็ต้องสร้าง Histogram ต่อ

สำหรับใครที่อยากเข้าใจหลักการแบบละเอียดยิบสามารถอ่านต่อได้ในบทความนี้ https://medium.com/investic/สร้าง-macd-หาจุดซื้อขาย-bitcoin-ด้วย-python-63f75a0475dd

ทีนี้เรามาสร้าง MACD ด้วย Python กันเลย

def macd_func(df,a=12,b=21,c=9):   
EMA_short = df['Close'].ewm(span=a, adjust=False,min_periods= a+1).mean()
EMA_long = df['Close'].ewm(span=b, adjust=False,min_periods= b+1).mean()
MACD = EMA_short - EMA_long
signal = MACD.ewm(span=c, adjust=False,min_periods=c+1).mean()
df['macd'] = MACD
df['signal_line'] = signal
df['histogram'] = df['macd'] - df['signal_line']
return df

ต่อมาคือการสร้าง MACD ด้วยการใช้ Library pandas_ta ตัวโค๊ดจะเห็นว่ามันสั้นมากและไม่มีตัวแปรอะไรมากมาย ก็สร้าง MACD ได้แล้ว

df_ta.ta.macd(slow=26,fast=12,signal=9,append=True)

เพียงเท่านี้เราก็จะได้ Indicator อย่าง MACD เอามาไว้ใช้งานแล้ว

การสร้างทั้งสองรูปแบบทำให้เราสามารถใช้งาน Tecnical Indicator เหมือนกันแต่สิ่งที่ต่างกันคือเรื่องเวลาในการสร้างและรันโค๊ด สมมติหากเรามีหลากหลายกลยุทธ์เราก็คงไม่เสียเวลาไปนั่งเขียน Logic แบบนี้ทุกๆอันหรอก

Investic

--

--