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で簡単に独自のプログラムが作成可能





Finance

お薦めBLOG:

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

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

Toyolab FX - 手ぶらで為替取引

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

とあるMetaTraderの備忘秘録

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

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

とあるMetaTraderの備忘秘録

FXデイトレード投資法

お薦めHP:

MT4インディケーター

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

MT4インジケーター

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

MetaTrader4 Indicators Collection

FX自動売買研究所

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

ZuluTrade

FX外為カフェ

MetaSys-Seeker.net

MetaTraderLibrary

【SOURCE FILE】imovment.mq5

【解説】【MQL5 community】 imovment : 価格のトレンドと変動により異なる色をロウソク足につける指標。

 UPトレンドのときは、青系統の色、 また DOWNトレンドのときは、赤系統の色 となる。

 最大値, 最小値からの価格の変動が Movement Parameter(当初は70pips)分動くと、トレンドが変わる。 Movemenet Parameterよりも小さい場合には, 連続的に色が変化していく.


//+------------------------------------------------------------------+
//|                                                     iMovment.mq5 |
//|                                              Copyright dmffx.com |
//|                                                 http://dmffx.com |
//+------------------------------------------------------------------+
#property copyright "dmffx.com"
#property link      "http://dmffx.com"
#property version   "1.00"
#property indicator_chart_window
#property indicator_buffers 8
#property indicator_plots   1

#property indicator_label1  "Open;High;Low;Close"
#property indicator_type1   DRAW_COLOR_CANDLES
#property indicator_color1  CLR_NONE

// Price movement in points, considered as necessary for the change of the trend
input int      Movment=70;
// Color of upward trend candles
input color    UpColor=Blue;
// Color of "retracement" candles for the upward trend
input color    UpBackColor=White;
// Color of downward trend candles
input color    DnColor=Red;
// Color of "retracement" candles for the downward trend;
input color    DnBackColor=White;
// To multiply the parameter Movment automatically by 10 for the 5- and 3-digit quotes.
input bool     Auto5Digits=true;

double         BOpen[];
double         BHigh[];
double         BLow[];
double         BClose[];
double         BColor[];
double         BTrend[];
double         BMin[];
double         BMax[];

int Grad=10;
color Colors[];
double Movment2;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {

   Movment2=Movment;

   if(Auto5Digits)
     {
      if(_Digits==5 || _Digits==3)
        {
         Movment2*=10;
        }
     }

   SetIndexBuffer(0,BOpen,INDICATOR_DATA);
   SetIndexBuffer(1,BHigh,INDICATOR_DATA);
   SetIndexBuffer(2,BLow,INDICATOR_DATA);
   SetIndexBuffer(3,BClose,INDICATOR_DATA);
   SetIndexBuffer(4,BColor,INDICATOR_COLOR_INDEX);

   SetIndexBuffer(5,BTrend,INDICATOR_CALCULATIONS);
   SetIndexBuffer(6,BMin,INDICATOR_CALCULATIONS);
   SetIndexBuffer(7,BMax,INDICATOR_CALCULATIONS);

   PlotIndexSetDouble(5,PLOT_EMPTY_VALUE,0);
   PlotIndexSetDouble(5,PLOT_EMPTY_VALUE,0);

   ArrayResize(Colors,Grad*2);
   color Col1=PlotIndexGetInteger(0,PLOT_LINE_COLOR,0);
   color Col2=PlotIndexGetInteger(0,PLOT_LINE_COLOR,1);

   PlotIndexSetInteger(0,PLOT_COLOR_INDEXES,Grad*2);

   for(int i=0;i<Grad;i++)
     {
      Colors[i]=GetColor(1.0*i/(Grad-1),DnColor,DnBackColor);
      Colors[i+Grad]=GetColor(1.0*i/(Grad-1),UpColor,UpBackColor);
      PlotIndexSetInteger(0,PLOT_LINE_COLOR,i,Colors[i]);
      PlotIndexSetInteger(0,PLOT_LINE_COLOR,i+Grad,Colors[i+Grad]);
     }

   return(0);
  }
//+------------------------------------------------------------------+
//| 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[])
  {

   int limit;
   if(prev_calculated>0)
     {
      limit=prev_calculated-1;
     }
   else
     {
      limit=1;
     }
   for(int i=limit;i<rates_total;i++)
     {
      BOpen[i]=open[i];
      BHigh[i]=high[i];
      BLow[i]=low[i];
      BClose[i]=close[i];
      BTrend[i]=BTrend[i-1];
      BMax[i]=BMax[i-1];
      BMin[i]=BMin[i-1];
      int ColInd;
      switch((int)BTrend[i])
        {
         case 1:
            if(close[i]>BMax[i])
              {
               BMax[i]=close[i];
              }
            ColInd=(int)MathCeil(10.0*(BMax[i]-close[i])/(_Point*Movment2));
            if(ColInd>=Grad)
              {
               BTrend[i]=-1;
               BMin[i]=close[i];
               ColInd=0;
              }
            else
              {
               ColInd+=Grad;
              }
            break;
         case 0:
            BOpen[i]=0;
            BHigh[i]=0;
            BLow[i]=0;
            BClose[i]=0;
            if(close[i]>BMax[i])
              {
               BMax[i]=close[i];
              }
            if(close[i]<BMin[i])
              {
               BMin[i]=close[i];
              }
            if(close[i]<=BMax[i]-_Point*Movment2)
              {
               BTrend[i]=-1;
               BMin[i]=close[i];
              }
            if(close[i]>=BMin[i]+_Point*Movment2)
              {
               BTrend[i]=1;
               BMax[i]=close[i];
              }
            break;
         case -1:
            if(close[i]<BMin[i])
              {
               BMin[i]=close[i];
              }
            ColInd=(int)MathCeil(10.0*(close[i]-BMin[i])/(_Point*Movment2));
            if(ColInd>=Grad)
              {
               BTrend[i]=1;
               BMax[i]=close[i];
               ColInd=Grad;
              }
            break;
        }
      BColor[i]=ColInd;
     }
   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);
  }
//+------------------------------------------------------------------+


【表示結果】



4時間足。比較的に長い足でないと表示されない。




Back to Meta Trader

Google

解説本:


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

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



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

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


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


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


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


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