FX memo -18ページ目

FX memo

テクニカルに飽きたらやめるさ
と思っていたが新展開・・

メインのチャートは、まだ未完だけど満足している
足を1本単位で考え、値の方向と可動域を想定という
のは自分にピッタリ

サブの、ATR、標準偏差、ADX もこんなもんだろうし
気分でパラメータを変えるくらい
トレンドの強弱や過程とかレベルはこれで十分

通貨の強弱については、いままで深く考えることは無
かった
メインの方向マークが結構うまく機能しているので
関連2通貨が方向一致した時に最下段にマーク付け
していたけど、やはりピンと来ない

どうせならということで、 Ku-chart を再度引っ張り出
してきて、別に30分足に表示参照することにした
コレ、必需品だね
以前は、この良さを理解出来なかったって情けない

オリジナルのままの表示かベース通貨を直線にする
かは、どちらでも選べるようにして使う予定 

5分足と( 1時間足⇒ )30分足 
これで後半戦の臨戦態勢は整った

 5分足 USD/JPY EUR/JPY

M629_M5

これからはノンビリEAでも、と思ってる





標準偏差 や ADX で、トレンドの強弱を表示したくても
いつも手遅れって感じになるから使わない人も多い

特に、ADX はうちのメンバーだれも使ってない 
もしかすると、自分の書き換えたインジケータが間違え
てるんじゃないかと思ったりするけど 
まぁ間違えてたら、また書き直せばいいだけの話だから
気にしないで ↓ に  

一応、ワイルダー式とそうじゃないのとを切り替え出来る
ようにしてあるから後は適当に・・・ 

//+----------------------+
//|         Wat_ADX2.mq4 |
//+----------------------+
 
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_width1 1
#property indicator_color2 Magenta
#property indicator_width2 1
//---- input parameters
extern int ADXPeriod=14;
extern int MAmode =MODE_EMA;     //
extern bool Wilder=true;
//---- buffers
double ADXBuffer[];
double UpBuffer[];
double PlusDiBuffer[];
double MinusDiBuffer[];
double PlusSdiBuffer[];
double MinusSdiBuffer[];
double TempBuffer[];
int CutLine=25;
double ap;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- 3 additional buffers are used for counting.
   IndicatorBuffers(7);
//---- indicator buffers
   SetIndexBuffer(0,ADXBuffer);
   SetIndexBuffer(1,UpBuffer);
   SetIndexBuffer(2,PlusDiBuffer);
   SetIndexBuffer(3,MinusDiBuffer);
   SetIndexBuffer(4,PlusSdiBuffer);
   SetIndexBuffer(5,MinusSdiBuffer);
   SetIndexBuffer(6,TempBuffer);
   SetIndexStyle(0,DRAW_LINE); 
   SetIndexStyle(1,DRAW_ARROW);     SetIndexArrow(1,159);
//---- name for DataWindow and indicator subwindow label
   IndicatorShortName("Wat_ADX2("+ADXPeriod+")");
   SetIndexLabel(0,"ADX");
//----
   SetIndexDrawBegin(0,ADXPeriod);
   SetIndexDrawBegin(1,ADXPeriod);
