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】iMAFan.mq5

【解説】【MQL5 community】 iMAFan : カラフルなMoving Average (移動平均) を使用したもの。6つの移動平均赤色, 黄色, 黄緑色, 水色, 青色 紫色(紫が最も長期間の移動平均で、赤が最も短期間の移動平均を表している。)

 移動平均のラインを上抜けしたら、「買い」、下抜けしたら「売り」。 特にこれの場合はどの色のラインとクロスしたのかで、統計的な見地からの買い時、売り時が分かる。


//+------------------------------------------------------------------+
//|                                                       iMAFan.mq5 |
//|                                                          Integer |
//|                                                 http://dmffx.com |
//+------------------------------------------------------------------+
#property copyright "Integer"
#property link      "http://dmffx.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 512
#property indicator_plots   512
//--- plot Label1
#property indicator_label1  "Label1"
#property indicator_type1   DRAW_LINE
#property indicator_color1  Red
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters

/*
   A colorful fan of moving averages.  
   Parameters:
   MAMethod - フタ method;
   MAPrice - フタ applied price;
   PeriodFrom - フタ minimal period;
   PeriodStep - フタ period step;
   Count - number of フタ (max value is 512);
   Colors - number of colors (max value 6);
   Color_1, Color_2, Color_3, Color_4, Color_5, Color_6 - colors.
  
*/

input ENUM_MA_METHOD       MAMethod       =  1;
input ENUM_APPLIED_PRICE   MAPrice        =  PRICE_CLOSE;
input int                  PeriodFrom     =  10;
input int                  PeriodStep     =  3;
input int                  Count          =  33;
input int                  Colors         =  6;
input color                Color_1        =  Red;
input color                Color_2        =  Yellow;
input color                Color_3        =  Lime;
input color                Color_4        =  Aqua;
input color                Color_5        =  Blue;
input color                Color_6        =  Magenta;

struct BUF
  {
   double            Buf[];
  };

int Handle[];
BUF B[];
color C[];
int _Count;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {

   _Count=(int)MathMin(Count,512);

   ArrayResize(B,_Count);
   ArrayResize(Handle,_Count);
   ArrayResize(C,6);
   C[0]=Color_1;
   C[1]=Color_2;
   C[2]=Color_3;
   C[3]=Color_4;
   C[4]=Color_5;
   C[5]=Color_6;
   int _Colors=Colors;
   if(_Colors>6)_Colors=6;
   ArrayResize(C,_Colors);
   for(int i=0;i<_Colors/2;i++)
     {
      color tmp=C[i];
      C[i]=C[_Colors-1-i];
      C[_Colors-1-i]=tmp;
     }

//==== COLORS ====
   int CI[][3];
   ArrayResize(CI,_Count);
   for(int i=0;i<_Count;i++)
     {
      CI[i][0]=(_Colors-1)*(i)/(_Count);
     }
   int z=0;
   for(int i=0;i<_Count-1;i++)
     {
      if(CI[i][0]!=CI[i+1][0])
        {
         for(int j=z;j<=i;j++)
           {
            CI[j][1]=j-z;
            CI[j][2]=i-z+1;
           }
         z=i+1;
        }
     }
   for(int j=z;j<_Count;j++)
     {
      CI[j][1]=j-z;
      CI[j][2]=_Count-z;
     }
//==== /COLORS ====

   for(int i=0;i<512;i++)
     {
      PlotIndexSetInteger(i,PLOT_DRAW_TYPE,DRAW_NONE);
      PlotIndexSetInteger(i,PLOT_LINE_COLOR,CLR_NONE);
     }

   for(int i=0;i<_Count;i++)
     {
      SetIndexBuffer(i,B[i].Buf,INDICATOR_DATA);
      int map=PeriodFrom+(_Count-1-i)*PeriodStep;
      PlotIndexSetString(i,PLOT_LABEL,"MA("+IntegerToString(map)+")");
      PlotIndexSetInteger(i,PLOT_DRAW_TYPE,DRAW_LINE);
      PlotIndexSetInteger(i,PLOT_LINE_STYLE,STYLE_SOLID);
      PlotIndexSetInteger(i,PLOT_COLOR_INDEXES,1);
      PlotIndexSetInteger(i,PLOT_LINE_COLOR,GetColor(1.0*CI[i][1]/CI[i][2],C[CI[i][0]],C[CI[i][0]+1]));
      PlotIndexSetInteger(i,PLOT_LINE_WIDTH,1);
      PlotIndexSetDouble(i,PLOT_EMPTY_VALUE,0);
      PlotIndexSetInteger(i,PLOT_DRAW_BEGIN,map);
      Handle[i]=iMA(NULL,PERIOD_CURRENT,map,0,MAMethod,MAPrice);
     }

//---
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   for(int i=0;i<_Count;i++)
     {
      ArrayInitialize(B[i].Buf,EMPTY_VALUE);
     }
   for(int i=0;i<_Count;i++)
     {
      PlotIndexSetInteger(i,PLOT_LINE_COLOR,CLR_NONE);
      PlotIndexSetInteger(i,PLOT_DRAW_TYPE,DRAW_NONE);
      IndicatorRelease(Handle[i]);
     }
   ArrayFree(B);
  }
//+------------------------------------------------------------------+
//| 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;
     }

   for(int i=0;i<Count;i++)
     {
      if(CopyBuffer(Handle[i],0,0,rates_total-start,B[i].Buf)==-1)
        {
         error=true;
         Alert("er");
         return(0);
        }
     }
   return(rates_total);
  }
//+------------------------------------------------------------------+

color GetColor(double aK,int Col1,double Col2)
  {
   int R1,G1,B1,R2,G2,B2;
   fGetRGB(R1,G1,B1,Col1);
   fGetRGB(R2,G2,B2,Col2);
   return(fRGB(R1+aK*(R2-R1),G1+aK*(G2-G1),B1+aK*(B2-B1)));
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void fGetRGB(int  &aR,int  &aG,int  &aB,int aCol)
  {
   aB=aCol/65536;
   aCol-=aB*65536;
   aG=aCol/256;
   aCol-=aG*256;
   aR=aCol;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
color fRGB(int aR,int aG,int aB)
  {
   return(aR+256*aG+65536*aB);
  }
//+------------------------------------------------------------------+


【表示結果】







Back to Meta Trader

Google

解説本:


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

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



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

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


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


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


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


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