今回は簡単はEAを実際に作成してみます。
簡単なと言っても一応売買するようなものを作ってみましょう。
今回作成するものはこんな感じです。
テクニカル分析をした結果、ある条件を満たせばbuyまたはsell注文を出す。
では早速作ってみます。
extern int MAGIC = 1000100;
extern int Slippage = 3;
extern double Lots = 0.1;
extern int TrailingStop = 10;
extern int Losscut = 10;
int start()
{
string sStatus;
if(Bars<100 || IsTradeAllowed()==false) return;
int buy_position = 0;
int sell_position = 0;
for(int i=0; i<OrdersTotal(); i++) {
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES) == false) break;
if(OrderMagicNumber() == MAGIC) {
if(OrderType() == OP_BUY) {
buy_position++;
}
if(OrderType() == OP_SELL) {
sell_position++;
}
}
}
if (buy_position==0) {
if (iRSI(NULL,0,14,PRICE_CLOSE,0)<20) {
int res_buy_order=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage,Ask-Losscut*Point,Ask+TrailingStop*Point,"Buy Order ",MAGIC,0,Green);
if (res_buy_order<0) {
Print("OrderSend failed, error no ",GetLastError());
}
return(0);
}
}
if (sell_position==0) {
if (iRSI(NULL,0,14,PRICE_CLOSE,0)>80) {
int res_sell_order=OrderSend(Symbol(),OP_SELL,Lots,Bid,Slippage,Bid+Losscut*Point,Bid-TrailingStop*Point,"Sell Order ",MAGIC,0,Red);
if (res_sell_order<0) {
Print("OrderSend failed, error no ",GetLastError());
}
return(0);
}
}
return(0);
}
簡単に解説すると、前半のfor文のところで現在のポジションをチェック。
中盤以降はそれぞれ
RSIが20以下でbuy
RSIが80以上でsell
最大ポジションはそれぞれ1つ。
一回の注文は0.1。
10pipsでそれぞれ決済と損切り注文を出しています。
コンパイルしてエラーがなければデモ口座で実際に動かして見ましょう。