*

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

###

関連記事

4種ミックスナッツ(アーモンド くるみ カシューナッツ マカデミアナッツ) 無塩/有塩 素焼き 850g

《最安挑戦中》ミックスナッツ ナッツ 無塩 有塩 素焼き 8

記事を読む

1/29 センターのネット回線がおかしい

たまにしか発生しませんが、センターのネット回線のエラーの話。 今朝 9AM、異常に回線が遅いこ

記事を読む

【万年筆】ダイソー万年筆 6853

一昨日、大津京のダイソーで初めて見つけました。 これは見まごうことなき、「ナカバヤシ

記事を読む

オボカタちゃんのノートを見て思う

形勢不利なオボカタちゃんですが、あのノートを見るとやはりトホホと思います。 何ヶ月にもわた

記事を読む

「賢くなるパズル」 たたみでごろにゃんパズル 知育玩具

小学校1年制の孫のために買いました。楽天で 1830円(送料込み)。 宮本塾の宮本先生考案の数

記事を読む

京都で美術館巡り

本日はカミサンと娘と連れだって、京都市美術館の「ルーヴル美術館展」、「マグリット展」、祇園甲部歌

記事を読む

夢中で逢いたい

昨日寝る前に「久々に父と会いたいな」と思ってから眠りますと、夢の中に父が出てきてくれました。

記事を読む

【ふるさと納税】タカミメロン5.5kg 鳥取県北栄町

今年の分は先月でもう締め切られてしまいましたが、鳥取県北栄町に 1万円寄付するともらえます。

記事を読む

森のきのこカレーお試しセット 2種類

森のきのこカレーお試しセットを楽天市場で買いました。 2種類あり、 煮込みビーフカレ

記事を読む

シートマッサージャー セララ

シートマッサージャー セララ マッサージ器 送料無料 マッサ

記事を読む

Message

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

Apacer SSD 256GB(M.2 NVMe)

Apacer アペイサー SS

Core i3-8100 について(2)

Core i3-8100 という最近入手した中古の CPU について。

【ヤフオク】DELL OptiPlex 3050 到着後セットアップ

3,097円(税込)+送料 1,606円 で落札した DELL

DELL Vostro260S 逝く

2011年7月に新品で買った DELL Vostro260S が昨日壊

USBハブ 3.0×3ポート+ギガビットイーサネットアダプタ

楽天1位獲得 高速 USB 3

→もっと見る

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