FX memo -20ページ目

FX memo

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

うまい人はメッチャ儲かってるか、静観してると思うけど
しばらくはボラの高いイイ環境が続きそう 
デイトレ・スキャルピング派には天国かも 

ボラティリティさえあれば、トレンドがあっても無くても獲れ
るんじゃないかと思っている 
そういう時には、やはりバンドが一番使いやすそうなので
暫く実戦で観察  マダその域には達していない 
もう検証用のチャートは見飽きたよ 

うまくいけば、FXという金庫から好きな時に好きなだけ
という夢夢だよ 夢

検証用のチャートは放棄したふりをしてるけど、チャートの
Price部分に検証結果を表示することで今までの視覚検証
から数値検証に切り替える工夫をしてみた
条件式さえ書けば、ちょっとした検証はいくらでもできる

TestMode で表示を切り替えるようにしたので、次は外部の
テキストファイルを使えるように出来るといいなとか思ってる
多分、面倒くさくなって止めちまうと思うけど・・・

 5分足  USD/JPY    EUR/JPY   

M613_M5

夜には、また大きく動きそう 




チャートの値動きは常に縮尺が変動して錯覚を誘う 

インジケータをその対策に使うのであれば、方向を示すもので
はない、例えばATRや標準偏差なんかが最適

それでも、メインのチャートと同じような錯覚に陥らないためには
基準数値を設定する必要がある 
その数値が適切であれば、通貨ペアや時間枠の選択で迷う
ことが無くなる ⇒ ベストの選択を可能にする

今、基準にしている数値は機能しているし満足もしている 
でも、あまりにも安易に決めたものだから改善の余地があるん
じゃないかと不安も 

まぁ、「厳密に考えないとダメなやりかた」は使えないモンだから、
いい加減に&いい加減に 

 ↓ EUR/JPY 1時間足

M610ej_H1

がんばろね




FX を難しく言おうとすれば本を何冊でも書けるけど要するに
ボラと方向 だけの問題 
突発事故の対応を誤らなければそれだけで十分 

そういうと、いかにも簡単そう 

サッカーだって同じこと  言葉にすれば
ボールを蹴ってゴールにいれる だけ 
でも、自分をJ1 の選手と同じレベルで考えてるヤツなんて
みんな勘違いしてる ×××  
ノウガキ言うだけでは足元に転がっている球を思った弾道
で目的の場所に運ぶことは出来ない 

FX やってるヒトの殆んどは多分×××なのかも 
危険に身をさらしても自分だけは大丈夫だと信じてる 
最近そう思うさ  皮肉ではなく・・

PK だけを練習 して職人になろうとしてるんなら分かる
でも、そういう地道に力をつけようとするヒトって少ないね 
どうやっても勝てるからってダレでも勝てるワケじゃない

同じインジケーター使ってても、作った本人より儲けてる例
を見てるからよく分かる  チェッ  うそ 
でも、教えるコーチより選手の方が金持ちだよなぁ

サッカーのPKの時だけ参加というのは例えば、 FX で言う
ATR ⇒ ブルーゾーン & StdDev ⇒ 上昇
の時だけ参加するとか・・

ATRstepsは前に出したから、今回 StdDevHMAを併せて
--- HMAでない Ver もあるけどレベル設定済みだから・・ ---
同じサブウィンドウに表示すれば少なくとも負けないトレード
が可能だと思う 

 ↓ 解説も保証もしないけど 限定公開と同じもの    

//+------------------------------------------------------------------+
//|                            StdDevHMA.mq4 for MT4
//                                                                     re.. By sSeia 2013.06.01
//+------------------------------------------------------------------+ 

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_color1 Yellow
#property indicator_color2 Yellow
#property indicator_color3 Red
#property indicator_color4 Orange      //White
#property indicator_color5 LimeGreen

#property indicator_width1 2
#property indicator_width2 1
#property indicator_width3 2
#property indicator_width4 2
#property indicator_width5 3

//---- input parameters
extern int DevPeriod = 14;
extern int DevMethod=3;
extern int DevPrice=5;
extern double CutPer = 1.02;     //1.05
extern double CutMark = 3.5;     //4.0

int DevShift=0;
//---- buffers
double StdDevBuffer[];
double Uptrend[];
double BMark[];
double BLine[];
double CMark[];
double Ind_Buffer[];
double CutStd=1.02;
double pxrp;
double   min, mio;
//----
int tmfv;

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string sShortName;
   IndicatorBuffers(6);
//---- indicator buffer mapping
   SetIndexBuffer(0,StdDevBuffer);
   SetIndexBuffer(1,Uptrend);
   SetIndexBuffer(2,BMark);
   SetIndexBuffer(3,BLine);
   SetIndexBuffer(4,CMark);
   SetIndexBuffer(5,Ind_Buffer);
//---- indicator line
   SetIndexStyle(0,DRAW_LINE);
   SetIndexStyle(1,DRAW_ARROW);     SetIndexArrow(1,108);
   SetIndexStyle(2,DRAW_ARROW);     SetIndexArrow(2,159); //85
   SetIndexStyle(3,DRAW_LINE);
   SetIndexStyle(4,DRAW_ARROW);     SetIndexArrow(4,167); //94
//---- line shifts when drawing
   SetIndexShift(0,DevShift);   
//---- first values aren't drawn
   SetIndexDrawBegin(0,DevPeriod);
   SetIndexDrawBegin(1,DevPeriod);
//   pxrp=MathSqrt(ExtPeriod1)*Point;
   pxrp=MathSqrt(DevPeriod)*Point;
   if( Digits < 3 )      pxrp /= 10;
