ผมกำลังสร้างระบบ 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); วนไปเรื่อยๆ
}