ดาวน์โหลดแฟ้ม EA
|
|
ปรับปรุงครั้งล่าสุดเมื่อ
:๑๖ มกราคม พ.ศ. ๒๕๕๙ เวลา ๑๒.๐๐ น. Unstable
|
|
ไม่รับประกันความเสียหายอันเนื่องมาจากการทำงานของ EA ชุดนี้
|
สำหรับกลยุทธ์
(Strategy)
ในการเปิดคำสั่งซื้อ/ขายของ
My Fast Slow Moving Average Thai
EA นั้น จะเป็นระบบที่เปิดคำสั่งซื้อ/ขายตามเทรน
(Trend)
โดยใช้เส้นค่าเฉลี่ยของราคา
หรือที่เรียกว่า Moving
Average : MA เป็นตัวกำหนดเทรน
ซึ่งใน EA
ชุดนี้จะใช้เส้นค่าเฉลี่ยจำนวน
2 เส้น คือ
เส้นค่าเฉลี่ยเคลื่อนเร็ว
(Fast Moving Average)
ซึ่งค่าที่ใชึ้คือ MA
(28) หรือเส้นค่าเฉลี่ยของราคาจำนวน
28 วันที่ผ่านมา
และเส้นค่าเฉลี่ยเคลื่อนช้า
(Slow Moving Average)
ซึ่งค่าที่ใช้คือ MA
(180) หรือเส้นค่าเฉลี่ยของราคาของราคาจำนวน
180 วันที่ผ่านมา
โดยชนิดของเส้นค่าเฉลี่ยที่ใช้จะเป็นแบบ
Simple ทั้งหมด
ในการกำหนดจุดสำหรับทำการเปิดคำสั่งซื้อ/ขาย
จะใช้การดูจากการตัดกันของเส้นค่าเฉลี่ยของทั้งสองเส้น
โดยถ้า เส้นค่าเฉลี่ยเคลื่อนเร็ว
ตัด เส้นค่าเฉลี่ยเคลื่อนช้า
ขึ้น
จะแสดงถึงการเคลื่อนของราคากำลังอยู่ในทิศทางขาขึ้น
(Up Trend)
แต่ถ้าเส้นค้าเฉลี่ยเคลื่อนเร็ว
ตัด เส้นค่าเฉลี่ยเคลื่อนช้า
ลง
จะแสดงถึงการเคลื่อนของราคากำลังอยู่ในทิศทางขาลง
(Down Trend)
แต่เนื่องจากการตรวจสอบจุดตัดกันของเส้นค่าเฉลี่ยทั้งสองเส้น
ในแง่ของการเขียนโปรแกรม
จะทำได้ยาก วิธีที่ง่ายที่สุด
คือการดูความแตกต่างของเส้นค่าเฉลี่ยของทั้งสองเส้น
หรือนำค่าของเส้นค่าเฉลี่ยมาเปรียบเทียบกัน
ซึ่งค่าของเส้นค่าเฉลี่ยดังกล่าวก็คือราคาเฉลี่ยตามจำนวนวันที่กำหนด
ณ เวลาขณะที่กำลังตรวจสอบ
โดย ถ้า ค่าของเส้นค่าเฉลี่ยเคลื่อนเร็ว
มากกว่า ค่าของเส้นค่าเฉลี่ยเคลื่อนช้า
จะแสดงว่าเป็น เทรนขาขึ้น
แต่ถ้า ค่าของเส้นค่าเฉลี่ยเคลื่อนเร็ว
น้อยกว่า ค่าของเส้นค่าเฉลี่ยเคลื่อนช้า
จะแสดงว่าเป็น เทรนขาลง
นอกจากนี้ยังใช้ราคาปิดของราคาแท่งที่ผ่านมา
และราคาเปิดของแท่งราคาปัจจุบันยืนยันการเปิดคำสั่งซื้อขายอีกชั้นหนึ่ง
ตามเงื่อนไขดังนี้
กรณีการเปิดคำสั่ง
ซื้อ หรือ BUY
(ขาขึ้น)
- เส้นค่าเฉลี่ยเคลื่อนเร็ว > เส้นค่าเฉลี่ยเคลื่อนช้า
- ราคาปิดของแท่งราคาแท่งที่ผ่านมา > เส้นค่าเฉลี่ยเคลื่อนเร็ว และ ราคาเปิดของแท่งราคาแท่งปัจจุบัน > เส้นค่าเฉลี่ยเคลื่อนเร็ว
กรณีการเปิดคำสั่ง
ขาย หรือ SELL
(ขาลง)
- เส้นค่าเฉลี่ยเคลื่อนเร็ว < เส้นค่าเฉลี่ยเคลื่อนช้า
- ราคาปิดของแท่งราคาแท่งที่ผ่านมา < เส้นค่าเฉลี่ยเคลื่อนเร็ว และราคาเปิดของแท่งราคาปัจจุบัน < เส้นค่าเฉลี่ยเคลื่อนเร็ว
สำหรับกลไกของ
My Fast Slow Moving Average Thai
EA ที่ทำหน้าที่การเปิดคำสั่งซื้อ/ขายตามที่กล่าวมาในข้างต้น
จะเป็นหน้าที่ของฟังก์ชัน
“ตรวจสอบเปิดคำสั่งซื้อขาย()”
ซี่งมีเนื้อหาของฟังก์ชันดังนี้
/*+------------------------------------------------------------------+
ฟังก์ชัน
ตรวจสอบเปิดคำสั่งซื้อขาย();
ทำหน้าที่ตรวจสอบเงื่อนไข
เพื่อเปิดคำสั่งซื้อขาย
+------------------------------------------------------------------+*/
void
ตรวจสอบเปิดคำสั่งซื้อขาย(double
เส้นค่าเฉลี่ยเคลื่อนเร็ว,
double เส้นค่าเฉลี่ยเคลื่อนช้า)
{
int
ticket;
double
จำนวนpipตัดขาดทุน;
double
จำนวนตัดขาดทุน =
0.0;
//ปรับค่า
StopLoss เป็นค่าที่เหมาะสม
จำนวนpipตัดขาดทุน
=
หาจำนวนตัดขาดทุนที่เหมาะสม(เส้นค่าเฉลี่ยเคลื่อนช้า);
//ตรวจสอบเงื่อนไขสำหรับการขาย
(SELL)
if
((เส้นค่าเฉลี่ยเคลื่อนเร็ว
< เส้นค่าเฉลี่ยเคลื่อนช้า)
&&
((Close[1]
< เส้นค่าเฉลี่ยเคลื่อนเร็ว)
&& (Open[0] < เส้นค่าเฉลี่ยเคลื่อนเร็ว)))
{
//งานแสดงข้อความบนจอ
ข้อความแสดงบนจอ
+=
"\n\n*******เข้าเงื่อนไขการขาย
SELL*********";
Comment(ข้อความแสดงบนจอ);
if
(StopLoss > 0)
{
จำนวนpipตัดขาดทุน
= StopLoss;
}
//คำนวณจำนวนตัดขาดทุนสำหรับการขาย
จำนวนตัดขาดทุน
= (Bid - Ask) + Ask +
จำนวนpipตัดขาดทุน
* Point;
//เปิดคำสั่งขาย
ticket
= OrderSend( Symbol(),
OP_SELL,
หาจำนวนล็อตที่เหมาะสม(เส้นค่าเฉลี่ยเคลื่อนช้า),
Bid,
3,
จำนวนตัดขาดทุน,
Bid-TakeProfit*Point,
ชื่อEA,
เลขประจำEA,
0,
Red);
เทรนเก่า
= "ขาลง";
return;
}
//ตรวจสอบเงื่อนไขสำหรับการซื้อ
(BUY)
if
((เส้นค่าเฉลี่ยเคลื่อนเร็ว
> เส้นค่าเฉลี่ยเคลื่อนช้า)
&&
((Close[1]
> เส้นค่าเฉลี่ยเคลื่อนเร็ว)
&& (Open[0] > เส้นค่าเฉลี่ยเคลื่อนเร็ว)))
{
//งานแสดงข้อความบนจอ
ข้อความแสดงบนจอ
+="\n\n*******เข้าเงื่อนไขการซื้อ
BUY*********";
Comment(ข้อความแสดงบนจอ);
if
(StopLoss > 0)
{
จำนวนpipตัดขาดทุน
= StopLoss;
}
//คำนวณจำนวนตัดขาดทุนสำหรับการซื้อ
จำนวนตัดขาดทุน
= Bid - จำนวนpipตัดขาดทุน
* Point;
//เปิดคำสั่งซื้อ
ticket
= OrderSend( Symbol(),
OP_BUY,
หาจำนวนล็อตที่เหมาะสม(เส้นค่าเฉลี่ยเคลื่อนช้า),
Ask,
3,
จำนวนตัดขาดทุน,
Ask+TakeProfit*Point,
ชื่อEA,
เลขประจำEA,
0,
Blue);
เทรนเก่า
= "ขาขึ้น";
return;
}
}
|
ฟังก์ชัน
“ตรวจสอบเปิดคำสั่งซื้อขาย()”
จะเรียกใช้ฟังก์ชันภายนอกอีก
2 ฟังก์ชัน
คือ ฟังก์ชัน “หาจำนวนตัดขาดทุนที่เหมาะสม()”
และฟังก์ชัน “หาจำนวนล็อตที่เหมาะสม()”
โดยฟังก์ชัน หาจำนวนตัดขาดทุนที่เหมาะสม()
จะทำหน้าที่คำนวณหาค่า
Stop Loss (หน่วยเป็น
pip) โดยในกรณีของ
My Fast Slow Moving Average Thai
EA จะใช้ค่าของเส้นค่าเฉลี่ยเคลื่อนช้า
ซึ่งทำหน้าที่เสมือนแนวต้านของราคาเป็นค่าของ
Stop Loss
แต่เมื่อคำนวณแล้วต้องไม่น้อยกว่า
100 pip
สำหรับรายละเอียดของฟังก์ชัน
หาจำนวนตัดขาดทุนที่เหมาะสม()
มีดังนี้
/*+------------------------------------------------------------------+
ฟังก์ชัน
หาจำนวนตัดขาดทุนที่เหมาะสม()
ทำหน้าที่หาจำนวน pip
สำหรับการตัดขาดทุน หรือ
Stop Loss ใหม่
+------------------------------------------------------------------+*/
int
หาจำนวนตัดขาดทุนที่เหมาะสม(double
เส้นค่าเฉลี่ยเคลื่อนช้า)
{
int
จำนวนตัดขาดทุนที่คำนวณได้
= StopLoss;
int
ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า;
if
(CalculateNewStopLoss) {
ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า
= (Close[0] -
เส้นค่าเฉลี่ยเคลื่อนช้า)
/ Point;
//กรณีได้ค่าติดลบ
ปรับให้เป็น บวก ก่อน
if
(ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า
< 0)
{
ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า
=
-(ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า);
}
//ใช้เส้นค่าเฉลี่ยเคลื่อนช้าเป็นแนวต้นหรือ
Stop Loss แต่ต้องไม่น้อยกว่า
100
จำนวนตัดขาดทุนที่คำนวณได้
=
((ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า
< 100) ? 100 :
ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า);
}
return(จำนวนตัดขาดทุนที่คำนวณได้);
}
|
ส่วนฟังก์ชัน
หาจำนวนล็อตที่เหมาะสม()
จะทำหน้าที่คำนวณหา
ขนาดของล็อตที่เหมาะสมสำหรับการเปิดคำสั่งซื้อ/ขายครั้งนั้นๆ
โดยใช้จำนวนเงินที่ใช้ได้ในบัญชีมาหาจำนวนเงินที่ใช้คำนวณขนาดของล็อต
(ไม่เกินระดับความเสี่ยงที่กำหนดใน
MaximumRisk)
แล้วนำมาหาจำนวน ล็อต ตามวิธีที่กล่าวไว้ในบทความเรื่อง
การคำนวณหาจำนวนล็อต (lots)ที่เหมาะสมสำหรับการเปิดคำสั่งซื้อ/ขายในตลาดฟอเร็กซ์ซึ่งรายละเอียดดังนี้
/*+------------------------------------------------------------------+
ฟังก์ชัน
หาจำนวนล็อตที่เหมาะสม()
ทำหน้าที่หาจำนวนล็อตที่เหมาะสมต่อกันเปิด
order
+------------------------------------------------------------------+*/
double
หาจำนวนล็อตที่เหมาะสม(double
เส้นค่าเฉลี่ยเคลื่อนช้า)
{
double
ขนาดล็อตที่คำนวณได้;
double
จำนวนเงินทุนที่ใช้ได้;
//หาวงเงินในบัญชีที่เปิดคำสั่งซื้อ/ขายได้
double
จำนวนเงินในบัญชี =
AccountFreeMargin();
if
(StringFind(Symbol(), "micro", 0) != 0)
{
จำนวนเงินในบัญชี
= AccountFreeMargin() * 100;
}
//หามูลค่้าต่อ
1 pip
double
มูลค่าต่อ1pip
= MarketInfo(Symbol(), MODE_TICKVALUE);
//ถ้าทุนมากกว่า
200 จึงจะคำนวนตามสูตร
if
(จำนวนเงินในบัญชี >
200)
{
//นำจำนวนเงินในบัญชีมาคำนวณหายอดเงินที่ใช้ได้โดยดูจาก
MaximumRisk
จำนวนเงินทุนที่ใช้ได้
= จำนวนเงินในบัญชี
* MaximumRisk;
//หาขขนาดล็อตที่เหมาะสม
ขนาดล็อตที่คำนวณได้
= NormalizeDouble((
(จำนวนเงินทุนที่ใช้ได้
*
//จำนวนเงินที่มี
MaximumRisk) /
//คูณ เปอร์เซ็นกำไรที่ต้องการ
(((StopLoss==0)
&& !CalculateNewStopLoss) ?
100 :
หาจำนวนตัดขาดทุนที่เหมาะสม(เส้นค่าเฉลี่ยเคลื่อนช้า)))/มูลค่าต่อ1pip
//หาร ด้วยจำนวน pip
ที่ตัดขาดทุน
,
2); //แปลงเป็นเลขทศนิยม
2 ตำแหน่ง
}
else {
ขนาดล็อตที่คำนวณได้
= 0.01;
}
//ถ้า lots ที่คำนวณได้น้อยกว่า
MinimumLotSize ให้ใช้ค่าใน
MinimumLotSize แทน
if
(ขนาดล็อตที่คำนวณได้
< MinimumLotSize)
ขนาดล็อตที่คำนวณได้ =
MinimumLotSize;
//ส่งค่าขนาล็ออตที่เหมาะสมกลับ
return(ขนาดล็อตที่คำนวณได้);
}
|
ข้อจำกัดของการใช้กลยุทธ์ Fast Slow Moving Average
กลยุทธ์ Fast Slow Moving Average จะใช้ได้ดีหากการเคลื่อนไหวของอัตราแลกเปลี่ยนของคู่เงินนั้นๆ อยู่ในสภาวะที่มีการเคลื่อนไปในทิศทางขึ้นหรือลงที่ชัดเจน หรือ เป็นเทรน แต่จะมีปัญหาหากตลาดนิ่ง หรืออยู่ในสภาวะ side way จะทำให้เกิดการตัดขาดทุนบ่อยๆ โดยเฉพาะการใช้ Export Adviser หรือ EA ในการซื้อ/ขาย เพราะ EA จะแยกไม่ออกว่าช่วงไหนเป็นเทรน ช่วงไหนเป็น side way แนวทางแก้ไข คือเลือกใช้ Time frame ที่ใหญ่ขึ้นซึ่งขนาดของ Side way จะกว้างขึ้นพอทำกำไรได้
บันทึกประจำวันที่
24
กรกฎาคม
พ.ศ.
2557 (2014)
เวลา
|
เหตุการณ์
|
||
06:00 น. |
งานของกิจกรรมอาชีพ
งานการตลาดและการลงทุน
(20/2557) :
เชื่อมต่ออินเตอร์เน็ต
ค้นข้อมูลเกี่ยวกับร้านค้าบนอินเตอร์เน็ต
และจัดการร้านค้า หมอดิน YIC นาโน
|
||
07:00 น. |
|
||
07:30 น. |
งานของกิจกรรมอาชีพ
กสิกรรมธรรมชาติ บ้านแม่ทำ
สีทา (3/2557) :
ปลูกข้าวโพดข้าวเหนียว
|
||
11:00 น. | ปรับแต่งปั้มน้ำ และสูบน้ำใช้ด้วยปั้มชักพลังงานโซลาร์เซลล์ | ||
11:30 น. | อาบน้ำ | ||
12:00 น. |
|
||
13:00 น. | เอาน้ำราดพื้น, พักผ่อน | ||
15:00 น. | ทำบัญชีครัวเรือน ทำบันทึกประจำวันของวันก่อน | ||
14:30 น. |
งานของกิจกรรมอาชีพ
งานการตลาดและการลงทุน
(20/2557) :
ไปพิมพ์เอกสารที่วัดเขาแก้ว
|
||
16:30 น. |
งานของกิจกรรมอาชีพ
กสิกรรมธรรมชาติ บ้านแม่ทำ
สีทา (3/2557) :
ปลูกข้าวโพดข้าวเหนียว
|
||
19:00 น. |
|
||
21:00 น. | เข้านอน |