*

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

###

関連記事

【万年筆】プラチナ プレジール 細字 ブルー

プラチナの廉価版万年筆のプレジールです。 廉価版と言ってもプラチナの出している 300

記事を読む

no image

過去の日記のリライト

 過去の日記のリライトです。  なんかソフトの紹介で引き延ばしているなぁ。  ネタがな

記事を読む

[FX] 2015/6/8 今週のパラメーター

最近忙しくてなかなか打ち込めない FX ですが、昨日からパラメーターを変更しました。 2015/5

記事を読む

今年も横浜

木曜日からやっている日本医学放射線学会ですが、私は本日のみの参加です。 いつも木曜日、金曜日は

記事を読む

no image

過去の日記のリライト

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

記事を読む

[ふるさと納税] 豚・鶏肉のセット

宮崎県東諸県郡国富町(くにとみちょう)から少し前にいただいた 豚・鶏肉のセット をやっと食べきり

記事を読む

【ふるさと納税】 さくら(桃)3kg 天童市

果物と将棋の駒で有名な天童市に 10000円寄付するともらえます。 生産者がごくわずかな希

記事を読む

no image

過去の日記のリライト

 過去の日記のリライトをしました。  これでやっと 2008年が終わりました。  残り

記事を読む

業務用国産黒烏龍茶2リットルペットボトル 2リットル 12本 送料無料

黒烏龍茶 茶匠庵 プレミアム国産黒烏龍茶 ペットボトル 2リ

記事を読む

凶器・・・なのか

先週、自宅のマンションの共用庭でステンレスの包丁が発見されました。 錆びていたのでだいぶ以前に置か

記事を読む

Message

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

久々の「残業」

明日高槻遠隔画像診断センターの引っ越しなので、整理に行ってきました。ま

この1冊でしっかりわかる Geminiの教科書 / 佐倉井 理冴

★★★☆☆(わかりやすい) Gemini 初心者向けの優しく

大昔のグラボ

高槻遠隔画像診断センターの閉所(引っ越し)を間近に控え、せっせと倉庫を

毎月配当の超高配当投資信託の「ネクスト・ジェネレーション」の配当について

毎月配当の超高配当投資信託の「ネクスト・ジェネレーション」の今年の配当

Felo 日本発の AI

Felo(フェロー)は、東京を拠点とするスタートアップ企業「Felo

→もっと見る

  • 2026年6月
    1234567
    891011121314
    15161718192021
    22232425262728
    2930  
  • アクセスカウンター
PAGE TOP ↑