それがすべて始まった方法
プログラミング( MetaTraderプラットフォーム用のプログラミング)の新しい方向をマスターして、私はもっと何かに手を試すというアイデアを思いつきました。 たとえば、通貨ペアの価格の動きを予測する非標準的な方法を見つけます。
最初は、すべての統計指標を使用してlibを実装しようとしましたが、途中でそれらがすでに存在することがわかりました。
それらの内容を分析した後、私は1つの簡単なことに気づきました...
上記のソースで説明および実装されているすべての機能は、 標準的な取引指標の基礎です 。
参照用
トレーディングインジケーターは、まず第一に、便利な形で、ほとんどの場合チャートの上または下に線の形で表示される経済的および数学的モデルです。 価格または他の市場データの変化に続いて描かれます。それらはすべて、統計と数学を基礎としています。すなわち、近似と補間、さまざまな注文の平均値の計算、分布ヒストグラムの計算などです。このような指標のデータは、時間に依存する価格の読み取りに基づいています。
数式の数は本当にすごかったです! アイデアはほとんど非現実的であるように思えたので、マットを脇に置くことにしました。 計算し、 定型的なアプローチを使用します。
どうでしたか
最初のステップ(失敗)
インディケーターの例に従うことを試みて、私はプログラムで歴史的な期間全体にわたって価格を分析しようとしました。 基本は、バーのサイズ、ボリューム、方向です。
![画像](https://habrastorage.org/getpro/habr/post_images/d5d/9db/12c/d5d9db12cbb764d0d2bf9432890c6acd.png)
結果はゼロでした! バーの特性のみを分析することにより、さらなるトレンドの挙動を予測することは事実上不可能です。
2番目のステップ(失敗)
さらに、いくつかのバーで構成される「パターン」を見つける試みが行われました。 つまり、今では、基本はテンプレートの概念、または私がそれを呼ぶマスク -でした。 また、新しい概念が導入されました- マスクの長さ 。
ネストされたループの「ピラミッド」を構築したので、6バーの長さの同様のマスクを探して、歴史を通して最初のパッセージを開始しました。 結果は私に衝撃を与えました! このプログラムでは、過去12年間で何も見つかりませんでした! 一致-0! 何が悪いの?
「dopilivaniya」アルゴリズムを数時間使用した後、アルゴリズムに含まれていなかったことが判明しました。 それはすべて計算の正確さについてです。 実際、この長さの同一のマスクを見つけることはほとんど不可能です。 ためらうことなく、外部パラメーターを追加します- 計算の最大精度 。 3バーのマスクと最大90%の精度でのみ、再度テストを試みています。 結果は再び衝撃的です。 206個のマスクが見つかりましたが、それらは1対1で配置されています。
![画像](https://habrastorage.org/getpro/habr/post_images/2ca/ee8/6ee/2caee86ee738d2f5b92f380d6dd5ba8b.png)
マスクの長さまたは精度を変更しようとすると、常にヌルの結果になり、その後、マスクの「ヒープ」になります。実際には何も予測できません。 そしてまた失敗。
3番目のステップは、待望の説明です。
統計に基づいて「明日はどうなるのか?」という質問に答えることができる「私の夢」指標を実現するための2つの絶対に失敗した試行の後、私は抽象化し、トレンドを処理するアルゴリズムを完全に変更することにしました。
私は直接価格分析のアイデアを残し、マットを接続しました。 デバイス、またはその実装- トレーディングインジケータ 。
本質的に、論理的に言えば、指標は市場の状態を包括的に表します 。 この文は議論することさえできず、これは理解できます。 問題に突入すると、使用する指標の種類が多ければ多いほど、トレンドの現在の状態をより正確に説明できることが明らかになります。
そして、ターニングポイントが来ました! 履歴データに基づいて価格値を取得できるだけでなく、妨げられることなく、履歴のどの時点でもトレンドの状態を計算できます。
質問の技術的な部分のみが残っています。
何が終わった
「第3ステップ」の結果として、トレンドの現在の状態を分析し、履歴内のパターン状況を検索するアルゴリズムが開発されました。
![画像](https://habrastorage.org/getpro/habr/post_images/f55/abd/7f8/f55abd7f87fc4bc25a61c6c5bf07ee66.png)
画面上に、プログラムの例、つまり見つかったマスクの1つ。 次の2つの指標によって特徴付けられます。
1. 精度 。相関係数の計算式に従って計算されますが、出力データ範囲はわずかに調整されます(<0は反対の傾向であるため、左の値のみ> 0)。
2. ボラティリティの比率 、現在のマスクと見つかったマスクの高さに基づいてこのインジケーターを計算します。したがって、パーセント> 0の値を取得します。
これらの指標に加えて、さまざまな分散、線形および標準偏差、ランク相関、一致なども考慮されましたが、予測の計算には使用されませんでした。 トレーディングインジケーターの形で(近似の有無にかかわらず)既に間接的に埋め込まれています。 ロジックを理解しやすくするために、図を見てください。
![画像](https://habrastorage.org/getpro/habr/post_images/ec7/b34/c46/ec7b34c462c45b8f7dc438fe0e00618d.png)
1.価格は、ブローカーによって形成および提供されます。
2.価格値を読み取るインジケーターは、統計値(グラフ上の線またはヒストグラムの形式)を提供します。これらはすべてオープンソースコードを持ち、どの取引端末でもデフォルトで使用可能です。
3.トレンド状態は、多くの標準インジケータの値に基づいて計算されます(そのリストは、タブレットの右側のスクリーンショットにはっきりと表示されます)。 各インジケーターの計算により、トレンドの方向の分析を簡素化できます:上-緑(1)の長方形、下-赤(0)。 このような単位とゼロ(78記号)の組み合わせをトレンドの状態と呼びます。
4.私の計算は、上記の条件の単純な分析に基づいています。 価格と時間に関するデータを受け取った後、市場のさらなる動きを見て、それらの合計値、ボラティリティ、および算術平均を計算します。
ご覧のとおり、複雑なことは何もありません。
このプログラムは、2012年3月15日からのアイデアのコンペティションで良好な公開予測を成功裏に示しています。 この予測の指示に従うと、2012年2月15〜16日に1,500ポイント以上を獲得することができました。 現時点では、コードの大幅な改善と最適化が行われており(計算が非常に困難であることが判明したため)、まもなく公開します。
結論
たくさんのレーキを踏んで、自信を持って、初心者のトレーダー/研究者/プログラマーにいくつかのヒントを提供できます。
1.特定の価格値を分析しようとしないでください。
2.価格は、供給、需要、仲介のトリックの関数です。
3.トレーダー、ブローカー、プログラマーによる予測問題の調査にアプローチしてみてください。
あなたのための成功した予測!
地下室
1.インジケーターの簡単な定義は、サイトから取得されます: http : //infofx.ru/
2.ソースコードリンクは、私に知られていない人々の決定につながります。 しかし、私はあなたを保証することができます、これらの種類はあなたのコンピュータを傷つけることができません、なぜなら これらはプレーンテキスト形式のファイルです。
3.残念ながら、ゼロカルマは「金融」での書き込みを許可しません。 このハブにトピックを適合させました。 できるだけ早く-転送します。
4.この問題について話し合うことができます。 コメントや追加を歓迎します。