*

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);
  }
//+------------------------------------------------------------------+<>

###

関連記事

東京オリンピック なかなかいい日

本日は、水泳の400m個人メドレーで大橋悠依(滋賀県出身)、スケボーで堀米雄斗、柔道で阿部一二三&a

記事を読む

【ふるさと納税】 西洋なし食べ比べセット / 山形県東根市

山形県東根市に1万円寄付するともらえます。 残念ながら品切れです。 斉藤果樹園さんの

記事を読む

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

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

記事を読む

【ふるさと納税】 梨5kg 福岡県行橋市

福岡県の行橋市(ゆくはしし)さんに 10000円寄付して梨5kg をいただきました。 福岡

記事を読む

【ヤフオク】 裸婦像 Oda Hajime 到着

1240円+送料で落札。 大きさは 580 x 430mm。 残念ながら到着後、

記事を読む

オオクワ幼虫今年初めて3匹孵化

久々にオオクワガタ(国産)の話。 初齢幼虫3匹生まれました 昨年生まれた巨大オス(2013年

記事を読む

【万年筆】ナカバヤシ TACCIA Penfort ファセット万年筆 クリアブルー 細字 TPF-001-CB-F

アマゾンで 2209円で購入(送料、税込み)。 ボディの色は 6色から選べ、字幅は細字と中

記事を読む

【ふるさと納税】朝採りとうもろこし約6kg(おおもの)/ 茨城県下妻市

【ふるさと納税】66-81朝採りとうもろこし約6kg(おおも

記事を読む

【ふるさと納税】チキンラーメンを愛するあなたへ贈る 日清食品チキンラーメンづくし / 大阪府池田市

こういう箱でやって来ました(↓)。 内容はいろいろ変わるかもしれませんが、うちのは食品

記事を読む

楽天お買い物マラソン実施中 2021/1/24-28

楽天市場で楽天お買い物マラソンが実施されています。 本日は 1/25 で、ポイントアップデー(

記事を読む

Message

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

投資信託への乗り換え

現在の楽天証券での運用資金は、 国内株 米国株

さらば銀河鉄道2866

今月も 日本市場に上場している ETF である 2865,2866、2

日本市場で買える毎月配当の投資信託?

「日本の市場に上場している投資信託の中で毎月配当で実績の高いものを5つ

ネクスト・ジェネレーションと世界のベストに楽天SCHD の売却代金を移行

楽天SCHD を売却した代金が入金されていたので、超高配当投資信託の「

カラーレーザープリンタに久々にココロ惹かれる

本日、上新電機に立ち寄る機会があり、ちらっと見かけた Epson のカ

→もっと見る

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