*

Trend Intensity Index という指標(2) シグナルを付加

公開日: : 最終更新日:2015/02/24 日記

以前の記事『Trend Intensity Index という指標』で紹介したインディケーターもシグナルを表示するように改変してみました。

シグナルというのは指標の移動平均をとったもので、平滑されている分、遅れて動くので、指標とのクロスで売買のシグナルにすることができるのです。

 

サブウィンドウの上が TII_RLH.ex4(オリジナル)で、下が私の改良したシグナル付加版。

下のシグナル付加版で赤と水色の線のクロスしたところ(平行して重なったところではない)が買いまたは売りとなります。

シグナルがないと指標の反転を判断するのに数値で比べないといけないのですが、シグナルがあるとクロスの有無で判定でき、より簡単にプログラムできるという裏事情があるのです。

関連記事

プログラムソース

#property  copyright "Copyright ゥ 2006, Robert Hill "
#property  link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property  indicator_buffers 2
#property  indicator_color1  Red
#property  indicator_color2  Aqua
#property  indicator_width1  2
#property  indicator_width2  1

//----
extern int Major_Period=60;
extern int Major_MaMode=1; //0=sma, 1=ema, 2=smma, 3=lwma, 4=lsma
extern int Major_PriceMode=0;//0=close, 1=open, 2=high, 3=low, 4=median(high+low)/2, 5=typical(high+low+close)/3, 6=weighted(high+low+close+close)/4
extern int Minor_Period=30;
extern color LevelColor=Silver;
extern int BuyLevel=20;
extern int MidLevel=50;
extern int SellLevel=80;

extern int SigPeriod = 8;

//---- buffers
double ma[];
double ma_dev[];
double tii[];

double tiis[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   IndicatorBuffers(4);
   SetIndexStyle(0,DRAW_LINE);
   SetIndexDrawBegin(0,Major_Period);
   IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 indicator buffers mapping
   SetIndexBuffer(0,tii);
   SetIndexBuffer(1,tiis);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexDrawBegin(1,Major_Period);

   SetIndexBuffer(2,ma_dev);
   SetIndexBuffer(3,ma);

//---- name for DataWindow and indicator subwindow label
   IndicatorShortName(" TII  ,  Major_Period ( "+Major_Period+" )  ,  Minor_Period  ( "+Minor_Period+" ), ");
   SetLevelStyle(STYLE_DASH,1,LevelColor);
   SetLevelValue(0,BuyLevel);
   SetLevelValue(1,MidLevel);
   SetLevelValue(2,SellLevel);
//---- initialization done
   return(0);
  }
