Tokyo:

Meta Trader
MQL 5 community

Technical Analysis Library

Meta Traderが使える有名な証券会社:

フォレックス・ドットコムMT4
↑ まずは Meta Trader口座を開設。 今なら5650円キャッシュバック中(初回入金10万+取引)。 特徴:1000通貨取引。 スプレッド:USD/JPY:1-3 pips, EURO/JPY:2-4pips


↑ まずは Robot FX の口座を開設 (初回入金5万円以上)。
スプレッド: USD/JPY 1〜3, EUR/JPY 2〜4, EUR/USD 1〜3など



↑ CFDもアリ



↑ EA Generatorで簡単に独自のプログラムが作成可能



↑ Metatraderで作成したプログラムをJavaに変換して、使用できるようになっています。





Finance

お薦めBLOG:

しろふくろうFXテクニカル分析研究所

しろふくろうのメタトレーダーでFXシステムトレード

Toyolab FX - 手ぶらで為替取引

基礎から学ぶシステムトレード(豊嶋久道さん)

とあるMetaTraderの備忘秘録

『Expert adviser』は、おもしろい!

【FX】システムトレードするならMetaTraderでしょ

とあるMetaTraderの備忘秘録

FXデイトレード投資法


MT4(MetaTrader4)でデイトレード

お薦めHP:

MT4インディケーター

MT4 インジケーターと自動売買EA

MT4インジケーター

MT4(MetaTrader4) インディケータ置き場

MetaTrader4 Indicators Collection

FX自動売買研究所

為替・FX大好き主婦の楽ちんシステムトレード(^▽^)

ZuluTrade

FX外為カフェ

MetaSys-Seeker.net

MetaTraderLibrary

【SOURCE FILE】iUniMA.mq5

【解説】【MQL5 community】 The Universal Moving Average : Custom Moving Averageと同様。

【シグナル】
移動平均のラインを上抜けしたら、「買い」、下抜けしたら「売り」。 上昇基調になりそうな(移動平均が右肩上がり)場合のトレンドを把握することができる。


Webに公開されているiUniMA.mq5はコンパイルエラーが出たので、 return(0); を追加。
//+------------------------------------------------------------------+
//|                                                       iUniMA.mq5 |
//|                                        MetaQuotes Software Corp. |
//|                                                 http://dmffx.com |
//+------------------------------------------------------------------+

/*
   The Universal Moving Average, 
   it allows to select any type of moving average, included in the MetaTrader 5 client terminal.
   
   Simple,
   Exponential,
   Smoothed,
   Linear Weighted,
   AMA (Adaptive Moving Average),
   DEMA (Double Exponential Moving Average),
   FRAMA (Fractal Adaptive Moving Average),
   TEMA (Triple Exponential Moving Average),
   VIDYA (Variable Index DYnamic Average).  
   
   Main parameters:
   
   MAMethod - MA type, 
   MAPeriod - period,
   MAPrice - applied price.
   
   Additional parameters:
   
   AMAFast - period of fast EMA for AMA,
   AMASlow - period of slow EMA for AMA,
   CMOPeriod - period of CMO for VIDYA. 

   The name of MA, its period, applied price and other parameters are shown in the popup help.
*/

#property copyright "Integer"
#property link      "http://dmffx.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot MA
#property indicator_label1  "MA"
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1

//--- input parameters

enum MAMethods{
   Simple=MODE_SMA,
   Exponential=MODE_EMA,
   Smoothed=MODE_SMMA,
   LinearWeighted=MODE_LWMA,
   AMA=IND_AMA,
   DEMA=IND_DEMA,
   FRAMA=IND_FRAMA,
   TEMA=IND_TEMA,
   VIDYA=IND_VIDYA
};

input MAMethods            MAMethod   =   Simple;
input int                  MAPeriod   =   14;
input ENUM_APPLIED_PRICE   MAPrice    =   PRICE_CLOSE;
input int                  AMAFast    =   2;
input int                  AMASlow    =   30; 
input int                  CMOPeriod  =   9;
 
int Handle;

