ดาวน์โหลดแฟ้ม EA
|
|
ปรับปรุงครั้งล่าสุดเมื่อ
:๑๖ มกราคม พ.ศ. ๒๕๕๙ เวลา ๑๒:๐๐ น. Unstable
|
|
ไม่รับประกันความเสียหายอันเนื่องมาจากการทำงานของ EA ชุดนี้
|
แฟ้ม
:
My Fast Slow Moving Average
Thai EA.mq4
//+------------------------------------------------------------------+
//| Fast Slow Moing Average Thai EA.mq4 | //| Copyright 2016, ธาวินทร์ ลีลาคุณารักษ์ | //| https://yesterday-in-my-life.blogsport.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2016, ธาวินทร์ ลีลาคุณารักษ์" #property link "https://yesterday-in-my-life.blogsport.com" #property version "1.00" #property description "อนุญาตให้ปรับปรุงแก้ไข, คัดลอก, จำหน่าย, จ่าย, แจก, อธิบายรายละเอียด หรือเผยแพร่" #property description "ได้อย่างถูกต้องตามกฏหมาย โดยไม่ต้องขออนุญาตจากผู้พัฒนา" #property description "และไม่จำเป็นต้องแสดงรายละเอียดผู้พัฒนา" string ปรับปรุงครั้งล่าสุด = "๑๖ มกราคม พ.ศ. ๒๕๕๙ เวลา ๑๒.๐๐ น."; //--- input parameters input double MinimumLotSize =0.01; //ขนาดล็อตต่ำสุดที่ต้องการ input double MaximumRisk =0.01; //เปอร์เซ็นต์กำไรที่ต้องการ input int MaxTrade =3; //จำนวนคำสั่งซื้อ/ขายสูงสุด input double TakeProfit =500; //จำนวน pip ที่ต้องการปิด order เมื่อมีกำไร input double StopLoss =0; //จำนวน pip ที่ต้องการปิด order เมื่อขาดทุน input bool CalculateNewStopLoss =True; //ให้โปรแกรมคำนวน Stop Loss ใหม่ input int TrailingStop =10; //จำนวน pip ที่จ้องการปิด order เมื่อราคากลับทาง input bool ProfitPositiveCheck =True; //ต้องการปิด order เฉพาะที่มีกำไรหรือไม่ input int FastMovingAverage =28; //เส้น MA จำนวนวันน้อยหรือเดินเร็ว input int SlowMovingAverage =180; //เส้น MA จำนวนวันมากหรือเดินช้า input bool FridayNotOpenOrder =False; //ไม่เปิดคำสั่งซื้อขายในวันศุกร์ input bool FridayClosePositiveOrder =True; //ปิดคำสั่งซื้อขายที่ได้กำไรในวันศุกร์ /*+------------------------------------------------------------------+ ตัวแปรรวม global variabel +------------------------------------------------------------------+*/ string ชื่อEA = "MyFastSlowMAThaiEA"; //สำหรับใสใน Comment ตอนเปิดคำสั่งซื้อขาย int เลขประจำEA = 122558; //เลข Magic Number ประจำ EA string เทรนเก่า = ""; //เก็บชื่อรูปแบบของเทรนที่ผ่านมา string ข้อความแสดงบนจอ; //ใช้เก็บข้อความสำหรับแสดงสถานะการทำงานของ EA บนจอภาพ /*+------------------------------------------------------------------+ ฟังก์ชัน หาจำนวนตัดขาดทุนที่เหมาะสม() ทำหน้าที่หาจำนวน pip สำหรับการตัดขาดทุน หรือ Stop Loss ใหม่ +------------------------------------------------------------------+*/ int หาจำนวนตัดขาดทุนที่เหมาะสม(double เส้นค่าเฉลี่ยเคลื่อนช้า) { int จำนวนตัดขาดทุนที่คำนวณได้ = StopLoss; int ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า; if (CalculateNewStopLoss) { ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า = (Close[0] - เส้นค่าเฉลี่ยเคลื่อนช้า) / Point; //กรณีได้ค่าติดลบ ปรับให้เป็น บวก ก่อน if (ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า < 0) { ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า = -(ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า); } //ใช้เส้นค่าเฉลี่ยเคลื่อนช้าเป็นแนวต้นหรือ Stop Loss แต่ต้องไม่น้อยกว่า 100 จำนวนตัดขาดทุนที่คำนวณได้ = ((ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า < 100) ? 100 : ระยะห่างของราคากับเส้นค่าเฉลี่ยเคลื่อนช้า); } return(จำนวนตัดขาดทุนที่คำนวณได้); } /*+------------------------------------------------------------------+ ฟังก์ชัน หาจำนวนล็อตที่เหมาะสม() ทำหน้าที่หาจำนวนล็อตที่เหมาะสมต่อกันเปิด 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(ขนาดล็อตที่คำนวณได้); } /*+------------------------------------------------------------------+ ฟังก์ชัน ตรวจสอบเปิดคำสั่งซื้อขาย(); ทำหน้าที่ตรวจสอบเงื่อนไข เพื่อเปิดคำสั่งซื้อขาย +------------------------------------------------------------------+*/ 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; } } /*+------------------------------------------------------------------+ ฟังก์ชัน ปิดคำสั่งซื้อ_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() ทำหน้าที่ปิดคำสั่งซื้อ (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; } } } } เทรนเก่า = "ขาลง"; } /*+------------------------------------------------------------------+ ฟังก์ชัน ตรวจสอบเปิดคำสั่งซื้อขาย(); ทำหน้าที่ตรวจสอบเงื่อนไข เพื่อเปิดคำสั่งซื้อขาย +------------------------------------------------------------------+*/ 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(เส้นค่าเฉลี่ยเคลื่อนเร็ว); } } } } } } //+------------------------------------------------------------------+ //| Expert OnDeinit function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //ลบข้อความที่ค้างบนจอออก Comment(""); } /*+------------------------------------------------------------------+ ฟังก์ชัน จำนวนคำสั่งซื้อขายที่เปิดค้าอยู่() ทำหน้าที่นับจำนวนคำสั่งซื้อขายที่เปิดโดย EA ชุดนี้ที่ยังเปิดค้างอยู่ +------------------------------------------------------------------+*/ int จำนวนคำสั่งซื้อขายที่เปิดค้างอยู่() { int ตัวนับจำนวนรอบการทำงานของการวนซ้ำ = 0; int จำนวนคำสั่งซื้อขายทั้งหมด = OrdersTotal(); int จำนวนคำสั่งซื้อขายที่เปิดโดยEAชุดนี้ = 0; for (ตัวนับจำนวนรอบการทำงานของการวนซ้ำ = 0; ตัวนับจำนวนรอบการทำงานของการวนซ้ำ < จำนวนคำสั่งซื้อขายทั้งหมด; ตัวนับจำนวนรอบการทำงานของการวนซ้ำ++) { //เลือกนับเฉพาะ Order ที่เปิดด้วย MyFastSlowMAThaiEA if(!OrderSelect(ตัวนับจำนวนรอบการทำงานของการวนซ้ำ, SELECT_BY_POS, MODE_TRADES)) continue; if ((OrderComment() == ชื่อEA)&& (OrderMagicNumber() == เลขประจำEA)) { จำนวนคำสั่งซื้อขายที่เปิดโดยEAชุดนี้++; } } return(จำนวนคำสั่งซื้อขายที่เปิดโดย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(ข้อความแสดงบนจอ); } ข้อความแสดงบนจอ = ""; } //+------------------------------------------------------------------+ |

