*

一目均衡表(関数版)

公開日: : 最終更新日:2015/02/20 マネー

MetaTrader4 に付属している一目均衡表のソースを見てみるとずいぶん複雑なので、関数を使って簡単に記述し直してみました。

書き換えたのはほとんど start 関数だけです(バッファ名も長いので変えましたけど)。

これをちょっと変えるとリアルタイム雲のフィルタが簡単に作れます。

プログラムソース

//+------------------------------------------------------------------+
//|              一目均衡表(関数版)          yasciiIchimoku01.mq4 |
//+------------------------------------------------------------------+

#property strict

#property indicator_chart_window
#property indicator_buffers 7
#property indicator_color1 Red          // Tenkan-sen
#property indicator_color2 Blue         // Kijun-sen
#property indicator_color3 SandyBrown   // Up Kumo
#property indicator_color4 Thistle      // Down Kumo
#property indicator_color5 Yellow         // Chikou Span
#property indicator_color6 SandyBrown   // Up Kumo bounding line
#property indicator_color7 Thistle      // Down Kumo bounding line
//--- input parameters
input int InpTenkan=9;   // Tenkan-sen
input int InpKijun=26;   // Kijun-sen
input int InpSenkou=52;  // Senkou Span B
//--- buffers
double tenkan[];
double kijun[];
double senkouA[];
double senkouB[];
double chikou[];
double senkouAL[];
double senkouBL[];
//---
int    ExtBegin;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit(void)
  {
   IndicatorDigits(Digits);
//---
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,tenkan);
   SetIndexDrawBegin(0,InpTenkan-1);
   SetIndexLabel(0,"Tenkan Sen");
//---
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,kijun);
   SetIndexDrawBegin(1,InpKijun-1);
   SetIndexLabel(1,"Kijun Sen");
//---
   ExtBegin = InpKijun;
   if(ExtBegin < InpTenkan) ExtBegin = InpTenkan;
//---
   SetIndexStyle(2,DRAW_HISTOGRAM,STYLE_DOT);
   SetIndexBuffer(2,senkouA);
   SetIndexDrawBegin(2,InpKijun+ExtBegin-1);
   SetIndexShift(2,InpKijun-1);
   SetIndexLabel(2,NULL);
   SetIndexStyle(5,DRAW_LINE,STYLE_DOT);
   SetIndexBuffer(5,senkouAL);
   SetIndexDrawBegin(5,InpKijun+ExtBegin-1);
   SetIndexShift(5,InpKijun-1);
   SetIndexLabel(5,"Senkou Span A");
//---
   SetIndexStyle(3,DRAW_HISTOGRAM,STYLE_DOT);
   SetIndexBuffer(3,senkouB);
   SetIndexDrawBegin(3,InpKijun+InpSenkou-1);
   SetIndexShift(3,InpKijun-1);
   SetIndexLabel(3,NULL);
   SetIndexStyle(6,DRAW_LINE,STYLE_DOT);
   SetIndexBuffer(6,senkouBL);
   SetIndexDrawBegin(6,InpKijun+InpSenkou-1);
   SetIndexShift(6,InpKijun-1);
   SetIndexLabel(6,"Senkou Span B");
//---
   SetIndexStyle(4,DRAW_LINE);
   SetIndexBuffer(4,chikou);
   SetIndexShift(4,1-InpKijun);
   SetIndexLabel(4,"Chikou Span");
//--- initialization done
  }
//+------------------------------------------------------------------+
//| Ichimoku Kinko Hyo                                               |
//+------------------------------------------------------------------+
int start()
{
   int limit = Bars - IndicatorCounted();
   if(limit == Bars) limit -= InpKijun+InpSenkou-1;
   for (int i =limit -1; i>=0; i--)
   {
        tenkan[i] = (High[iHighest(NULL, 0, MODE_HIGH, InpTenkan, i)] + Low[iLowest(NULL, 0, MODE_LOW, InpTenkan, i)]) / 2.0 ;
        kijun[i] = (High[iHighest(NULL, 0, MODE_HIGH, InpKijun, i)] + Low[iLowest(NULL, 0, MODE_LOW, InpKijun, i)]) / 2.0 ;
        senkouA[i] = (High[iHighest(NULL, 0, MODE_HIGH, InpKijun, i)] + Low[iLowest(NULL, 0, MODE_LOW, InpKijun, i)] + High[iHighest(NULL, 0, MODE_HIGH, InpTenkan, i)] + Low[iLowest(NULL, 0, MODE_LOW, InpTenkan, i)]) / 4.0 ;
        senkouB[i] = (High[iHighest(NULL, 0, MODE_HIGH, InpSenkou, i)] + Low[iLowest(NULL, 0, MODE_LOW, InpSenkou, i)])/2.0 ;
        senkouAL[i] = senkouA[i] ;
        senkouBL[i] = senkouB[i] ;
        chikou[i] = Close[i];
     }

   return(0);
}
//+------------------------------------------------------------------+

###

関連記事

[FX] MACDマルチタイムフレーム 15分足用(3) 改良その2

前回の記事「 MACDマルチタイムフレーム 15分足用(2) 改良 」の続きです。 お得意のタ

記事を読む

リベラルアーツ大学という Youtubeチャンネル

昨日、Youtube でちらっと見て、それからひたすら見続けています。>  リベラルア

記事を読む

【FX】easyMarkets 口座開設&トレード開始

easyMarkets という海外FX業者の口座の開設がようやく許可され、本日から Ubuntu デ

記事を読む

Myソモサン・セッパ(5)の答え

【問い】 ピカソが富豪と画商の両方を複数呼んでセリを行わせたのはなぜか? 儲けるために違いあ

記事を読む

[FX] 一目均衡表+STC フィルタ 完成版

以前ここで発表した一目均衡表のシステムに初期ロスカットをつけたものです。 Schaff Tre

記事を読む

[FX] ボリンジャーバンド順張り逆マーチンゲール版

昨日の記事「 ボリンジャーバンド順張りシンプル版」のプログラムを改良してみました。 最大ドロー

記事を読む

オリックス生命キャンドル(外貨建貯蓄保険)

本日オリックス生命のキャンドルという外貨建保険に加入しました。 普通の生命保険にはいっぱい入っ

記事を読む

FXトレード 2014/1/6

うちのマックトリプルバーガーと名づけた EA(自動売買プログラム)は売りと買いとで成績が違いすぎ

記事を読む

【FX】久々に EA つくる「2本のRSI でのトレードシステム」

パラパラと雑誌「FX攻略.com」のバックナンバーをめくっていると、複数の人の手法が一覧でまとめてあ

記事を読む

[FX] 2015/5/7 また EA が沈黙

以前の記事「先週はGWの影響で忙しかった 」 でも書きましたが、 FX の EA を稼働させてい

記事を読む

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

FEPI / REX ファング&イノベーション・エクイティ・プレミアム・インカムETF

今日は REX社の高配当ETF の残りの1つである、FEPI(REX

初期の遠隔画像診断

私は遠隔画像診断を 1997年頃より始めました。 28年も前やないか

【FX】東京仲値トレード(2)

以前にも書いたのですが、東京仲値トレード という有名なトレード法があり

SPHY(SPDR ポートフォリオ・ハイ・イールド債ETF)

SPDR ポートフォリオ・ハイ・イールド債ETF(略称 SPHY)とい

アメリカ株逝く・・・あれっ?

今日は週明けの月曜日。 先週金曜日に大事件がありました。 アメ

→もっと見る

  • 2025年8月
     123
    45678910
    11121314151617
    18192021222324
    25262728293031
  • アクセスカウンター
PAGE TOP ↑