//--- indicator buffers
double         MABuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,MABuffer,INDICATOR_DATA);

   switch(MAMethod){
      case Simple:
         Handle=iMA(NULL,PERIOD_CURRENT,MAPeriod,0,MODE_SMA,MAPrice);
      break;
      case Exponential:
         Handle=iMA(NULL,PERIOD_CURRENT,MAPeriod,0,MODE_EMA,MAPrice);      
      break;
      case Smoothed:
         Handle=iMA(NULL,PERIOD_CURRENT,MAPeriod,0,MODE_SMMA,MAPrice);      
      break;
      case LinearWeighted:
         Handle=iMA(NULL,PERIOD_CURRENT,MAPeriod,0,MODE_LWMA,MAPrice);      
      break;
      case AMA:
         Handle=iAMA(NULL,PERIOD_CURRENT,MAPeriod,AMAFast,AMASlow,0,MAPrice);
      break;   
      case DEMA:
         Handle=iDEMA(NULL,PERIOD_CURRENT,MAPeriod,0,MAPrice);      
      break;
      case FRAMA:
         Handle=iFrAMA(NULL,PERIOD_CURRENT,MAPeriod,0,MAPrice);      
      break;         
      case TEMA:
         Handle=iTEMA(NULL,PERIOD_CURRENT,MAPeriod,0,MAPrice);      
      break;   
      case VIDYA:
         Handle=iVIDyA(NULL,PERIOD_CURRENT,CMOPeriod,MAPeriod,0,MAPrice);      
      break;                 
   }

   string Label;

   switch(MAMethod){
      case Simple:
         Label="SMA("+ITS(MAPeriod)+","+fNamePriceShort(MAPrice)+")";
      break;
      case Exponential:
         Label="EMA("+ITS(MAPeriod)+","+fNamePriceShort(MAPrice)+")";
      break;
      case Smoothed:
         Label="SMMA("+ITS(MAPeriod)+","+fNamePriceShort(MAPrice)+")";
      break;
      case LinearWeighted:
         Label="LWMA("+ITS(MAPeriod)+","+fNamePriceShort(MAPrice)+")";
      break;
      case AMA:
         Label="AMA("+ITS(MAPeriod)+","+ITS(AMAFast)+","+ITS(AMASlow)+","+fNamePriceShort(MAPrice)+")";
      break;   
      case DEMA:
         Label="DEMA("+ITS(MAPeriod)+","+fNamePriceShort(MAPrice)+")";
      break;
      case FRAMA:
         Label="FRAM("+ITS(MAPeriod)+","+fNamePriceShort(MAPrice)+")";
      break;         
      case TEMA:
         Label="TEMA("+ITS(MAPeriod)+","+fNamePriceShort(MAPrice)+")";
      break;   
      case VIDYA:
         Label="VIDYA("+ITS(MAPeriod)+","+ITS(CMOPeriod)+","+fNamePriceShort(MAPrice)+")";
      break;                 
   }

   PlotIndexSetString(0,PLOT_LABEL,Label);

//---
   return(0);
  }

string fNamePriceShort(ENUM_APPLIED_PRICE aPrice){
   switch(aPrice){
      case PRICE_CLOSE:
         return("C");
      case PRICE_HIGH:
         return("H");
      case PRICE_LOW:
         return("L");
      case PRICE_MEDIAN:
         return("M");
      case PRICE_OPEN:
         return("O");
      case PRICE_TYPICAL:
         return("T");
      case PRICE_WEIGHTED:
         return("W");      
   }
 return(0);
}  
  
string ITS(int aValue){
   return(IntegerToString(aValue));
}  
  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,
                 const int prev_calculated,
                 const datetime & time[],
                 const double & open[],
                 const double & high[],
                 const double & low[],
                 const double & close[],
                 const long & tick_volume[],
                 const long & volume[],
                 const int & spread[]
               ){
   static bool error=true;
   int start;
      if(prev_calculated==0){
         error=true;
      }
      if(error){
         start=0;
         error=false;
      }
      else{
         start=prev_calculated-1;
      }
      if(CopyBuffer(Handle,0,0,rates_total-start,MABuffer)==-1){
         error=true;
         return(rates_total);
      }
   return(rates_total);
}
//+------------------------------------------------------------------+


【表示結果】






Back to Meta Trader

Google

解説本:


【初級編】 基本的な事項からプログラムの仕方まで解説

【中級編】 独自のテクニカル分析をするためのプログラミングについての解説



【初級編】 基本的な事項から筆者のトレード手法も公開している

【初級編】 しろふくろうさんによるメタトレーダーの使い方が少し書かれている


【初級編】 基本的な事項からメタトレーダーのExpert Advisorを使って、自動売買システムの作り方が書かれている.


【初級編】 EAが4つついており、なおかつジェネレーターを使った自動売買プログラム(EA)の作り方を解説


【初級編】 FXの必勝法を説いた本。その中でメタトレーダー4の活用法も紹介


【中級編】 自動売買システムの構築に必要な、MQL言語の知識をこの1冊に集約しています。 サンプルコードも豊富に用意されており、サンプルコードで個々の機能を実際に確認しながら学習していくことができます。