おかしいというより、はっきり言って、間違っています。
ストキャスティクスのパラメーターを、たとえば、
◆ %Kの計算期間=5
◆ %Dの計算期間=4
◆ スローイングの計算期間=3
とします。
一般的な計算方法では、
◆%K=(最新の終値-直近5本間の最安値) ÷(直近5本間の最高値-直近5本間の最安値) ×100
◆%D={(最新の終値-直近5本間の最安値)の直近4本分の合計}÷{(直近5本間の最高値-直近5本間の最安値)の直近4本分の合計}×100
◆Slow%D=%Dの直近3本分の平均
として、それぞれのラインがチャート上に表示されるはずです。
ところが、同じパラメーターで、これをMT4を使って、
上の画像のように設定してチャート上に表示すると、なんと、
◆%K=(最新の終値-直近5本間の最安値) ÷(直近5本間の最高値-直近5本間の最安値) ×100
◆%D={(最新の終値-直近5本間の最安値)の直近3本分の合計}÷{(直近5本間の最高値-直近5本間の最安値)の直近3本分の合計}×100
◆Slow%D=%Dの直近4本分の平均
として、それぞれのラインがチャート上に表示されてしまいます(このことは、エクセルでもMT4でもストキャスティクスを組んで両方で確認しました)。
つまり、一般的なストキャスティクスとMT4とでは、「%D」と「スローイング」のパラメーターが逆になっているということです。
ちなみに、iStochastic()関数のリファレンスを見ても、
上の画像のように、各パラメーターの意味が堂々と書かれていますが、実際には、「%D」と「Slowing」を逆にしたチャートが描画されます。両者を逆にしたストキャスティクスの計算例なんて見たこともないことからすると、これは明らかに、メタクォーツ社の開発者の勘違いかミスだと言わざるを得ません。
まあ、上記のことをちゃんと理解した上で、MT4のストキャスティクスを使うときは、両パラメーターの数値を意図的に入れ替えて使えばよいわけですが、困ったことがもう一つあります。それは、MT4でいわゆるファーストストキャスティクス(%Kラインと%Dラインによるクロスサイン)を使用したいときです。
MT4では、そのままでは%Kのラインは表示されず、%DとSlow%Dの2本のラインしか表示されないので、上記の理屈を踏まえて、「スローイング」の値を「1」にすれば、%Dのライン=デフォルトの緑のラインがそのまま%Kのラインになるはずで、実際にそのようになるのですが、そうすると今度は%Dのラインが表示されません。
結局、MT4では、スローストキャスティクス(%DラインとSlow%Dラインによるクロスサイン)を使用することはできますが、ファーストストキャスティクスが使えないということになります。
これではさすがに、困るトレーダーがいるでしょう。
そこで、当方できちんとしたストキャスティクスのインジケーターを作成しましたので、こちら から勝手にダウンロードしてください。
特徴は、
①ストキャスティクスの各パラメーターを一般的なものと同一にしたこと
②%Kラインも同時に表示させて3本のラインを確認できるようにしたこと
です。
上記画像の上側がMT4標準装備のストキャスティクスで、パラメーターは、
◆ %Kの計算期間=5
◆ %Dの計算期間=4
◆ スローイングの計算期間=3
で、下側が当方作成のストキャスティクスで、パラメーターは、
◆ %Kの計算期間=5
◆ %Dの計算期間=3
◆ スローイングの計算期間=4
で、両者は完全に一致します。
また、下側の当方作成のストキャスティクスには、%Kラインもデフォルトでシルバー色で表示されています。
以下は、当方作成のストキャスティクスインジケーターの外部パラメーターの解説です。
◆ K_PERIOD = 5
%Kの計算期間を指定してください。
◆ D_PERIOD = 3
%Dの計算期間を指定してください。
◆ SLOWING = 3
スローイングの計算期間を指定してください。
◆ PRICE = HIGH_LOW
ストキャスティクスの適用価格を選択してください。
◆ MA_METHOD = Simple
スローイングの移動平均線の種類を選択してください。
「Simple」…単純移動平均線(SMA)
「Exponential」…指数移動平均線(EMA)
「Smoothed」…平滑移動平均線(SMMA)
「Linear weighted」…線形加重移動平均線(LWMA)
です。
コメントをお書きください
初級トレーダーK (金曜日, 10 5月 2024 23:41)
MT4のストキャスが正しい表示になり助かりました。感謝します。
最初はMT4標準を使っていましたが、スローイング値を変更すると%Kのラインが変化するのでおかしいと思っていました。自身にコードを修正する気力が無かったので検索してこちらのサイトに辿り着きました。ただ、一つだけ問題があり、最初はETH/JPYで使ってUSD/JPYにも挿入するとMT4が必ずフリーズします。複数の通貨ペアでは使えないようなコードになっているのでしょうか?
EA作成代行 (月曜日, 13 5月 2024 09:17)
>初級トレーダーKさん
>複数の通貨ペアでは使えないようなコードになっているのでしょうか?
いいえ、なっておりません。当方の環境でテストしてみましたが、複数通貨ペアで表示してもサクサク稼働するので、何か別の原因がありそうですね。
初級トレーダーK (月曜日, 20 5月 2024 01:39)
回答ありがとうございます。他のインジを外したり別条件で動作確認してみます。