จากข้อมูลย้อนหลังตั้งแต่ปี 2003 จนถึงต้นปี 2014 เป็นเวลา 10 ปี จะพบว่าข้อมูลของ SET Index และการซื้อขายสะสมของต่างชาติจะลักษณะตามรูปข้างล่างครับ

fundflow

หลังจากนั้นเราจะทำการแบ่งออกเป็นช่วงๆ โดยยึดเฉพาะส่วน top, bottom ของแนวโน้มที่มีการซื้อขายสะสมเปลี่ยนแปลงตั้งแต่ 17,256 ล้านบาทขึ้น แล้วนำมา plot เป็นกราฟ

fundflow-data

เมื่อนำข้อมูลทั้ง 38 จุด มาหาความสัมพันธ์ (Correlation Coefficient) จะได้ผลลัพธ์ 0.7238 แปลว่า การเปลี่ยนแปลงของดัชนี SET Index มีความสัมพันธ์ในทิศทางเดียวกันสูง กับ การเปลี่ยนแปลงของยอดการซื้อขายสะสมของต่างชาติ จากข้อมูลทดสอบในช่วง 10 ปีที่ผ่านมา

fund flow

แต่ถ้าเราทำการ Normalize ข้อมูลโดยหารข้อมูลทั้งสองด้วยระยะเวลาระหว่างแต่ละช่วงแล้ว จะพบว่าค่าความสัมพันธ์จะยิ่งเพิ่มขึ้นอีก เป็น 0.85775

fundflow-normalize

จากข้อมูลข้างต้นจะทำให้พอสรุปอย่างคราวๆ ในกรอบระยะเวลาตั้งแต่หนึ่งเดือนขึ้นไปได้ว่า
– ในช่วงที่ฝรั่งมีการซื้อสะสมเพิ่มขึ้นอย่างต่อเนื่องเฉลี่ยมากกว่า 250 ล้านบาทต่อวันขึ้นไป SET มีแนวโน้มจะปรับตัวสูงขึ้น
– ในทางกลับกับ ถ้าฝรั่งมียอดซื้อขายสะสมลดลงอย่างต่อเนื่องเฉลี่ยมากกว่า 500 ล้านบาทต่อวันขึ้นไป SET มีแนวโน้มจะปรับตัวลดลง

 

Reference:

Correlation

How to Interpret a Correlation Coefficient r

What’s RSI?

RSI คือ Indicator สำหรับบ่งชี้ความแข็งแรงของแนวโน้มชนิดหนึ่ง ซึ่งคำนวณจาก ค่าเฉลี่ยวันที่ปิดบวก/ค่าเฉลี่ยวันที่ปิดลบ แล้วนำมาแปลงเป็นดัชนี 0-100 โดยที่ถ้าค่าต่ำกว่า 30 คือขายมากเกินไป(Over Sold) สูงกว่า 70 คือซื้อมากเกินไป(Over Bought)

rsi-2-rsplot

 

Testing

เพื่อจะให้รู้ว่าการซื้อขายโดยใช้ RSI ในรูปแบบไหนที่ให้ผลตอบแทนคุ้มค่ามากที่สุด ผมจึงได้ทำการทดสอบสัญญาณซื้อที่เกิดจาก RSI ที่ใช้กันทั่วไปๆ ทั้งหมด 4 แบบด้วยกัน ผ่านโปรแกรม Amibroker

การทดสอบจะเป็นการจำลองซื้อขายหุ้นจำนวน 638 ตัว ในช่วงเวลา 13 ปี (2000-2013) ตามสัญญาณที่เกิดขึ้น โดยจะเป็นซื้อแล้วถือเป็นระยะเวลาต่างๆ เวลาที่ใช้ในการแสดงจะหน่วยเป็น bar (จำนวนวันที่มีการเปิดซื้อขายหลักทรัพย์) ส่วนผลการทดสอบจะมีกราฟอยู่ 3 ประเภทด้วยกัน

1. Avg. Profit % แสดงผลตอบแทนเฉลี่ยเทียบกับเงินลงทุนในแต่ละครั้ง โดยจะใช้แกนทางซ้ายของ chart

2. Winning % แสดงอัตราส่วนการทำกำไร โดยจะใช้แกนทางซ้ายของ chart

3. Payoff Ratio แสดงอัตราส่วนผลตอบแทน ระหว่าง ค่าเฉลี่ยของกำไร/ค่าเฉลี่ยของขาดทุน โดยจะใช้แกนทางขวาของ chart

 

* ผลการทดสอบนี้อาจจะแตกต่างกันไป ขึ้นอยู่กับประเภทของสินทรัพย์ ช่วงเวลา สภาวะตลาด และความสมบูรณ์ของข้อมูลที่ใช้ในการทดสอบ ดังนั้นควรทดสอบด้วยตัวเองก่อนการนำไปประยุกต์ใช้

