*

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

###

関連記事

【ヤフオク】リトグラフ額装 ”ヨーロッパ風景” 藤森 悠二 落札

1000円(送料別)で落札。 額付きで 44X36cm。 藤森悠二さんは私はよく知

記事を読む

電動歯ブラシ ブラウン スミズミクリーン

ブラウン D1004132WT D1004132WT スミズ

記事を読む

【万年筆】LAMY Safari (ラミーサファリ) スケルトン 細字 L12F

LAMY safari(ラミーサファリ) 万年筆L12 F/

記事を読む

【ふるさと納税】ちょこっと訳あり 不知火 約7kg / 和歌山県北山村

【ふるさと納税】【訳あり】ちょこっと訳あり不知火デコポン 約

記事を読む

花見 2016-04-02

昨日土曜日は曇天ながら雨はなさそうでしたので、お花見。 石山寺 まず、カミサンと桜を観に

記事を読む

【ふるさと納税】種子島産安納いも(冷凍焼きいも)1袋500g入り×8袋(2)

↑ 【ふるさと納税】本場種子島産安納いも(冷凍焼きいも)1袋500g入り×8袋 *

記事を読む

ブックオフオンラインでお買い物 with 誕生月クーポン

そろそろブックオフ行きたいな、と体がウズウズしてきたのですが、本日下のようなメールがブックオフオンラ

記事を読む

【万年筆】 中華まん Gullor 602 パープルシニア

Gullor ブランドと書いてありますが、届いた本体のキャップには「Jinhao」の刻印がさ

記事を読む

【ふるさと納税】九十九島とらふぐ鍋セット 佐世保市

佐世保市に2万円寄付するともらえます。 養殖フグの冷凍てっちりセットです。 皮の湯引き

記事を読む

no image

過去の日記のリライト

 過去の日記のリライトです。無視してください。 03.08.31 Sun

記事を読む

Message

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

歌川広重の日本美術版画800点以上:高解像度(デジタルダウンロード)R-159

今夜はこういうのを買ってみました。800点以上で 710円。

恐ろしいメガバンドル(2) 32000個入りを買ってみた

昨日の記事「恐ろしいメガバンドル」で紹介したもののうち、18万個(20

壁紙屋本舗
恐ろしいメガバンドル

またまた Etsy.com の話ですが、眺めているとすごい商品が目につ

小原古邨のデジタルアート 200点

Etsy.com をぼーっと見ていたら、大好きな小原古邨のデジ

日本関連のアートが欧米で人気(2)

一昨日の記事「日本関連のアートが欧米で人気」で、 >上のようなア

→もっと見る

  • 2026年9月
     123456
    78910111213
    14151617181920
    21222324252627
    282930  
  • アクセスカウンター
PAGE TOP ↑