//
tmfv = Period();
min = MathSqrt(tmfv)*CutMark;
mio = min*3.5;
//----
   SetLevelStyle(STYLE_DOT, 1, Silver);
   SetLevelValue(0, min*5.0);   //3.5
   SetLevelValue(1, min);
   SetLevelValue(2, min*10.0);   //11
//---- name for DataWindow and indicator subwindow label
   sShortName="StdDevHMA("+DevPeriod+")";
   IndicatorShortName(sShortName);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Standard Deviation                                               |
//+------------------------------------------------------------------+
int start()
  {
   int    i,j,nLimit,nCountedBars,k;
   double dAPrice,dAmount,dMovingAverage;
//---- insufficient data
   if(Bars<=DevPeriod) return(0);
//---- bars count that does not changed after last indicator launch.
   nCountedBars=IndicatorCounted();
//----Standard Deviation calculation
   i=Bars-DevPeriod-1;
   if(nCountedBars>DevPeriod) 
      i=Bars-nCountedBars;
   nLimit=i;
   int e=Bars - nCountedBars + DevPeriod + 1;
   if( e > Bars ) e=Bars;
   
   for(k=0; k<nLimit; k++) {
      Ind_Buffer[k]=iMA(NULL,0,MathFloor(DevPeriod/2),0,DevMethod,DevPrice,k)*2-
                     iMA(NULL,0,DevPeriod,0,DevMethod,DevPrice,k);
   }
   while(i>=0) {
      dAmount=0.0;
      dMovingAverage=iMAOnArray(Ind_Buffer,0,MathFloor(MathSqrt(DevPeriod)),0,DevMethod,i);
      for(j=0; j<DevPeriod; j++) {
         dAPrice=GetAP(DevPrice,i+j);
         dAmount+=(dAPrice-dMovingAverage)*(dAPrice-dMovingAverage);
      }
      StdDevBuffer[i]=MathSqrt(dAmount/DevPeriod)/pxrp;
      BLine[i]=min*2.0;
      i--;
  }
//----
   for(i = e - DevPeriod; i >= 0; i--) {
      double p=0.0, r=0.0;
      Uptrend[i] = EMPTY_VALUE;
      BMark[i]    = EMPTY_VALUE;
      CMark[i]    = EMPTY_VALUE;
      if(StdDevBuffer[i] > min && StdDevBuffer[i+1]>0)
         p = StdDevBuffer[i]/StdDevBuffer[i+1];
      r=StdDevBuffer[i];
      if( p > CutPer ) {
         Uptrend[i] = r;
         if(Uptrend[i+1]==EMPTY_VALUE && Uptrend[i+2]==EMPTY_VALUE && r<mio){
             BMark[i]= r;
         }
      } else if(Uptrend[i+1]!=EMPTY_VALUE && Uptrend[i+2]!=EMPTY_VALUE && r>min*2.0) {
            CMark[i]= r;
      }
   }
//----
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double GetAP(int nAP, int nI) {
   double dP;
   switch(nAP) {
      case 0:  dP=Close[nI];                              break;
      case 1:  dP=Open[nI];                               break;
      case 2:  dP=High[nI];                               break;
      case 3:  dP=Low[nI];                                break;
      case 4:  dP=(High[nI]+Low[nI])/2.0;                 break;
      case 5:  dP=(High[nI]+Low[nI]+Close[nI])/3.0;       break;
      case 6:  dP=(High[nI]+Low[nI]+2*Close[nI])/4.0;     break;
      default: dP=0.0;
   }
   return(dP);
}
//+------------------------------------------------------------------+
 
バンドは、SMA20 と HMA5 に絞ったついでにσ の値を変えて
調べてみたが使う意味があるとは思えず・・
 ↓ サンプル数( 10000本 ) by EUR/JPY 5分足
SMA20
 ±0.75σ    3133/4605        3165/4665
 ±0.5σ      3765/5293        3801/5297
 ±0.1σ      4731/6261        4752/6212
HMA5
 ±0.5σ      1357/4411        1354/4576
 ±0.75σ     832/3215          819/3297
 ±1.25σ     276/1601          268/1580    
 ±1.5σ      135/1054          126/1076
どれもラインの形が美しくないので却下ヒントにはなってる
無駄な時間つぶしだったような・・・

それにしても、HMA5の±1σはスゴイ 8割は超えても戻る。
逆に、超えた時の次の足が気になったので調べた。
そのとき、±1σで次の足で前の足の高値を抜いたらカウント
HMA20            558/944            576/984
HMA10            652/1008           697/1057
HMA5              562/775            584/801
EMA20             982/1843         1040/1897
EMA10            1009/1754         1058/1790
EMA5               995/1604         1031/1613
SMA20            1276/2474         1329/2550
SMA10            1358/2446         1388/2457
SMA5              1493/2467         1548/2510
HMA5の場合70%を越えているので、抜けたら加速という印象だ
が安易にそう信じるのはリスクがあるというのが相場での常識
チョットは意味があるんだろうけどね  

反転とか加速とかも所詮、過去の状況を反映しただけのデータ 
離脱方法の目安として使うのならということで、もう少し検討 

まぁ ↑ からセンターを意識した方がよさそうなのでチャートは
少し変更  トレード方法は今まで通り 

5分足 USD/JPY & EUR/JPY   

M608_M5

最下段には関連通貨の RSI からタイミングを矢印で示している。
使わない割にまぁまぁ 

EMA5とかの使い方はもう少し温めてからゆっくり

追記;      あわあわ、、、前回とこの回の
計算の条件が少しおかしい、というか説明不足
訂正せず放置するけど、適当に解釈してくらさい
**始値の位置を考慮していない**





第一金曜日のイベントも終わり、これから6月が
始まるってところ 
しばらく、ボラティリティに振り回されるかも 

EUR/JPY 1時間足

M608ej_H1

週明けからも楽しみだにゃ