ดาวน์โหลดแฟ้ม EA
|
|
ปรับปรุงครั้งล่าสุดเมื่อ
:๑๖ มกราคม พ.ศ. ๒๕๕๙ เวลา ๑๒.๐๐ น. Unstable
|
|
ไม่รับประกันความเสียหายอันเนื่องมาจากการทำงานของ EA ชุดนี้
|
การปิดคำสั่งซื้อขาย
การปิดคำสั่งซื้อขายของ
My Fast Slow Moving Average Thai
EA นอกจากจะปิดคำสั่งซื้อขายโดยการที่ราคาวิ่งชน
T/P (Take Porfit) หรือ
S/L (Stop Loss) ตามปรกติแล้ว
ในระหว่างที่ราคายังวิ่งไม่ถึง
T/P หรือ S/L
โปรแกรม Export
Adviser ที่ชื่อ My
Fast Slow Moving Average Thai EA
ยังสามารถปิดคำสั่งซื้อขายด้วยเงื่อนไขอื่นๆ
ซึ่งจะแบ่งเป็น 3
กรณี ดังนี้
- กรณีคำสั่งซื้อขายเป็นคำสั่งซื้อ (BUY) หรือขณะอยู่ในเทรนขาขึ้น My Fast Slow Moving Average Thai EA จะทำการปิดคำสั่งดังกล่าว หากราคามาเปิดที่ใต้เส้นค่าเฉลี่ยเคลื่อนเร็ว
- กรณีคำสั่งซื้อขายที่เปิดเป็นคำสั่ง ขาย (SELL) หรือขณะอยู่ในเทรนขาลง My Fast Slow Moving Average Thai EA จะทำการปิดคำสั่งซื้อขายดังกล่าว ถ้าราคามาเปิดที่เหนือเส้นค่าเฉลี่ยเคลื่อนเร็ว
- ในกรณีกำหนดค่า FridayClosePositiveOrder เป็น True จะเป็นการกำหนดให้ EA ตรวจสอบิดคำสั่งซื้อขายที่มีผลกำไรขาดทุนเป็นบวกในทุกๆ วันศุกร์
ในกรณีที่
1) และ 2)
ถ้าเรากำหนดค่า ProfitPositiveCheck
เป็น False
จะเป็นการกำหนดให้ EA
ปิดคำสั่งซื้อขายที่ตรงตามเงื่อนไขที่กล่าวมาในข้างต้น
แต่ถ้ากำหนดค่า ProfitPositiveCheck
เป็น True ตัว
EA
จะเลือกปิดเฉพาะคำสั่งซื้อขายที่มีผลกำไรขาดทุนเป็นบวกเท่านั้น
แต่อย่างไรก็ดี
การปิดคำสั่งซื้อขายตามเงื่อนไขดังกล่าวไม่จำเป็นเสมอไปว่าจะต้องเป็นการเปลี่ยนเทรน
การทำ
Trailing
Stop
การทำ
Trailing Stop ของ My
Fast Slow Moving Average Thai EA จะทำในกรณีที่
ราคาวิ่งไปถูกทางแต่ยังไม่ถึง
TP
เมื่อราคาเคลื่อนถึงจุดที่กำหนดโดยในที่นี้กำหนดไว้ที่
150 pip
จากราคาที่เปิดคำสั่งซื้อขาย
ซึ่ง My Fast Slow Moving
Average Thai EA จะทำใส่ Trailing
Stop ตามระยะที่ระบุใน Trailing
Stop + 150 pip ซึ่งเมื่อราคาวิ่งมาชน
Trailing Stop
ก็จะเป็นการปิดคำสั่งซื้อขายอีกรูปแบบหนึ่ง
สำหรับเหตุผลที่ต้องเริ่มต้นทำ
Trailing Stop ที่ระยะ
150 pip
จากราคาที่เปิดคำสั่งซื้อขาย
เนื่องจากหากนำ EA
ชุดนี้ไปใช้กับโบรกเกอร์
XM จะทำให้ได้ผลตอบแทนอย่างน้อย
1 cent
ซึ่งถ้ากำหนดระยะใกล้กว่านี้จะทำให้ผลตอบแทนเป็น
0
สำหรับฟังก์ชันที่เกี่ยวข้องกับงานข้างต้นของ
My Fast Slow Moving Average
จะประกอบด้วยฟังก์ชันต่างๆ
ดังนี้
- ฟังก์ชัน ตรวจสอบปิดคำสั่งซื้อขาย() ทำหน้าตรวจสอบและสั่งปิดคำสั่งซื้อขายตามเงื่อนไขต่าง ๆ ตามที่กล่าวในข้างต้น
- ฟังก์ชัน ปิดคำสั่งซื้อ_BUYหรือทำ_TrailingStop() ทำหน้าที่ปิดคำสั่ง ซื้อ (Buy) และทำ Traling Stop
- ฟังก์ชั้น ปิดคำสั่งขาย_SELLหรือทำ_TrailingStop() ทำหน้าที่ปิดคำสั่ง ขาย (Sell) และทำ Trailing Stop
รายละเอียดของฟังก์ชัน
ตรวจสอบปิดคำสั่งซื้อขาย()
/*+------------------------------------------------------------------+
ฟังก์ชัน ตรวจสอบเปิดคำสั่งซื้อขาย();
ทำหน้าที่ตรวจสอบเงื่อนไข
เพื่อเปิดคำสั่งซื้อขาย
+------------------------------------------------------------------+*/
void
ตรวจสอบปิดคำสั่งซื้อขาย(double
เส้นค่าเฉลี่ยเคลื่อนเร็ว)
{
double
ผลกำไรขาดทุนของคำสั่งซื้อขาย;
//สำหรับเก็บค่ากำไรขาดทุนของ
Order
for(int
i=0;i<OrdersTotal();i++)
{
//กรณีไม่มีคำสั่งซื้อขาย
if
(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
//เลือกลบเฉพาะที่เปิดด้วย
EA ชุดนี้เท่านั้น
if
((OrderMagicNumber() == เลขประจำEA)
&&
(OrderComment() ==
ชื่อEA) &&
(OrderSymbol() ==
Symbol()))
{
//หาค่ากำไร/ขาดทุนของ
Order
ผลกำไรขาดทุนของคำสั่งซื้อขาย
= OrderProfit() + OrderSwap()
+ OrderCommission();
//ตรวจสอบกรณีคำสั่งซื้อ
(BUY)
if
(OrderType()==OP_BUY)
{
//ปิดคำสั่ง
BUY ที่มีกำไรในวันศุกร์
if
(FridayClosePositiveOrder &&
(DayOfWeek()==FRIDAY)
&&
((TimeHour(TimeCurrent()))
> StringToTime("14:00:00")) &&
(ผลกำไรขาดทุนของคำสั่งซื้อขาย
> 0))
{
ข้อความแสดงบนจอ +=
"\n\n***ทุกวันศุกร์ปิดคำสั่งซื้อที่ผลกำไรเป็น
บวก ตั้งแต่เวลา ๑๔.๐๐
น. เป็นต้นไป
***";
Comment(ข้อความแสดงบนจอ);
//ปิดคำสั่ง
BUY
if(!OrderClose(OrderTicket(),
OrderLots(), Bid, 3, White))
Print("OrderClose
error ",GetLastError());
}
//กรณีปรกติ
//ตรวจสอบเงื่อนไขกรณีปิดคำสั่งซื้อขายเฉพาะที่มีกำไร
if
(ProfitPositiveCheck)
{
//ถ้าค่ากำไร/ขาดทุนของ
Order ยังติดลบยังไม่ปิด
Order
if
(ผลกำไรขาดทุนของคำสั่งซื้อขาย
> 0)
{
ปิดคำสั่งซื้อ_BUYหรือทำ_TrailingStop(เส้นค่าเฉลี่ยเคลื่อนเร็ว);
}
} else {
//กรณีกำหนดให้ผลของคำสั่งซื้อขาย
ไม่จำเป็นต้องมีกำไร
ปิดคำสั่งซื้อ_BUYหรือทำ_TrailingStop(เส้นค่าเฉลี่ยเคลื่อนเร็ว);
}
}
//ตรวจสอบกรณีคำสั่งขาย
(SELL)
if
(OrderType()==OP_SELL)
{
//ปิดคำสั่ง
BUY ที่มีกำไรในวันศุกร์
if
(FridayClosePositiveOrder &&
(DayOfWeek()==FRIDAY)
&&
(TimeHour(TimeCurrent())
> StringToTime("14:00:00")) &&
(ผลกำไรขาดทุนของคำสั่งซื้อขาย
> 0))
{
ข้อความแสดงบนจอ +=
"\n\n***ทุกวันศุกร์ปิดคำสั่งซื้อที่ผลกำไรเป็น
บวก ตั้งแต่เวลา ๑๔.๐๐
น. เป็นต้นไป
***";
Comment(ข้อความแสดงบนจอ);
//ปิดคำสั่ง
SELL
if(!OrderClose(OrderTicket(),
OrderLots(), Ask, 3, White))
Print("OrderClose
error ",GetLastError());
}
//ตรวจสอบเงื่อนไขกรณีปิดคำสั่งซื้อขายเฉพาะที่มีกำไร
if
(ProfitPositiveCheck)
{
//ถ้าค่ากำไร/ขาดทุนของ
Order ยังติดลบยังไม่ปิด
Order
if
(ผลกำไรขาดทุนของคำสั่งซื้อขาย
> 0)
{
ปิดคำสั่งขาย_SELLหรือทำ_TrailingStop(เส้นค่าเฉลี่ยเคลื่อนเร็ว);
}
} else {
//กรณีไม่ตรวจสอบผลกำไร
ปิดคำสั่งขาย_SELLหรือทำ_TrailingStop(เส้นค่าเฉลี่ยเคลื่อนเร็ว);
}
}
}
}
}
}
|
รายละเอียดของฟังก์ชัน
ปิดคำสั่งซื้อ_BUYหรือทำ_TrailingStop()
/*+------------------------------------------------------------------+
ฟังก์ชัน
ปิดคำสั่งซื้อ_BUYหรือทำ_TrailingStop()
ทำหน้าที่ปิดคำสั่งซื้อ
(BUY) หรือทำ
Trailing Stop
+------------------------------------------------------------------+*/
void
ปิดคำสั่งซื้อ_BUYหรือทำ_TrailingStop(double
เส้นค่าเฉลี่ยเคลื่อนเร็ว)
{
//ปิดคำสั่ง
BUY เมื่อ
ราคาของแท่งราคาที่ผ่านมาเปิดใต้
เส้นค่าเฉลี่ยเคลื่อนเร็ว
if
(Open[0] < เส้นค่าเฉลี่ยเคลื่อนเร็ว)
{
if(!OrderClose(OrderTicket(),
OrderLots(), Bid, 3, White))
Print("OrderClose error
",GetLastError());
}
else {
//ตรวจสอบทำ
TrailingStop สำหรับการซื้อ
BUY
if
(TrailingStop>0)
{
//รอจนกว่าราคาจะวิ่งถึงจุดที่กำหนด
150 จุด
จากราคาเปิดด
if(Bid
- OrderOpenPrice() >= 150*Point)
{
if(OrderStopLoss()==0 ||
(Bid
- OrderStopLoss()> TrailingStop*Point))
{
if
(!OrderModify(OrderTicket(), OrderOpenPrice(),
Bid - TrailingStop*Point,
OrderTakeProfit(), 0, Blue))
{
Print("OrderModify error
",GetLastError());
}
return;
}
}
}
}
เทรนเก่า
= "ขาขึ้น";
}
|
รายละเอียดของฟังก์ชัน
ปิดคำสั่งขาย_SELLหรือทำ_TrailingStop()
/*+------------------------------------------------------------------+
ฟังก์ชัน ปิดคำสั่งขายSELLหรือทำ_TrailingStop()
ทำหน้าที่ปิดคำสั่งซื้อ
(BUY) หรือทำ
Trailing Stop
+------------------------------------------------------------------+*/
void
ปิดคำสั่งขาย_SELLหรือทำ_TrailingStop(double
เส้นค่าเฉลี่ยเคลื่อนเร็ว)
{
//ปิดคำสั่ง
SELL
เมื่อราคาแท่งที่ผ่านมาเปิดเหนือเส้นค่าเฉลี่ยเคลื่อนเร็ว
if (Open[0] >
เส้นค่าเฉลี่ยเคลื่อนเร็ว)
{
if(!OrderClose(OrderTicket(),
OrderLots(), Ask, 3, White))
Print("OrderClose
error ",GetLastError());
} else {
//ทำ
TrailingStop สำหรับการขาย
(SELL)
if (TrailingStop > 0)
{
//รอจนกว่าราคาจะวิ่งถึงจุดที่กำหนด
150 จุด
จากราคาเปิดด
if(OrderOpenPrice() -
Ask > 150*Point)
{
if(OrderStopLoss()
== 0 ||
OrderStopLoss()-Ask
> TrailingStop*Point)
{
if(!OrderModify(OrderTicket(),
OrderOpenPrice(),
Ask
+ TrailingStop*Point, OrderTakeProfit(), 0, Red))
{
Print("OrderModify
error ",GetLastError());
}
return;
}
}
}
}
เทรนเก่า =
"ขาลง";
}
|
บันทึกประจำวันที่
25
กรกฎาคม
พ.ศ.
2557 (2014)
เวลา
|
เหตุการณ์
|
||
06:00 น. | ตื่นนอน อ่านวารสารไมโครคอมพิวเตอร์ | ||
07:00 น. |
|
||
07:30 น. |
งานของกิจกรรมอาชีพ
กสิกรรมธรรมชาติ บ้านแม่ทำ
สีทา (3/2557) :
ปลูกข้าวโพดข้าวเหนียว
|
||
13:00 น. |
|
||
14:00 น. |
แต่งปั้มชัก
เนื่องจากซีนก้านชักหลุด
และสูบน้ำใช้ด้วยปั้มชักพลังงานโซลาร์เซลล์
|
||
16:00 น. | ซ่อมโคมไฟตุกตา และดวงไฟ LED | ||
18:00 น. | พักผ่อน | ||
19:00 น. |
|
||
20:15 น. | ทำบัญชีครัวเรือน ทำบันทึกประจำวันของวันก่อน | ||
20:45 น. | งานของกิจกรรมอาชีพ งานอินเตอร์เน็ต (18/2557):ทำแฟ้มโครงสร้างต้นฉบับบทความ | ||
22:00 น. | เข้านอน |