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