*

一目均衡表(関数版)

公開日: : 最終更新日: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);
}
//+------------------------------------------------------------------+

###

関連記事

アンディさんのリアルタイム雲(2)

前回の記事「アンディさんのリアルタイム雲」で紹介したリアルタイム雲 ですが、本日ちょっと使ってみたと

記事を読む

【FX】 Fintokei の禁止事項緩和

プロップファーム の Fintokei の禁止事項がいつのまにか緩和されてました。 ナンピ

記事を読む

【FX】アンディさんのリアルタイム雲 (3)

最強の「FX理論」を君たちに教えたい posted with amazlet

記事を読む

貯蓄型の生命保険

主に使っている銀行口座(普通預金口座)の残高が 8ケタになっていたので、相続目的で生命保険に入ること

記事を読む

【FX】Hippo Trader という EA(6)

以前の記事「【FX】Hippo Trader という EA(5)」の続きです。 個人的に好きな

記事を読む

【FX】Aura Neuron という EA

MQL5.com を観ていると、MT4 用の Aura Neuron という EA に目が行きました

記事を読む

アメリカ株投資 2024-3-6

日経平均が今週 4万円を初めて超えて大盛りあがりの今日この頃ですが、米国株は FANG+ などの大型

記事を読む

【FX】FX に付いての雑談

本日は FX についての雑談。 自動売買プログラム(EA)での FX トレードは、ふつう

記事を読む

月刊「FX攻略.com 2019年12月号」におまけの AI インジケーター

月刊FX攻略.com2019年12月号 posted with amazlet

記事を読む

【FX】2023年11月第3週までの決算

「【FX】2023年11月第2週中間決算」の続きで、 先月の1か月分と今月の約3週間分

記事を読む

Message

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

イオン株2/3売る

2022年7月20日に株主優待目当てにイオン株を 100株買いました。

HFM ドル口座開設

以前紹介した スプレッドが狭い業者である HFM ですが、リアル口座を

ウエスタンデジタルHDD Ultrastar 14TB

以前書いた記事「500GB HDD が安い」の中で紹介した 2.5イン

フランケーヌの犬

腐乱犬:「イオーン、イオーン」 子供:「あ、なにか遠吠えしてるね

【FX】AXI Select 4日目 エッジスコアがちょっとだけ上がる

プロップファームの一種である AXI Select のインキュベーショ

→もっと見る

  • 2025年12月
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
  • アクセスカウンター
PAGE TOP ↑