** การลงทุนมีความเสี่ยง ผู้ลงทุนควรศึกษาข้อมูลก่อนการตัดสินใจลงทุน

 

Buy Signal: RSI cross-up oversold (30)

ซื้อเมื่อสัญญาณตัดขึ้นเหนือเส้น oversold

RSI (Cross-Up 30)

Winning Ratio เกือบ 50% หลังจาก 90 bar (และไม่มากไปกว่านี้)

จะทำกำไรหลังจาก 30 bar

ระบบจะทำกำไรเฉลี่ย 10% หลังจาก 170 bar

ระบบจะทำกำไรเฉลี่ย 20% หลังจาก 244 bar

image

จุดขายที่เหมาะสม

- 231 bar กำไรเฉลี่ย 19.67% โดยจะมี Profit Distribution ตามรูปข้างล่าง profdist2

สรุปสัญญาณในรูปแบบนี้จะทำกำไรได้ดี ก็ต่อเมื่อถือไปไม่ต่ำกว่า 170 bar (หรือเกือบ 8 เดือน) และจะให้กำไร 20% เมื่อถือเกือบครบ 1 ปี ดังนั้นการซื้อรูปแบบนี้จึงเหมาะกับหุ้นที่มีพื้นฐานดีและพื้นฐานไม่เปลี่ยนเท่านั้น

 

Buy Signal: RSI cross-down oversold (30)

ซื้อเมื่อสัญญาณตัดลงต่ำกว่าเส้น oversold

RSI (Cross-Dwon 30)

ระบบจะทำกำไรหลังจาก 47 bar โดยค่าอย่างอื่นเป็นรอง Cross-Up 30 อยู่ประมาณ 5% ดังนั้นควรเลือกใช้กลยุทธ Cross-Up Oversold แทน

 

Buy Signal: RSI cross-up overbought (70)

ซื้อเมื่อสัญญาณตัดขึ้นเหนือเส้น overbought

RSI (Cross-Up 70)

Winning Ratio จะสูงกว่า 50% หลังจากแค่ 11 bar (และสูงสุุดเกือบๆ 60%)

ระบบจะทำกำไรเพิ่มขึ้นอย่างคงที่ โดยกำไรจะเพิ่มขึ้นเร็วในช่วงแรก และช้าลง

ระบบจะทำกำไรเฉลี่ย 10% หลังจาก 68 bar

ระบบจะทำกำไรเฉลี่ย 20% หลังจาก 148 bar

image

จุดขายที่เหมาะสม

156 bar กำไรเฉลี่ย 20.62% โดยจะมี Profit Distribution ตามรูปข้างล่าง

profdist

สรุปสัญญาณซื้อรูปแบบนี้ ให้ผลตอบแทนที่สม่ำเสมอกว่าการซื้อที่บริเวณใกล้เขต oversold ระบบจะทำกำไรได้ดีเมื่อผ่านไปไม่นาน ประมาณ 3 เดือน และมี winning/payoff ratio ที่ดี ทำให้เหมาะกับการนำไปใช้งานทั่วๆ ไป โดยไม่ต้องคำนึงถึงคุณภาพของหุ้นมากนัก

 

Buy Signal: RSI cross-down overbought (70)

ซื้อเมื่อสัญญาณตัดลงต่ำกว่าเส้น overbought

RSI (Cross-Down 70)

ลักษณะกราฟจะคล้ายคลึงกับ Cross-up overbought แต่จะเหมือน lag กว่าหน่อย ดังนั้นความใช้ Cross-up overbought แทน

 

Summary

image

image

image

จากรูปข้างต้นจะเห็นได้ว่าค่า RSI Index ที่เหมาะสมที่สุดในการใช้ตัดสินใจซื้อคือ 70 นั่นเอง

เพิ่มเติม

ถ้าเอาผลการทดสอบของระบบ RSI Cross-up 70 ไปเปรียบเทียบกับระบบ Follow buy เมื่อราคา break new high ในรอบ 55 วัน (กราฟเส้นจางกว่า) จะพบว่าระบบทั้งสองมีลักษณะที่คล้ายกันมาก เพราะจริงๆ มันก็คือ trend following เหมือนกัน แต่ระบบ New High จะให้ผลตอบแทนที่ดีกว่าในช่วง 100 bar แรก

New High (Break-up) VS RSI (Cross-up 70)

Trading Research 2014

  • Price & Volume
  • Indicator Signature
    • RSI
    • MACD
    • BB
    • SMA
    • EMA
    • ZigZag
  • Money Management & Possibility Management
  • Arbitage

