簡単なEAを作ってみる

投稿者: | 2011年9月22日

今回は簡単は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でそれぞれ決済と損切り注文を出しています。

コンパイルしてエラーがなければデモ口座で実際に動かして見ましょう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です