*

一目均衡表(関数版)

公開日: : 最終更新日: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】Exness ゼロ口座 5つめ

本年3月27日から Exness のゼロ口座の5つ目を運用しています。 それまで運用していた

記事を読む

【FX】朝スキャ

朝スキャという言葉はご存じでしょうか。普通の方は聞いたこともないでしょう。 え、夜明けのスキャ

記事を読む

Trend Intensity Index を使った EA

以前の記事で紹介した Trend Intensity Index(TII) という指標で作った

記事を読む

MetaTrader4 デモ口座

ここで紹介しているスーパーな FX ソフトの MetaTrader4 ですが、Windows マ

記事を読む

【FX】平滑化 RSI を使った簡単な EA(2)

「【FX】平滑化 RSI を使った簡単な EA」の続きです。 RSIMA(アールシーマ)と呼んでい

記事を読む

世界一シビアな「社長力」養成講座 / ダン・ケネディ

ダン・ケネディの新刊を読了。2回目ですが。 この前もちょこっとここに書いたけど、 世界一シビア

記事を読む

VQ を使った自動売買ソフト

昔一世を風靡したインディケーターに VQ があります。 最近なぜか人気は下火になっていますが、

記事を読む

【FX】half-trend-buy-sell-indicator というインジケーター

half-trend-buy-sell-indicator というインジケーターがあります。

記事を読む

【FX】FX業者 easyMarkets でのトレードやめます

以前開いた easyMarkets の口座を閉鎖しました。 easyMarkets はスプレッ

記事を読む

【FX】 Hunter Scalper 1.10 という EA

Hunter Scalper 1.10 今までなんどか紹介している Hunter Scapular

記事を読む

Message

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

イランそろそろ終わりそう

次のアメリカとの交渉が近づいていますが、そろそろイランが降伏しそうな気

神戸居留地 果汁100% アップルジュース 185g 30 缶

1本あたり 85円とかなり安いので買ってみました。 味は

【FX】フラクタルを使ったスキャルピング手法

https://www.youtube.com/watch?v=RBv

楽天JPEQ 今月も順調な配当

「楽天JEPQ」とは正式名称を楽天・米国成長株式・プレミアム・インカム

来週上場の 563A(グローバルX NASDAQ100・デイリー・カバード・コール ETF)

563A(グローバルX NASDAQ100・デイリー・カバード・コール

→もっと見る

  • アクセスカウンター
PAGE TOP ↑