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)でデイトレード

Duck-butt tiger's FX trading soliloquy

お薦めHP:

MT4インディケーター

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

MT4インジケーター

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

MetaTrader4 Indicators Collection

FX自動売買研究所

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

ZuluTrade

FX外為カフェ

MetaSys-Seeker.net

MetaTraderLibrary

【SOURCE FILE】DinapoliTargets.mq5

【解説】【MQL5 community】 DinapoliTargets : これはZigZagの機能に、局所的な高値と安値を線で引き、一種のサポートラインとレジスタンスと見る。

ZigZagでは 直近高値から5%(デフォルト)以上の反落があった場合、 ここでジグザグの向きが反転する。 この反転をもって「買い・売り」シグナルとします。


//+------------------------------------------------------------------+
//|                                              DinapoliTargets.mq5 |
//+------------------------------------------------------------------+
#property copyright "mishanya"
#property link      "mishanya_fx@yahoo.com"
#property version   "1.0"
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1
#property indicator_label1  "DinapoliTargets"
#property indicator_type1   DRAW_SECTION
#property indicator_color1  Blue
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- input parameters
input int      barn=300;
input int      Length=6;
//---- buffers
double ExtMapBuffer[];
//double ExtMapBuffer2[];
string Name[5]={"Start Line","Stop line","Target1 Line","Target2 Line","Target3 Line"};
color Color[5]={Honeydew,Red,Green,Yellow,DarkOrchid};
double Price[5];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,ExtMapBuffer,INDICATOR_DATA);
   PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0.0);
   PlotIndexSetString(0,PLOT_LABEL,"DinapoliTargets("+(string)Length+")");
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function                       |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   for(int i=0;i<5;i++) ObjectDelete(0,Name[i]);
   return;
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   if(rates_total<barn) return(0);
   if(prev_calculated==0) ArrayInitialize(ExtMapBuffer,0.0);
   datetime Time0;
   int shift,Swing,Swing_n,uzl,i,zu,zd;
   double PointA,PointB,PointC;
   double LL,HH,BH,BL,NH,NL,Spread;
   double Uzel[10000];
   //string text;
   // loop from first bar to current bar (with shift=0) 
   Swing_n=0;Swing=0;uzl=0;
   i=rates_total-barn-1;
   PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,i);
   BH=High[i];BL=Low[i];zu=i;zd=i;
//----
   for(shift=i;shift<rates_total;shift++)
      {
      LL=10000000;HH=-100000000;
      for(i=shift-Length;i<shift;i++)
         {
         if (Low[i]< LL) {LL=Low[i];}
         if (High[i]>HH) {HH=High[i];}
         }
      if(Low[shift]<LL && High[shift]>HH)
         {
         Swing=2;
         if(Swing_n==1) {zu=shift-1;}
         if(Swing_n==-1) {zd=shift-1;}
         }
      else
         {
         if(Low[shift]<LL) {Swing=-1;}
         if(High[shift]>HH) {Swing=1;}
         }
      if(Swing!=Swing_n && Swing_n!=0)
         {
         if(Swing==2)
            {
            Swing=-Swing_n;BH=High[shift];BL=Low[shift];
            }
         uzl++;
         if(Swing==1)
            {
            Uzel[uzl]=BL;
            ExtMapBuffer[zd]=BL;
            }
         if(Swing==-1)
            {
            Uzel[uzl]=BH;
            ExtMapBuffer[zu]=BH;
            }
         BH=High[shift];
         BL=Low[shift];
         }
      if(Swing==1)
         {
         if(High[shift]>=BH) {BH=High[shift];zu=shift;}
         }
      if(Swing==-1)
         {
         if (Low[shift]<=BL) {BL=Low[shift]; zd=shift;}
         }
      Swing_n=Swing;
      }
//----
   PointA=Uzel[uzl-2];
   PointB=Uzel[uzl-1];
   PointC=Uzel[uzl];
   Comment(PointA," ",PointB," ",PointC);
//----
   Price[2]=NormalizeDouble((PointB-PointA)*0.618+PointC,_Digits);//Target1
   Price[3]=PointB-PointA+PointC;//Target2
   Price[4]=NormalizeDouble((PointB-PointA)*1.618+PointC,_Digits);//Target3
   //Fantnsy=NormalizeDouble((PointB-PointA)*2.618+PointC,_Digits);
   //CrazyDream=NormalizeDouble((PointB-PointA)*4.618+PointC,_Digits);
   Spread=SymbolInfoInteger(_Symbol,SYMBOL_SPREAD)*_Point;
   if(PointB<PointC)
     {
      Price[0]=NormalizeDouble((PointB-PointA)*0.318+PointC,_Digits)-Spread;//Start
      Price[1]=PointC+2*Spread;//Stop
     }
   if(PointB>PointC)
     {
      Price[0]=NormalizeDouble((PointB-PointA)*0.318+PointC,_Digits)+Spread;//Start
      Price[1]=PointC-2*Spread;//Stop
     }
//+----
   Time0=Time[rates_total-1];
   for(i=0;i<5;i++)
      {
      if(ObjectFind(0,Name[i])!=0)
        {
         ObjectCreate(0,Name[i],OBJ_HLINE,0,Time0,Price[i]);
         ObjectSetInteger(0,Name[i],OBJPROP_COLOR,Color[i]);
         ObjectSetInteger(0,Name[i],OBJPROP_WIDTH,1);
         ObjectSetInteger(0,Name[i],OBJPROP_STYLE,STYLE_DOT);
        }
      else ObjectMove(0,Name[i],0,Time0,Price[i]);
      }
   ChartRedraw();
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+


【表示結果】







Back to Meta Trader

Google

解説本:


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

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



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

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


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


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


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


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