*

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

###

関連記事

小学6年生のある日

あれは小学6年生のある日だったと思います。 私は少年野球部に所属しており、ちょうど大会が終わって引

記事を読む

no image

過去の日記のリライト

 過去の日記のリライトです。  興味がない人はとばしてください。  

記事を読む

【万年筆】 Jinhao 599A 中華万年筆 ホワイト たぶん細字 サファリのそっくりさん

アマゾンで 518円(送料込み)。 アマゾンの購入ページには「ユニークなデザイン」と書

記事を読む

【万年筆】 プラチナ プロシオン ポーセリンホワイト 細字

プラチナ萬年筆の廉価シリーズである プレピー、プレジールの上位(全体としては中位クラス)の 

記事を読む

ピットから海への放射能漏れ

   ピットから海への放射能漏れが見つかった福島原発2号炉ですが、穴をふさぐのにコン

記事を読む

【万年筆】 中華まん Penbbs 500

今までの記事の中でときどき言及していた Penbbs というブランドの 500番です。

記事を読む

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

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

記事を読む

日本年金機構ウィルス感染 われわれはルスだ!

日経新聞によると、  公的年金の保険料徴収や給付実務を担う日本年金機構(東京)は1日、ウイ

記事を読む

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

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

記事を読む

淡路島たまねぎと淡路牛のカレー 200g×3個(中辛)レトルト

淡路島たまねぎと淡路牛のカレー200g×3個(中辛)#淡路カ

記事を読む

Message

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

【FX】ボリンジャーバンド順張りの EA を運用開始

昨日作った「ボリンジャーバンド順張りの EA(改良版)」は jjBB0

【FX】ボリンジャーバンド順張りの EA(改良)

ボリンジャーバンドは順張りで使えと、ボリンジャーさんは草葉の陰で唱えて

【FX】2本のWMAでエントリする EA(Vulkan Profit風)

Vulkan Profit というそこそこ有名なインジケーターがありま

新・水滸後伝 / 田中芳樹

★★★☆☆ 中国古典の大作『水滸伝』は誰でもご存じでしょうが

味の素 しょうがガツンと餃子

本日セブンイレブンで見つけた冷凍食品の餃子です。 味の素

→もっと見る

  • 2026年2月
     1
    2345678
    9101112131415
    16171819202122
    232425262728  
  • アクセスカウンター
PAGE TOP ↑