Open Forex4you Account

Server รัน EA 1000 / ปี

สั่งชื้อคู่มือการโปรแรกม MQL4

Author Topic: ผมกำลังสร้างระบบ ea ระบบนี้ครับ admin ช่วยตวรจ  (Read 6823 times)

ruddy01

  • Newbie
  • *
  • Posts: 38


ผมกำลังสร้างระบบ ea ระบบนี้ครับ admin ช่วยตวรจโค๊ด ea ให้หน่อย

เป็นการใช้อินดี้ 2 ตัว คือ moving everrang กับ MACD ช่วยในการเข้าซื้อ

ระบบคือ

เข้า order Buy
ถ้าเส้น MA5>MA10>MA15>MA20
และ MACD มีค่ามากกว่า 0
และปิดออร์เด้อร์เมื่อ
เส้น MA5และ MACD มีค่าน้อยกว่า 0

ส่วน order Sell ก็ต้องกันข้ามกัน

..........................................



int start() เริ่มโปรแกรมและประกาศค่าตัวแปล

{

double MA5 =

iMA(NULL,0,5,0,MODE_SMMA,PRICE_CLOSE,0); ประกาศค่า MA5 คือ moving average ที่ พีเรียด 5



double MA10 =

iMA(NULL,0,10,0,MODE_SMMA,PRICE_CLOSE,0); ประกาศค่า MA10 คือ moving average ที่ พีเรียด 10




double MA15 =

iMA(NULL,0,15,0,MODE_SMMA,PRICE_CLOSE,0); ประกาศค่า MA15 คือ moving average ที่ พีเรียด 15




double MA20 =

iMA(NULL,0,20,0,MODE_SMMA,PRICE_CLOSE,0); ประกาศค่า MA20 คือ moving average ที่ พีเรียด 20




double val;

val=iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,0); ประกาศค่า val คือ MACDที่ค่า 12,26,9






if(OrdersTotal()==0) ถ้า order รวมเท่ากับ 0

{

if((MA5>MA10)&&(MA10>MA15)&&(MA15>MA20)) และถ้าค่า MA5>MA10>MA15>MA20

if(val>0) และถ้า MACD มีค่ามากกว่า 0


{
OrderSend(Symbol(),OP_BUY,Lot,Ask,3,0,0,"EX1",0,0,Green); ให้ทำการเปิด orderbuy
}



if((MA5
if(val<0) และถ้า MACD มีค่าน้อยกว่า 0

{

OrderSend(Symbol(),OP_sell,Lot,Bid,3,0,0,"EX1",0,0,Red); ให้ทำการเปิด ordersell


}

}






if(OrdersTotal()==1) ถ้า order รวมเท่ากับ 1
{


if((MA5>MA10)&&(MA10>MA15)&&(MA15>MA20)) และถ้าค่า MA5>MA10>MA15>MA20

if(val>0) และถ้าค่า macd มีค่ามากกว่า 0

{OrderSelect(0,SELECT_BY_POS,MODE_TRADES; ให้ทำการปิด order นั้น


if(OrderType()==OP_SELL ถ้าชนิดของ order ที่เปิดอยู่เป็น ordersell


OrderClose(OrderTicket(),OrderLots(),Ask,3,Red); ให้ปิด order นั้น ด้วยตัวอักษรสีแดง

}


if((MA5
if(val<0) และถ้าค่า MACD น้อยหว่า 0



{OrderSelect(0,SECT_BY_POS,MODE_TRADES); ให้ทำการปิด order นั้น


if(OrderType()==OP_BUY) ถ้าชนิดของ order ที่เปิดอยู่เป็น orderbuy


OrderClose(OrderTicket(),OrderLots(),Bid,3,Green); ให้ปิด order นั้น ด้วยตัวอักษรสีเขียว


}

}

return(0); วนไปเรื่อยๆ

}
« Last Edit: กันยายน 09, 2014, 02:02:45 pm by ruddy01 »

admin

  • Administrator
  • Hero Member
  • *****
  • Posts: 2386
ลองตรวจสอบวงเล็บของเงื่อนไขครับ  อย่างอื่นดูคร่าวๆๆไม่น่าจะมีอะไรผิดแล้วครับ