メタトレーダーを使った全自動のFX売買システムで儲けます。
目標は、何もせずとも勝手に資産が増えていく事!目指すぞ、億万長者!

MQL

概要

MetaQuotes Languageの略で、メタトレーダー上で動作するプログラム言語です(C言語に似ています)。
MetaEditor上でプログラム開発していきます。

いきなり

いきなり注文を出してみましょう。
MetaEditorの『File』-『New』-『Expert Advisor Wizard』にて『Expert Advisor』を選ぶと作られる雛型のstart()内を以下の様にします。
int start()
{
	//買い注文
	OrderSend(Symbol(), OP_BUY, 1, Ask, 3, Ask-(25*Point), Ask+(25*Point), "Buy", 0, 0, Blue);
	return(0);
}
このたった一行で、為替が動くたびに買い注文が増えていきます。
まずは第一歩踏み出せたというとこでしょうか。

ちなみに、このstart()は相場が動く度に呼ばれます(分足・時足等関係無く、変化すれば呼ばれます)。
※各足(分足・時足等)毎に関係するのは、Close[]等の参照値です(Close[0]が現在値、Close[1]が時足なら前の1時間での終値となる)。

このままでは、買いっぱなし(利食い・損切りは付けてますが…)なので、自分のポジションを確認して「あれば決済、なければ買う」というプログラムにしてみましょう。
int start()
{
   //変数の宣言
   int cnt, CurrentPosition;

   //ポジションチェック
   CurrentPosition=-1;
   for(cnt=0;cnt<OrdersTotal();cnt++) {
      OrderSelect(cnt,SELECT_BY_POS);
      if(OrderSymbol() == Symbol()) {
         CurrentPosition=cnt;
      }
   }

   //ポジション無し
   if(CurrentPosition == -1) {
      //買い注文  
      OrderSend(Symbol(), OP_BUY, 1, Ask, 3, Ask-(25*Point), Ask+(25*Point), "Buy", 0, 0, Blue);
   } else {
      //ポジションの選択
      OrderSelect(CurrentPosition,SELECT_BY_POS);
      
      //通貨チェック
      if(OrderSymbol() == Symbol())
      {  
         if(OrderType()==OP_BUY)    
         {
            OrderClose(OrderTicket(),OrderLots(),Bid,3,Green);
         } else if(OrderType()==OP_SELL)
         {
            OrderClose(OrderTicket(),OrderLots(),Ask,3,Green);
         }
      }
   }
   return(0);
}
OrdersTotal()分チェックして、ポジションあればひとつづつ決済していきます。
ポジション無くなれば、買いですね。
為替が動くたびに、買って売ってを繰り返すという動作をします。
ちなみに、これでバックテストを行うと…。

FirstTestChart

見る見る資産が減っていきます(スプレッド代分減ってるんでしょうね)。

自分でプログラムを組まなくて良い様に、『MQLオーダーメイド』というコーナーを立ち上げてみました(コチラ)。
興味ある戦略を指示して、オリジナルのmq4ファイルを作ってみましょう。