The iPhone 5

[ Draft Version ]

Requirement.

image

1. Direct attribute

image

image

image

3. Property collection

image

image

image

Using FTP Virtual Hosts

Because FileZilla’s site manager allows you to specify the virtual host name as part of the user credentials, FileZilla works great with FTP7’s virtual host names. All that you need to do is use the "ftp.example.com|username" syntax when specifying your username, and when you connect to the FTP7 server it will route your requests to the correct FTP virtual host site.

ftp-virtual-hosts

Unfortunately, even though FileZilla allows you to send custom commands, you cannot send custom commands outside of an established FTP session, so you can’t send the FTP HOST command as part of your login, therefore true FTP hosts are not supported.

 

Original Website:

http://blogs.iis.net/robert_mcmurray/archive/2008/12/17/ftp-clients-part-4-filezilla.aspx

A lot has been written about how to get ASP.NET MVC running on IIS 6 with extensionless URLs. Up until now, the story hasn’t been very pretty. When running ASP.NET MVC on ASP.NET 4, it gets a lot easier.

To be fair, the part that makes it easier has nothing to do with ASP.NET MVC 3 and everything to do with a little known new feature of ASP.NET 4 creatively called the ASP.NET 4 Extensionless URL feature. ASP.NET MVC 3 requires ASP.NET 4 so it naturally benefits from this new feature.

If you have a server running IIS 6, ASP.NET 4, and ASP.NET MVC 3 (or even ASP.NET MVC 2. I haven’t tried ASP.NET MVC 1.0), your website should just work with the default extensionless URLs generated by ASP.NET MVC applications. No need to configure wildcard mappings nor *.mvc mappings. In fact, you don’t even need to set RAMMFAR to true. RAMMFAR is our pet name for the runAllManagedModulesForAllRequests setting within the system.webserver setting in web.config. You can feel free to set this to false.

<modules runAllManagedModulesForAllRequests="false"/>

When installing ASP.NET 4, this is enabled by default. So if you have a hosting provider still using IIS 6, but does have ASP.NET 4 installed, then this should work for you, unless…

How does this work?

To be honest, it’s a bit of voodoo magic as far as I can tell and there’s a lot of caveats when it comes to using this feature with IIS 6. There are edge cases where it can cause problems. This is why Thomas Marquardt, the implementor of the feature, wrote a blog post on how to disable ASP.NET 4.0 Extensionless URLs just in case.

In that blog post, he describes the bit of magic that makes this work.

Here’s how the v4.0 ASP.NET extensionless URL features works on IIS 6. We have an ISAPI Filter named aspnet_filter.dll that appends “/eurl.axd/GUID” to extensionless URLs. This happens early on in the request processing. We also have a script mapping so that “*.axd” requests are handled by our ISAPI, aspnet_isapi.dll. When we append “/eurl.axd/GUID” to extensionless URLs, it causes them to be mapped to our aspnet_isapi.dll, as long as the script map exists as expected. These requests then enter ASP.NET where we remove “/eurl.axd/GUID” from the URL, that is, we restore the original URL. The restoration of the original URL happens very early. Now the URL is extensionless again, and if no further changes are made

He also has a list of conditions that must be true for this feature to work. If any one of them is false, then you’re back to the old extensionfull URLs with IIS 6.

I’m Getting a 403 Forbidden

This is not technically related, but when I tried to test this out to confirm the behavior, I ran into a case where every request was giving me a 403 Forbidden error message. Here’s how I fixed it.

In IIS Manager, I right clicked on the Web Services Extension node and selected the menu option labeled Allow all Web Service extensions for a specific application:

iis6-allowing-extensions_c8da0e56-c92c-4db2-bec3-dae986aef3db

In the resulting dialog, I chose the ASP.NET v4.0.30319 option.

iis6-allow-web-service_6666234c-f460-49d7-b324-96053d4c8469

To double check that everything was configured correctly, I looked at the properties for my website and ensured that Scripts were enabled.

iis6-home-directory-tab_a875455f-2db1-4a62-8302-5dfda6ec4657

I also clicked on the Configuration… button and made sure that *.axd was mapped to the proper ASP.NET Isapi dll (aspnet_isapi.dll).

iis6-isapi_82292fe2-1d7c-4575-a05a-dce0ba366387

iis6-extension-mapping_1d236e21-6957-4e6f-bdfa-0cdf202a8a6c

With all that in place, I was able to run standard ASP.NET MVC web application and make requests for /, /home/about/, etc. without any problems!

Original version: http://haacked.com/archive/2010/12/22/asp-net-mvc-3-extensionless-urls-on-iis-6.aspx

Follow

Get every new post delivered to your Inbox.