บันทึกประจำวันที่
21
กรกฎาคม
พ.ศ.
2557 (2014)
Note
|
อาจารย์สมศักดิ์
เพชรปานกัน และอาจารย์ประโยชน์
จาก วษท.
สุพรรณบุรีมาที่บ้าน
|
||
เวลา
|
เหตุการณ์
|
||
03:00 น. | ตื่นนอน | ||
03:15 น. | ทำบัญชีครัวเรือน | ||
03:30 น. |
งาของกิจกรรมอาชีพ
งานอินเตอร์เน็ต (18/2557)
: เชื่อมต่ออินเตอร์เน็ต
โพสต์บทความเรื่องใหม่
|
||
04:45 น. | พักผ่อน เนื่องจาก AIS ตัดสัญญาณอินเตอร์เน็ต แล้วต่อไม่ติด | ||
06:00 น. | ดื่มกาแฟ อ่านวารสารไมโครคอมพิวเตอร์ | ||
07:00 น. | กวาดพื้นใต้ถุนบ้าน | ||
07:45 น. |
|
||
08:15 น. | งานของกิจกรรมอาชีพ กสิกรรมธรรมชาติ บ้านแม่ทำ สีทา (3/2557) : ตัดหญ้าเตรียมพื้นที่ปลูกข้าวโพดข้าวเหนียว | ||
11:45 น. | อาบน้ำ | ||
12:00 น. |
|
||
12:30 น. |
งานของกิจกรรมอาชีพ
กสิกรรมธรรมชาติ บ้านแม่ทำ
สีทา (3/2557) :
นำน้ำจุลินทรีย์อีเอ็มที่ขยายเชื้อราดบ่อปลา
|
||
13:00 น. | ทำจุลินทรีย์อีเอ็มขยายเชื้อถังที่ 3 และเริ่มใช้จุลินทรีย์อีเอ็มที่ขยายเชื้อถังที่ 1 | ||
13:30 น. | ทำบันทึกประจำวันของวันก่อน | ||
13:45 น. |
งานของกิจกรรมอาชีพ
งานอินเตอร์เน็ต (18/2557)
: ทำแฟ้มโครงร่างต้นฉบับบทความเรื่องใหม่
และศึกษาข้อมูลเกี่ยวกับ
Affiliate Program เพื่อเติม
|
||
14:15 น. | ทำบัญชีครัวเรือน | ||
14:30 น. |
งานของกิจกรรมอาชีพ
กสิกรรมธรรมชาคิ บ้านแม่ทำ
สีทา (3/2557) :
ร่อนปุ๋ยหมักสำหรับทำดินเพาะชำต้นไม้
|
||
15:00 น. |
Note:
อาจารย์สมศักดิ์ เพชรปานกัน
และอาจารย์ประโยชน์จากวิทยาลัยเกษตร
และเทคโนโลยี
สุพรรณบุรีมาที่บ้านตรวจดูสภาพที่ต้องปรับปรุงเพิ่มสำหรับการเข้าร่วม
โครงการชีววิถีเพื่อการพัฒนาอย่างยั่งยืนปีที่
2
|
||
16:00 น. | งานของกิจกรรมอาชีพ งานการตลาดและการลงทุน (20/2557) : ไปบ้านพี่ท๋ายที่บ้านกกเชียง และแวเอาใบเสนอราคาระบบโซลาร์เซลล์บ้านพี่ไพศาล | ||
18:00 น. |
|
||
20:00 น. | เข้านอน |