一目均衡表(関数版)
公開日:
:
最終更新日: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); } //+------------------------------------------------------------------+
###
関連記事
-
超シンプルな自動売買プログラム(11) 前週の平均値と逆張り(2) 曜日属性
以前の記事「超シンプルな自動売買プログラム(11) 前週の平均値と逆張り」ですが、月曜日に買って
-
【FX】2023年11月第1週中間決算
2023年11月の第1週、というか本日は水曜日なので週区切りは無視して 7日間がすぎました。
-
アンディさんのリアルタイム雲
上が一目均衡表で、雲は26本先行しています。 下は有名なト
-
【FX】 TitanFX ブレード口座が不調
TitanFX のブレード口座は今回のプロジェクトで私が最初に開設して、いろんな EA を今年 8月
-
[FX] 4/20 おやトレンドが反転?
GBPUSD 1時間足です。 おや、先週来 続いていたトレンドが逆転しそうな気配。 雲は
-
【FX】新戦略のためのデモトレード
現在の FX 自動売買は Evening Scalper Pro を中心に行っていますが、逆張りナン
-
[FX] FX マイニング第5週
以前の記事「FX マイニング第4週 まだ復調せず」の続きで、 FX自動売買の記録です。 7/1
-
投資信託の買い増し方の一例(私の場合)[2]
以前の記事「投資信託の買い増し方の一例(私の場合)」の続きです。 具体例を提示します。
-
【FX】Connect Safe Forex EA(2)
以前紹介した自動売買ソフト(EA)の「【FX】Connect Safe Forex EA」ですが、デ
-
ディナポリ手法で利用するDMA (2)
前回の記事「ディナポリ手法で利用するDMA」で、ディナポリ移動平均線を使った自動売買プログラムを作り
- PREV
- ふるさと納税初めてやってみた
- NEXT
- リアルタイムクラウドフィルタ