สร้าง RSI ดู Momentum ราคา Bitcoin ถึงเวลาซื้อแล้วหรือยัง ?
RSI คือ indicator ยอดนิยมสำหรับสาย Technical Analysis เป็นเครื่องมือที่ช่วยดู Momentum ของสินทรัพย์ในแต่ละช่วงเวลา
สูตรการคำนวณ RSI
RSI = 100–100/(1+RS)
ตัว RS คือ Average Gain หรือ Average Loss คือตัวเลขที่บอกว่ามี
def rsi_func(df, days=14,lower=30,upper=70): chg = df['Close'].diff(1)
gain = chg.mask(chg<0,0) #if chg < 0 then value = 0 loss = chg.mask(chg>0,0) #if chg > 0 then value = 0 avg_gain = gain.rolling(days).mean() #by default min_periods = window avg_loss = abs(loss.rolling(days).mean()) #by default min_periods = window rs = avg_gain/avg_loss rsi = 100 - (100/(1+rs)) df['rsi'] = rsi
#Find action zone
df.loc[(df['rsi'] > upper), 'action'] = 'sell' df.loc[(df['rsi'] < lower), 'action'] = 'buy' df.loc[df['action'] == 'buy', 'marker_position'] = df['Low'] * 0.98 df.loc[df['action'] == 'sell', 'marker_position'] = df['High'] * 1.02 return dfreturn df
แต่เอ๋เคยได้ยินว่ามันมีตัวเลข 14 อยู่นี่เวลาตั้งค่าใน Tradingview หรือในแพลตฟอร์มอื่นๆที่เคยใช้ แล้วแบบนี้ไอเลข 14 ที่ว่ามันอยู่ตรงไหน
จริงๆเลข 14 มันซ่อนอยู่ในตัวของ RS ยังไงหละ ปกติสูตรในการคำนวณคือ ก็คือ Average Gain or Loss = [(Previous Gain * 13) + Current Gain) /14 ถ้าดูสูตรแล้วงง ในตัวคำก็อธิบายอยู่แล้วว่า Average ซึ่งมันคือค่าเฉลี่ยของ Gain กับ Loss และตัวเลข 14 ก็เป็นจำนวนของแท่งเทียนว่าเฉลี่ยกี่แท่ง ซึ่งตัวเลขนี้เราก็ตามใจเราเลย แต่โดยปกติค่าที่ตั้งเป็น Defualt ก็คือ 14 แท่งในระดับ Daily
def rsi_plot(df_plot,lower=30,mid=50,upper=70): df = rsi_func(df_plot) df['lower'] = lower df['upper'] = upper df['mid'] = mid rsi_ylim = (0,100) # for plot rsi mpf_rsi = mpf.make_addplot(df['rsi'], panel=1, color='blue', title='RSI', ylim=rsi_ylim) mpf_lower = mpf.make_addplot(df['lower'], panel = 1, color='orange', ylim=rsi_ylim) mpf_upper = mpf.make_addplot(df['upper'], panel = 1, color='orange', ylim=rsi_ylim) mpf_mid = mpf.make_addplot(df['mid'], panel = 1, color='gray', ylim=rsi_ylim)
# for marker markers = ['^' if x == 'buy' else 'v' for x in df['action']] color_marker = ['green' if x == 'buy' else 'red' for x in df['action']] plot_signal = mpf.make_addplot(df['marker_position'], type='scatter', marker=markers, color=color_marker) plots = [mpf_rsi, mpf_lower, mpf_mid ,mpf_upper, plot_signal] return plots
สิ่งที่ RSI จะบอกได้ก็คือลักษณะของแนวโน้มการซื้อของนักลงทุนกับการขายของนักลงทุนว่ามีมากหรือน้อยอย่างไร สองคำที่เรามักจะได้ยินเสมอๆ จาก RSI คือ Overbought และ Oversold
Overbought คือสภาวะของสินทรัพย์นั้นมีแรงซื้อจำนวนมากซึ่งเราก็มักจะมีเลขมาบอกว่าเท่าไหร่ถึงเรียกว่ามากเกินไป ตัวเลขที่มักนิยมในฝั่ง Overbought คือ 70
มาในส่วนของ Oversold ก็ตรงกันข้ามคือสภาวะของสินทรัพย์นั้นมีแรงขายจำนวนมากซึ่ง ตัวเลขที่มักนิยมในฝั่ง Oversold คือ 30
30 ซื้อ และ 70 ขาย หรอ?
70–30 คือตัวเลขที่คุ้นเคยกันเป็นอย่างดี เนื่องจากมีหลายสำนักมักบอกว่า มากกว่า 70 ให้ขายและน้อยกว่า 30 ให้ซื้อ แต่ในตลาดจริงมันมีอะไรที่มากกว่านั้น หากใครลองทำ Backtest กับ Asset โดยใช้ RSI ก็จะรู้ว่าเละไม่เป็นท่า จริงแนะนำให้ดูเป็นแนวโน้ม Momentum ของตลาดในช่วงนั้นมากกว่าว่าแรงซื้อแรงขายเยอะแค่ไหนเพื่อดูการกลับตัว และใช้ Indicator อื่นๆประกอบด้วย
อีกสิ่งหนึ่งที่ RSI จะบอกได้อีกคือ Divergence
ในสภาวะที่ตลาดขึ้นมาสูงมากๆจะมีสิ่งที่เรียกว่า Divergence เกิดขึ้น เพื่อเป็นสัญญาณบอกการว่าสินทรัพย์ตัวนั้นๆมีโอกาสกลับตัวเนื่องจากแรงซื้อค่อยๆน้อยลงแต่ราคากลับสูงขึ้นเรื่อยๆ หรือราคาสินทรัพย์นั้นไหลลงเรื่อยๆแต่แรงขายนั้นไม่ได้เพิ่มตามราคาที่ไหลลง แสดงให้เห็นว่าตลาดมีแนวโน้มกลับตัว แต่ถามว่า Divergence ใช้ได้ทุกครั้งไหม ตอบตรงนี้เลยว่าไม่ เพราะบางทีเกิดเหตุการณ์บางอย่างทำให้แรงซื้อหรือแรงขายกลับมาเยอะแล้วทำลาย Divergence นั้นก็มีอยู่บ่อย
แล้วใช้อะไรดี ?
สิ่งที่นักลงทุนหรือเทรดเดอร์ทั้งหลายควรมีคือ framework การลงทุนของตัวเอง เช่นการเลือกสินทรัพย์ที่คิดว่าใช่และพื้นฐานดี การกล้าตั้ง Stop Loss และ Take Profit และอีกสิ่งหนึ่งที่สำคัญเลยคือ Money Management
ในช่วงที่ราคาไหลลงแบบนี้ถ้าหุ้นหรือเหรียญที่พื้นฐานค่อนข้างดีก็อาจจะไม่ได้ลงเยอะตามตัวอื่นๆ ต่อมาการตั้ง stop loss ก็จะช่วยลดการขนาดทุนของเราได้และพอร์ตของเราก็อาจจะไม่แดงเท่าทุกวันนี้ และส่วนสุดท้ายคือ Money Management ในช่วงที่ราคายังลงต่อเนื่องหลายๆก็จะพยายามช้อนซื้อซึ่ง Money Management คือสิ่งที่จำเป็นมากอีกหนึ่งข้อมูลเพื่อให้เราอยู่รอดในตลาดได้
ลองสร้าง Framework การลงทุนหรือเทรดของตัวเองกันดูนะ
Investic