ดาวน์โหลดแฟ้ม EA
|
|
ปรับปรุงครั้งล่าสุดเมื่อ
:๑๖ มกราคม พ.ศ. ๒๕๕๙ เวลา ๑๒.๐๐ น. Unstable
|
|
ไม่รับประกันความเสียหายอันเนื่องมาจากการทำงานของ EA ชุดนี้
|
|
โปรแกรม
Export Adviser ที่ชื่อ
My Fast Slow Moving Average ThaiEA ที่ผู้เขียนจัดทำขึ้นนั้น
หลังจากทำการติดตั้งลงในโปรแกรม
Meta Trader
และนำไปบรรจุลงในกราฟของคู่เงินที่จะทำการซื้อขายอัตราแลกเปลี่ยนแล้ว
ตัว EA จะเริ่มทำงานเมื่อ
มีการเปลี่ยนแปลงของราคาของคู่เงินนั้นๆ
(OnTick())
โดยการทำงานจะเริ่มด้วยการอ่านค่าของ
Moving Average (28)
เก็บในตัวแปรชื่อ
“เส้นค่าฉลี่ยเคลื่อนเร็ว”
และค่า Moving Average
(180) เก็บในตัวแปรชื่อ
“เส้นค่าเฉลี่ยนเคลื่อนช้า”
จากนั้นจะเป็นการจัดข้อความที่จะแสดงบนหน้าจอ
(บนกราฟ)
ตามด้วยทำการนับจำนวนคำสั่งซื้อขายที่เปิดด้วย
EA ชุดนี้ที่ยังคงค้างอยู่
ซึ่งถ้ามีก็จะทำการตรวจสอบเพื่อทำการปิดคำสั่งซื้อขาย
แล้วจึงทำการตรวจสอบเพื่อเปิดคำสั่งซื้อขายใหม่ โดยจะตรวจสอบเทรน จำนวนที่เปิดครบตามจำนวนที่กำหนดหรือไม่ และจะพยายามไม่เปิดคำสั่งซื้อใหม่ถ้าคำสั่งซื้อที่เปิดไปแล้วยังติดลบอยู่ ยกเว้นกรณีเกิดเทรนใหม่ และตรวจสอบการเปิดคำสั่งซื้อขายในวันศุกร์ ตามลำดับ
//+------------------------------------------------------------------+
//| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { double เส้นค่าเฉลี่ยเคลื่อนเร็ว; double เส้นค่าเฉลี่ยเคลื่อนช้า; double ผลกำไรขาดทุนคำสั่งซื้อขายล่าสุด = 0; int จำนวนคำสั่งซื้อขายที่เปิดไปแล้ว = 0; bool สถานะอนุญาตให้เปิดคำสั่ง = True; string เทรนปัจจุบัน = ""; //อ่านเส้นค่าเฉลี่ยเคลื่อนที่เร็ว เส้นค่าเฉลี่ยเคลื่อนเร็ว = iMA(NULL, 0, FastMovingAverage, 6, MODE_SMA, PRICE_CLOSE, 0); //อ่านเส้นค่าเฉลี่ยเคลื่อนที่ช้า เส้นค่าเฉลี่ยเคลื่อนช้า = iMA(NULL, 0, SlowMovingAverage, 6, MODE_SMA, PRICE_CLOSE, 0); //งานแสดงข้อความบนจอ ข้อความแสดงบนจอ = "\n****ปรับปรุงครั้งสุดดท้ายเมื่อ : " + ปรับปรุงครั้งล่าสุด + "****"; ข้อความแสดงบนจอ += "\n\n***เงื่อนไขปิดคำสั่งซื้อขายเฉพาะที่มีกำไร : " + (ProfitPositiveCheck ? "True" : "False") + "***"; ข้อความแสดงบนจอ += "\n\n***เงื่อนไนการคำนวณ Stop Loss อัตโนมัติ : " + (CalculateNewStopLoss ? "True" : "False") + "***"; ข้อความแสดงบนจอ += "\n\n***Stop Loss : " + ((StopLoss==0) ? ((!ProfitPositiveCheck ? "ใช้การกลับเทรนเป็น Stop Loss" : (!CalculateNewStopLoss ? "ไม่ได้กำหนด Stop Loss" : "Auto Stop Loss" ))) : StopLoss) + "***"; //ตรวจสอบเงื่อนไขสำหรับการขาย (SELL) if (เส้นค่าเฉลี่ยเคลื่อนเร็ว < เส้นค่าเฉลี่ยเคลื่อนช้า) { ข้อความแสดงบนจอ += "\n\n****FastMA = " + เส้นค่าเฉลี่ยเคลื่อนเร็ว + " <" + " SlowMA = " + เส้นค่าเฉลี่ยเคลื่อนช้า + "****"; เทรนปัจจุบัน = "ขาลง"; } else { ข้อความแสดงบนจอ += "\n\n****FastMA = " + เส้นค่าเฉลี่ยเคลื่อนเร็ว + " >" + " SlowMA = " + เส้นค่าเฉลี่ยเคลื่อนช้า + "****"; เทรนปัจจุบัน = "ขาขึ้น"; } ข้อความแสดงบนจอ += "\n\n*************เทรน " + เทรนปัจจุบัน + "************"; ข้อความแสดงบนจอ += "\n\n ราคาปิดหลังสุด : " + DoubleToStr(Close[1],4) + (((Close[1] - เส้นค่าเฉลี่ยเคลื่อนเร็ว) >= 0) ? " > ":" < ") + "เส้นค่าเฉลี่ยเครื่อนเร็ว"; ข้อความแสดงบนจอ += "\n\n ====จำนวนเงินที่ใช้ได้ ==> " + ((StringFind(Symbol(), "micro", 0) != -1) ? AccountFreeMargin() * 100 : AccountFreeMargin() ) + "===="; ข้อความแสดงบนจอ += "\n\n***มูลค่าต่อ 1 pip==> " + MarketInfo(Symbol(), MODE_TICKVALUE) + "***"; ข้อความแสดงบนจอ += "\n\n***จำนวนล็อต ในการสั่งซื้อรอบถัดไป ==> " + หาจำนวนล็อตที่เหมาะสม(เส้นค่าเฉลี่ยเคลื่อนช้า) + "***"; Comment(ข้อความแสดงบนจอ); //ตรวจสอบจำนวนคำสั่งซื้อ/ขายที่เปิดค้างอยู่ int ตัวนับจำนวนรอบการทำงานของการวนซ้ำ = 0; int จำนวนคำสั่งซื้อขายทั้งหมด = OrdersTotal(); for (ตัวนับจำนวนรอบการทำงานของการวนซ้ำ = 0; ตัวนับจำนวนรอบการทำงานของการวนซ้ำ < จำนวนคำสั่งซื้อขายทั้งหมด; ตัวนับจำนวนรอบการทำงานของการวนซ้ำ++) { //เลือกนับเฉพาะ Order ที่เปิดด้วย MyFastSlowMAThaiEA if(!OrderSelect(ตัวนับจำนวนรอบการทำงานของการวนซ้ำ, SELECT_BY_POS, MODE_TRADES)) continue; if ((OrderComment() == ชื่อEA)&& (OrderMagicNumber() == เลขประจำEA)) { จำนวนคำสั่งซื้อขายที่เปิดไปแล้ว++; ผลกำไรขาดทุนคำสั่งซื้อขายล่าสุด = OrderProfit() + OrderSwap() + OrderCommission(); if (ผลกำไรขาดทุนคำสั่งซื้อขายล่าสุด <= 0) { สถานะอนุญาตให้เปิดคำสั่ง = False; } } } if(IsTradeAllowed()) { //ตรวจสอบคำสั่งซื้อขายล่าสุดเป็นบวกหรือไม่ ถ้าเป็นบวกจึงเปิดคำสั่งซื้อขายใหม่ if (จำนวนคำสั่งซื้อขายที่เปิดไปแล้ว > 0) { ตรวจสอบปิดคำสั่งซื้อขาย(เส้นค่าเฉลี่ยเคลื่อนเร็ว); } //ถ้าเป็นแทรนใหม่ ให้เปิดคำสั่งซื้อ/ขายใหม่ได้ if (StringCompare (เทรนปัจจุบัน, เทรนเก่า) != 0) { สถานะอนุญาตให้เปิดคำสั่ง = True; } else { สถานะอนุญาตให้เปิดคำสั่ง = False; } //ตรวจสอบสถานะให้เปิดคำสั่งซื้อขายในววันศูกร์ if ((FridayNotOpenOrder) && (DayOfWeek()==FRIDAY)) { สถานะอนุญาตให้เปิดคำสั่ง = False; ข้อความแสดงบนจอ += "\n\n**********วันศุกร์ =>กำหนดไม่ให้เปิดคำสั่งซื้อขาย***************"; Comment(ข้อความแสดงบนจอ); } //ตรวจสอบจำนวนคำสั่งซื้อ/ขายว่าครบหรือยัง if (จำนวนคำสั่งซื้อขายที่เปิดไปแล้ว < MaxTrade) { //เปิดคำสั่งซื้อขายเฉพาะเมื่อเกิดแท่งราคาแท่งแท่งใหม่ if ((!(Volume[0] > 1)) && สถานะอนุญาตให้เปิดคำสั่ง) { ตรวจสอบเปิดคำสั่งซื้อขาย(เส้นค่าเฉลี่ยเคลื่อนเร็ว, เส้นค่าเฉลี่ยเคลื่อนช้า); } } else { ข้อความแสดงบนจอ += "\n\n**********คำสั่งซื้อขายครบจำนวนแล้ว******************"; Comment(ข้อความแสดงบนจอ); } } else { ข้อความแสดงบนจอ += "\n\n**********ไม่ให้เปิดคำสั่งซื้อขาย***************"; Comment(ข้อความแสดงบนจอ); } ข้อความแสดงบนจอ = ""; } //+------------------------------------------------------------------+ |
บันทึกประจำวันที่
23
กรกฎาคม
พ.ศ.
2557 (2014)
เวลา
|
เหตุการณ์
|
||
| 06:00 น. | ตื่นนอน อ่านวารสารไมโครคอมพิวเตอร์ | ||
| 07:00 น. |
|
||
| 07:30 น. | ถอดแบตเตอร์รีดวงไฟ led ที่จะซ่อม | ||
| 08:00 น. | อาบน้ำ ทำบัญชีครัวเรือน ทำบันทึกประจำวันของวันก่อน | ||
| 08:30 น. | งานของกิจกรรมอาชีพ งานวิทยากร/อาสาสมัคร (14/2557):ไปเป็นวิทยากรสาธิตการทำบ่อปลา และการทำ EM ขยายที่โรงเรียนนิคม 2 | ||
| 16:30 น. | แวะร้าน ผอ. สมหมาย | ||
| 17:30 น. | พักผ่อน | ||
| 19:00 น. |
|
||
| 20:00 น. | งานของกิจกรรมอาชีพ งานการตลาดและการลงทุน (20/2557) : เชื่อมต่ออินเตอร์เน็ต ค้นข้อมูลเกี่ยวกับร้านค้าบนอินเตอร์เน็ต และจัดการร้านค้า หมอดิน YIC นาโน | ||
| 23:00 น. | เข้านอน |