//+------------------------------------------------------------------+
//| LSMA with PriceMode                                              |
//| PrMode  0=close, 1=open, 2=high, 3=low, 4=median(high+low)/2,    |
//| 5=typical(high+low+close)/3, 6=weighted(high+low+close+close)/4  |
//+------------------------------------------------------------------+
double LSMA(int Rperiod,int prMode,int shift)
  {
   int i;
   double sum,pr;
   int length;
   double lengthvar;
   double tmp;
   double wt;
//----
   length=Rperiod;
   sum=0;
   for(i=length; i>=1;i--)
     {
      lengthvar=length+1;
      lengthvar/=3;
      tmp=0;
      switch(prMode)
        {
         case 0: pr=Close[length-i+shift];break;
         case 1: pr=Open[length-i+shift];break;
         case 2: pr=High[length-i+shift];break;
         case 3: pr=Low[length-i+shift];break;
         case 4: pr=(High[length-i+shift] + Low[length-i+shift])/2;break;
         case 5: pr=(High[length-i+shift] + Low[length-i+shift] + Close[length-i+shift])/3;break;
         case 6: pr=(High[length-i+shift] + Low[length-i+shift] + Close[length-i+shift] + Close[length-i+shift])/4;break;
        }
      tmp =(i - lengthvar)*pr;
      sum+=tmp;
     }
   wt=sum*6/(length*(length+1));
//----
   return(wt);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int start()
  {
   int i,j,limit;
   double sdPos,sdNeg;

   int counted_bars=IndicatorCounted();
   if(counted_bars<0) return(-1);
   if(counted_bars>0) counted_bars--;
   limit=Bars-counted_bars;
   if(counted_bars==0) limit-=1+MathMax(Major_Period,Minor_Period);

//----
   for(i=limit; i>=0; i--)
     {
      if(Major_MaMode==4)
        {
         ma[i]=LSMA(Major_Period,Major_PriceMode,i);
        }
      else
        {
         ma[i]=iMA(NULL,0,Major_Period,0,Major_MaMode,Major_PriceMode,i);
        }
      ma_dev[i]=Close[i]-ma[i];
     }
//========== COLOR CODING ===========================================               
   for(i=0; i<=limit; i++)
     {
      sdPos=0;
      sdNeg=0;
      for(j=i;j<i+Minor_Period;j++)
        {
         if(ma_dev[j]>=0) sdPos=sdPos+ma_dev[j];
         if(ma_dev[j]<0) sdNeg=sdNeg+ma_dev[j];
        }
      tii[i]=100*sdPos/(sdPos-sdNeg);
     } 
   for(i=0; i<=limit; i++)
     {
      tiis[i] = iMAOnArray(tii,0,SigPeriod,0,MODE_EMA,i); 
     }
//----
   return(0);
  }
//+------------------------------------------------------------------+<>

###

関連記事

マルタイ ご当地 棒ラーメン 長崎あごだし入り醤油ラーメン

マルタイラーメンのご当地シリーズの一つの長崎あごだし入り醤油ラーメンです。 長崎県産の

記事を読む

母の葬儀

一昨日、母の葬儀を神戸で執り行いました。 神戸に住む弟とその配偶者(義妹)がほとんど手を尽くし

記事を読む

【ふるさと納税】秋田県産あきたこまち(無洗米)10kg / 秋田県大館市

秋田県大館市に 10000円寄付したらもらえます。 もう何回目か忘れました。 う

記事を読む

本日はわたしの誕生日

* 誕生日ねえ、頭が痛くて、むかつくね。 だって、もう年はとりたくないので。 もう55歳か

記事を読む

【ふるさと納税】 国産牛タレ漬焼肉用 部位ミックス2kg – 牛肉 焼肉用 真空個包装 ロース 肩ロース バラ ウデ モモ 合計2.0kg 冷凍 / 宮崎県都城市

宮崎県都城市に 10000円寄付するともらえました。 今はページが消滅してもらえなくなっていま

記事を読む

【ふるさと納税】甘平 2.5キロ ホリ田ヤのみかんの中で最高峰の甘さを誇る逸品 / 愛媛県今治市

【ふるさと納税】ホリ田ヤ 甘平2.5キロ ホリ田ヤのみかんの

記事を読む

マルタイ 棒中華そば (2人前) × 3袋

あのマルタイラーメンから新作が発表されました。 それがこの 棒ラーメンならぬ 棒中華そば。

記事を読む

2024年祇園お化け

昨夜は2年ぶりの祇園へ。 年に2日だけのお化けの日でした。 お化けについてはこちらのブロ

記事を読む

【万年筆】 HERO 901 ヒーロー 901 ペン 万年筆 ブラック&ゴールド ステンレス

「英雄」は中国製万年筆の代名詞のようなブランドです。 昭和41年くらいに日本で一世を風

記事を読む

国産オオクワガタ成虫ペア オス 72.5mm, メス 45mm(産地不明) 成熟済み 到着

国産オオクワガタ成虫ペア、オス72.5〜74.5mmup(産

記事を読む

Message

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

8分間の奇跡

ついこの前 歯科医に行って治療が終わったと思ったのに、また先週 右下の

【FX】Vantge Trading に口座を開く

Vantge Trading はゴールドのスプレッドを調べていたいくつ

【FX】AXI Select インキュベーションへの移行

AXI Select というプロトレーダープログラムのお話。 テ

【FX】ゴールドの実質コスト

昨日のゴールド(証拠金取引;いわゆる XAUUSD のこと)のスプレッ

【FX】Axiory のゴールドのスプレッドが広がってる

最近、ゴールドのスキャルピングEA を多用しています。 トレード回数

→もっと見る

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