アフィリエイト広告を利用しています

広告

posted by fanblog

広告

posted by fanblog
2013年08月13日
第22回 ダウ平均チャート




MT4からデータを取得してダウ工業株30種平均先物チャートを表示します。

(1) MT4のカスタムインディケータ

ダウ平均用に下記のカスタムインディケータ UCSV を作ります。

//*******************************************************************
//
// UCSV
//
// CopyRight 2013 VBAFAN.
//
//*******************************************************************
#property indicator_chart_window
//---- input parameters
extern int OutputBars = 1000;

int timecounter=0;

//*******************************************************************
// init
//*******************************************************************
int init()
{
     quote_write();
     return(0);
}

//*******************************************************************
// start
//*******************************************************************
int start()
{
     if (Minute()==timecounter) return(0);
     timecounter=Minute();
     quote_write();
     return(0);
}

//*******************************************************************
// quote_write
//*******************************************************************
int quote_write()
{
     datetime dt;
     bool flag;
     string str;
     string symbol;

     Comment("start");

     symbol=Symbol();

     dt=outputCSV("USDJPY");
     flag=true;

     if (outputCSV(symbol)!=dt) flag=false;

     str=TimeToStr(dt,TIME_DATE)+" "+TimeToStr(dt,TIME_MINUTES)+" finished";
     if (flag) str=str+" All updated";

     Comment(str);
     Print(str);

     return(0);
}

//*******************************************************************
// outputCSV
//*******************************************************************
datetime outputCSV(string symbol)
{
     int handle;
     bool ret;
     int period;

     period=Period();

     handle=FileOpen(symbol+period+".csv",FILE_CSV|FILE_WRITE,',');
     if(handle<1) return(0);

     for(int i=0;i < OutputBars;i++)
     {
       ret = FileWrite(handle,
       TimeToStr(iTime(symbol,period,i),TIME_DATE),
       TimeToStr(iTime(symbol,period,i),TIME_MINUTES),
       iOpen(symbol,period,i),
       iHigh(symbol,period,i),
       iLow(symbol,period,i),
       iClose(symbol,period,i),
       iVolume(symbol,period,i) );

       if(ret<1) return(0);
     }

     FileClose(handle);

     return(iTime(symbol,period,0));
}



MT4からダウ平均のCSVファイル取得するインディケータです。上記のコードをコピーしてMT4フォルダ下の experts フォルダの indicators フォルダにファイル名 UCSV.mq4 で保存して下さい。

(2) カスタムインディケータのコンパイル

MT4のツールメニューのメタエディターをクリックするとメタエディターが起動します。
file メニューから UCSV.mq4 open して下さい。



メニューの compile ボタンをクリックして下さい。
0 error(s),0 warning(s) と表示されればOKです。

terminal ボタンを押すとメタエディターが終了します。
コンパイル後の実行可能ファイル名は UCSV.ex4 になります。ソースファイルと同じフォルダに作成されます。

(3) チャートへカスタムインディケータを貼り付ける

コンパイルが完了するとナビゲーターカスタムインディケータ UCSV が表示されます。
ダウ平均チャートにドラッグして貼り付けて下さい。   
ダウ平均チャートの足種類はデータを取得したい足種類にして下さい。
以上でMT4の準備作業は終了です。


(4) プロパティシートの設定




B1 セルの通貨ペアをダウ平均のシンボル名に設定して下さい。
ここではシンボル名を _US30 に設定していますがプロバイダによりシンボル名は異なりますので、ご自分のプロバイダのシンボル名に設定して下さい。
B2 セルの足種類を設定して下さい。ここで設定する足種類は(3)と一致していなくてはなりません

(5) ワークシートの追加



ダウ平均のシンボル名のワークシートを追加して下さい。
ここではシンボル名を _US30 に設定していますがプロバイダによりシンボル名は異なりますので、ご自分のプロバイダのシンボル名のワークシートを追加して下さい。

(6) MT4を起動します


(7) MT4の画面でCSVファイル取得完了のメッセージが表示されるのを待ちます



UCSV ... initialized  の次に
UCSV ... finished All updated が表示されればOKです。

MT4のカスタムインディケータをセットしたチャートにも finished All updated が表示されます。

(8) エクセルでデータ更新ボタンを押します


A3セルのデータ更新ボタンを押すとデータの取込を行い、ダウ平均チャートを表示します。


エクセルファイルです。

    ダウンロード


前へ   次へ

Posted by vbafan at 19:36 | この記事のURL
この記事のURL

×

この広告は30日以上新しい記事の更新がないブログに表示されております。