2020年5月6日水曜日

WPR とレンジ【メモ】

WPRはウィリアムさんが考案したレンジの表現

計算式は WPR = -(High-Bid)÷(High-Low)
High、Lowは期間中の最高値、最安値

0~-100を推移し 0~-20買われすぎ -80~-100売られすぎを表すオシレータです。



MQL4的には iWPR(_Symbol,PERIOD_CURRENT,20,0) こんな感じです。




ばらして書くとこうなります。

double H=High[iHighest(_Symbol,PERIOD_CURRENT,MODE_HIGH,20,0)];
double L=Low[iLowest(_Symbol,PERIOD_CURRENT,MODE_LOW,20,0)];
double WPR=(H-L)?-(H-Bid)/(H-L)*100:50;

※H-Lが0の時は50にしています。




おそらく一番早いのは

double H=0,L=99999;
   for(int i=0;i<20;i++)
      {
      H=H<High[i]?High[i]:H;
      L=L>Low[i]?Low[i]:L;   
      }
   double WPR=(H-L)?-(H-Bid)/(H-L)*100:50;

ここで話を最初に戻して、なぜ0~-100なのだろうか
0~100の方がシンプルでわかりやすい気がします。

ほかのオシレーターと式的に比較してみます。

LONGエントリー基準  インジケータ  SHORTエントリー基準の順です。

  30 RSI 70
 -100 CCI 100 
 -100 WPR 0        

ほとんどのオシレーターは数字が大きいほうがSHORT基準
>< 大なり小なりの向きをそろえるには確かに0~-100の方が理にかなっていますね。

ex) <>の向きが同じ
if(RSI > 70)ShortEntry();
if(WPR>-30)ShortEntry();

if(RSI  < 30)LongEntry();
if(WPR<-70)LongEntry();

まぁ0~100で(Bid-L)/(H-L)をTACARANGEとして

if(TACAR>70)ShortEntry(); でもいい気がしますがw









0 件のコメント:

コメントを投稿