トレーダーツール、上級者向けのテクニカル分析のためのMQL4
はじめに
まず、トレーディングは確率の計算です。進展のエンジンとなる無為に関することわざは、それらのインジケーターやトレーディングシステムが開発された理由を明らかにします。トレーディングの多くの新人は「すでにできあがった」トレーディング理論を学習します。しかし、より多くの発見されていない市場の秘密があり、価格の動きの分析に使用されているツールは基本的に明らかにされていないテクニカルインジケーターや統計パッケージとして存在しています。マーケットの動向の理論への貢献において、Bill Williamsに感謝します。おそらくその漕ぎ手に頼るのは早すぎますが。
統計の維持
「どの色のロウソク足がEURUSDの1時間チャートにて使用されるか?」と自分自身に問うと、ブロックに毎回100を書き留める黒色のロウソク足を数え始めることができ、そして、白色のロウソク足を数えます。しかし、これを自動的に行う数行のコードを記述できます。基本的に、すべて論理的で、特別なことはありません。しかし、上記の質問に対する答えを明らかにしましょう。まず、ロウソク足の色の認識をシンプル化しましょう。
bool isBlack(int shift) { if(Open[shift] > Close[shift]) return (true); return (false); } //+------------------------------------------------------------------+ bool isWhite(int shift) { if(Open[shift] < Close[shift]) return (true); return (false); } //+------------------------------------------------------------------+
すでに記載されているコードを用いて、実験を続けます。
//EXAMPLE 1 //Calculate black and white candles double BlackCandlesCount = 0; double WhiteCandlesCount = 0; double BProbability = 0; for(int i = 0; i < Bars - 1; i++) { if(isBlack(i) == true) BlackCandlesCount++; if(isWhite(i) == true) WhiteCandlesCount++; } BProbability = BlackCandlesCount / Bars;
結果は興味深いもので、予想可能なものです:16000の52.5426%は白色です。MQL4コンパイラを用いて、ロウソクの周期性の問題を解決することもできます。例えば、もし黒色のロウソクがクローズされたら、白色を形成する確率はなんでしょうか?これはもちろん、様々な要因によりますが、統計結果を参照してみましょう。
//EXAMPLE 2 //Calculate seqences of 1st order //BW means after black going white candle double BW = 0; double WB = 0; double BB = 0; double WW = 0; for(i = Bars; i > 0; i--) { if(isBlack(i) && isWhite(i-1)) BW++; if(isWhite(i) && isBlack(i-1)) WB++; if(isBlack(i) && isBlack(i-1)) BB++; if(isWhite(i) && isWhite(i-1)) WW++; }
結果:
- 黒に続く白 - 23.64 %
- 白に続く黒 - 23.67 %
- 白に続く白- 21.14 %
- 黒に続く白- 20.85 %
ご覧の通り、同じ色のろうそくに続かれる確率は、正反対の色よりも少し少ないです。
MQL4と履歴データを用い、トレーダーは意味深い市場リサーチを行うことができます。ターミナルはヒストグラムの描写を行うことができます。この機能を用いて、WPRやRSIなどのインジケーターの値に沿ったロウソク足の色の配分を描写します。
//EXAMPLE 3.1 //Build histogram by RSI //RSI min/max - 0/100 double RSIHistogramBlack[100]; double RSIHistogramWhite[100]; for(i = Bars; i > 0; i--) { int rsi_val = iRSI(NULL,0,12,PRICE_CLOSE,i); if(isWhite(i)) RSIHistogramWhite[rsi_val]++; if(isBlack(i)) RSIHistogramBlack[rsi_val]++; } for(i = 0; i < 100; i++) { ExtMapBuffer1[i] = RSIHistogramBlack[i]; ExtMapBuffer2[i] = -RSIHistogramWhite[i]; } //EXAMPLE 3.2 //Build histogram by %R //%R min/max - 0/-100 double WPRHistogramBlack[100]; double WPRHistogramWhite[100]; for(i = Bars; i > 0; i--) { int wpr_val = iWPR(NULL,0,12,i); int idx = MathAbs(wpr_val); if (isWhite(i)) WPRHistogramWhite[idx]++; if (isBlack(i)) WPRHistogramBlack[idx]++; }
黒色と白色のロウソク足の数を数えるよりも、損切りと利食いの異なる値を持つ利益を生んだトレードと損失を生み出したトレードの統計を取る方がより客観的でしょう。以下はこの目的において役に立ちます。
int TestOrder(int shift, int barscount, int spread, int tp, int sl, int operation) { double open_price = Close[shift]; if (operation == OP_BUY) open_price = open_price + (Point * spread); if (operation == OP_SELL) open_price = open_price - (Point * spread); for (int i = 0; i<barscount; i++) { if (operation == OP_BUY) { //sl if (Low[shift-i] <= open_price - (Point * sl) ) return (MODE_STOPLOSS); //tp if (High[shift-i] >= open_price + (Point * tp) ) return (MODE_TAKEPROFIT); } if (operation == OP_SELL) { //sl if (High[shift-i] >= open_price + (Point * sl) ) return (MODE_STOPLOSS); //tp if (Low[shift-i] <= open_price - (Point * tp) ) return (MODE_TAKEPROFIT); } } return (MODE_EXPIRATION); }
その結果は皆さんにとって驚きのものでしょう。Kohonenマップ、ガウス分布、Hurst係数はさらにみなさんを驚かせるでしょう。 さらにたくさんの驚くべきものがあります。重要なこととして、トレーディングの本質や感覚を忘れてはいけません。
まとめ
基本的にすべてのトレーダーは自身のトレーディングテクニックを使用します。もちろん、システムの効果を絵的に表現することを妨げるものはありません。結果がないことも結果です。トレーダーが得た知識は、トレーディングの生産性を向上させます。
MetaQuotes Ltdによってロシア語から翻訳されました。
元の記事: https://www.mql5.com/ru/articles/1410
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索