//----
   ap = ADXPeriod;
   SetLevelStyle(STYLE_DOT, 0, Red);
   if(Wilder==true) {
        ap=ADXPeriod*2-1;
        CutLine = 10;
        SetLevelValue(0, 15);
        SetLevelValue(1, 40);
   } else {
      SetLevelValue(0, CutLine);
      SetLevelValue(1, 50);
   }
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Average Directional Movement Index                               |
//+------------------------------------------------------------------+
int start()
  {
   double pdm,mdm,tr;
   double price_high,price_low;
   double p, q;      //trend[], 
   int    starti,i,counted_bars=IndicatorCounted();
//----
   i=Bars-2;
   PlusSdiBuffer[i+1]=0;
   MinusSdiBuffer[i+1]=0;
   if(counted_bars>=i) i=Bars-counted_bars-1;
   starti=i;
//----
   while(i>=0) {
      price_low=Low[i];
      price_high=High[i];
      //----
      pdm=price_high-High[i+1];
      mdm=Low[i+1]-price_low;
      if(pdm<0) pdm=0;  // +DM
      if(mdm<0) mdm=0;  // -DM
      if(pdm==mdm)  {   pdm=0; mdm=0;}
      if(pdm<mdm)    pdm=0;
      if(mdm<pdm)    mdm=0;
      //---- 
      double num1=MathAbs(price_high-price_low);
      double num2=MathAbs(price_high-Close[i+1]);
      double num3=MathAbs(price_low-Close[i+1]);
      tr=MathMax(num1,num2);
      tr=MathMax(tr,num3);
      //---- counting plus/minus direction
      if(tr==0) { PlusSdiBuffer[i]=0; MinusSdiBuffer[i]=0; }
      else      { PlusSdiBuffer[i]=100.0*pdm/tr; MinusSdiBuffer[i]=100.0*mdm/tr; }
      //----
      i--;
     }
//---- last counted bar will be recounted
   if(counted_bars>0) counted_bars--;
   int limit=Bars-counted_bars;
//---- apply EMA to +DI
   for(i=0; i<=limit; i++)  PlusDiBuffer[i]=iMAOnArray(PlusSdiBuffer,Bars,ap,0,MAmode,i);
//---- apply EMA to -DI
   for(i=0; i<=limit; i++)  MinusDiBuffer[i]=iMAOnArray(MinusSdiBuffer,Bars,ap,0,MAmode,i);
//---- Directional Movement (DX)
   i=Bars-2;
   TempBuffer[i+1]=0;
   i=starti;
   while(i>=0) {
      double div=MathAbs(PlusDiBuffer[i]+MinusDiBuffer[i]);
      if(div==0.00) TempBuffer[i]=0;
      else TempBuffer[i]=100*(MathAbs(PlusDiBuffer[i]-MinusDiBuffer[i])/div);
      i--;
   }
//---- ADX is exponential moving average on DX
   for(i=0; i<limit; i++)      ADXBuffer[i]=iMAOnArray(TempBuffer,Bars,ap,0,MAmode,i);
   for(i=0; i<limit; i++)   {
      if(ADXBuffer[i]>ADXBuffer[i+1] && ADXBuffer[i]>CutLine)     UpBuffer[i] = ADXBuffer[i];
      else                                                        UpBuffer[i] = EMPTY_VALUE;
   }      
//----
   return(0);
  }
//+----------------------------------------------+

今は凪の時間  USD/JPY 5分足

M626uj_M5

ADX( 細いピンク )もStdDev( 黄 )も揃って
下降中
いろいろなMAで試しているけどソレゾレ違う 

バンドを可動域で使うにしても動くからダメと思って
いたけど、ケッコウ使えるよん 
レジスタンス・サポートの機能はなくても、目安には
なってるし 

年内くらいはコレであそべそう 

  EUR/JPY 5分足
 ↓今まで使っていた  ↓次に使う予定

M622ej_Ban2
改善すべきポイントは、やはり固定基準だから
一つ前の足のラインを参照できるようにしたのと
極限まで 可動域を絞り込んだ 

一つの足の中での動きを落ち着いて観察できる
ので、使い方としては上位時間の方向を確かめ
てからトレードすれば大丈夫な感じだけど、自分
の場合は時間があるときマークだけでやってる

まぁ負ける気はしないけど、どうなんだろう 
追記;
一本の足の可動域をトレードに使っているから
リスクも小さいし利益はいくらでも伸ばせるカモ

  AUD/JPY 5分足

M622aj_Ban2

 




夜中の、FOMC イベント待ちで方向感ない値動き

まだ、HMA5±1σとSMA5±2σのバンドを見ている

この4本( 2×2 ) のバンドの並びは3種類しかない
(A) HMA5+1σ  (B) HMA5-1σ
(C) SMA5+2σ  (D) SMA5-2σ
とすると上から、
 1.  A C B D
 2.  C A D B
 3.  C A B D
この3種類は、ほぼ均等な割合で出現 
HMAが真ん中に挟まれた 3. は経験的に無視 
--- 分からないようなら以下読む必要なし

 ↓ サンプルは GBP/JPY    5分足
右側上段の数値は、1. の出現回数と終値-始値の計
右側下段の数値は、2. の出現回数と終値-始値の計

M619gj_M5

当然、次々値を追いかけてリライトされるので額面
通りに受け取ると大怪我をするデータ 
でも裁量でやるのなら、こんなモンじゃないという
意見もある  TAWASHI は信じないけど