システムトレード実装入門

システムの実装ってハードル高いですよね。
mt4は環境構築いらないので、敷居が低いんですが、
全くの初心者からするとまだ高いみたいなので、ここで簡単に実装してみようと思います。

システムトレード実装

環境構築は特にありません。
以下の手順に従って進めば、簡単に実装できます。

 

ではまず、mt4を立ち上げて、以下のマークをクリックしてeditorを起動して下さい。

 

これでeditorが立ち上がりますので、「new → 次へ」から新規でfileを作って下さい。

 

名前を適当に「bot」とかにしましょう。(なんでも良いです)

 

その後、いろいろ聞かれますが、とりあえず「次へ」で大丈夫です。
そうすると、以下のようになります。

 

とりあえずサンプルソース作ったので、コピペでokです
最初に表示れてたものは一旦全部白紙にして、以下のソースを貼り付けてみて下さい。

—————————————————————-

#property version "1.0"
#property strict

extern int MAGIC = 10000;        // マジックナンバー
extern int MA_FAST_PERIOD = 20;  // 短期移動平均
extern int MA_SLOW_PERIOD = 50;  // 長期移動平均
extern double LOTS = 1.0;        // 取引ロット数
extern int SLIP = 20;            // 許容スリッページ数
extern string COMMENT = "";      // コメント

int Ticket_L = 0;

int start() {   
    double ma_fast = iMA(NULL, 0, MA_FAST_PERIOD, 0, 0, 0, 0);
    double ma_slow = iMA(NULL, 0, MA_SLOW_PERIOD, 0, 0, 0, 0);
    
    if (ma_fast >= ma_slow) {
        if (Ticket_L == 0) {
            Ticket_L = OrderSend(Symbol(), OP_BUY, LOTS, Ask, SLIP, 0, 0, COMMENT, MAGIC, 0, Red);
        }
    } else {
        for (int i=0; i<=OrdersTotal(); i++) {
            bool selected = OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
            if (OrderMagicNumber() != MAGIC) {
                continue;
            }
            bool closed = OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0);
            if (closed) {
                Ticket_L = 0;
            }
        }
    }    
    return 0;
}

—————————————————————-
コピーできたら、「compile」を押して下さい。

 

そうすると、「bot」ができます。

これがEAを作るまでの過程です。

 

ちなみにファイルは「ファイル → データフォルダを開く → MQL4 → Expert」のbot.ex4です。bot.mq4がコードです。

あとは、いつも通り、自動売買の設定を行うだけで自動でトレードを始めますが、
バックテストすると、マイナスである事に加えて、
動くというだけの確認実装なので、例外処理等がはいっていません。
(例えばポジションを保有中にmt4を再起動すると、またポジションをとります)
間違ってもこれで自動売買とかやらないで下さい笑

ここまで読んで頂きありがとうございました。
次回はプログラムの解説です。

システムトレード実装入門 プログラム解説編