Piligrimmのソフトウェア製品 - ページ 4

 

をピリグリムへ

ありがとうございました。
とてもよく説明していただきました。
プログラムでメソッドを実装するには十分です。

 

トレーディングシステムを構築するための指標の使用例として、「 トレーディングシステムの構築例 」で 紹介したニューラルネットワークトレーディングシステムに実装した戦略を簡略 化して紹介します。週末以降、この取引システムのデバッグを開始し、完成後、インジケータの使用例としてこのスレッドに掲載する予定です。 のトレーディングシステムでは、いくつかのインディケータを使用しています。例として 、「Kristi_GrafModelWav」と「Indicator Trend」の2つだけを 使用した戦略を紹介します。しかし、その前に、これらの指標の原理について少し述べておこう。

"Kristi_GrafModelWav" -以下の形式の多項式を基に構築されて います。

GR1[i][0] = 0.6*(0.5*(-0.00000808108 +1.64312*(SD[i+5][4]-SD[i][4]) -0.387988*(SD[i][1]-SD[i][2]) +0.598535*(SD[i][2]-SD[i][3]の場合)

-0.468099*(SD[i+1][3]-SD[i][2])-0.461584*(SD[i+1][4]-SD[i][1])+SD[i][3])+0.5*((SD[i+2][1]-SD[i][3])-(SD[i+3][1]

-SD[i][4])+0.00000000861016*(SD[i][2]-SD[i][3])+(SD[i+19][3]-SD[i][4])+0.3*SD[i][3]+0.7*SD[i][4]))+0.4*((SD[i][1]

-SD[i+10][3])-(SD[i][1]-SD[i+10][4])+0.00000000861016*(SD[i][2]-SD[i+10][3])+(SD[i][3]-SD[i+10][4])+SD[i][4]);.

SD信号は 気配値履歴を所定の深さまで走査し、その幅を変化させる「スライディングウィンドウ」の原理で得られます 多項式の学習は EURUSD の 相場履歴 M1 に基づいて 得られたシグナルで行わ れましたSD信号は 異なるパラメータによって調整されたウェーブレット変換群に 通された。 学習は、線形回帰アルゴリズムと多項式に還元された形式的なニューラルネットワークを用いて 行われた。 学習用多項式の目的は、過去の履歴から遅延した引数を含めることで、入力信号の情報量を増やし、微小な妨害要因をろ過することである。学習用多項式のもう一つの目的は、引用符に基づいて合成された信号群を作成し、主信号の子信号の特徴を持ち、その変化の可能性のあるスペクトルを重ねることである。これは、この信号群を入力するニューラルネットワークが、入力信号に含まれるさまざまな高調波を「キャッチ」し、質的な学習を行う機会を確保するためである。 EURUSD M 1でトレーニングを 行いましたが、このインディケータはどのような商品、どのような期間、どのような市場でも機能 します。インジケーターは40個の合成信号群を形成しています。

「Indicator Trendは、私が 開発した閾値サンプリングのアルゴリズムをベースに、相場の変化のダイナミズムに比例してステップを再構築して いく仕組みになっています。 このようなサンプリングの結果、 信号の極点にのみ対応するサンプルが得られ、信号は圧縮され、ノイズや重要でない揺らぎが除去されるため、深いフィルタリングが行われます。各バーでの信号再構成は、隣接する2つのサンプリング点間の補間により、 。上の写真で、赤い線は、各バーで再構成された信号を見ることができ、ブレークポイントは、サンプリングポイントに対応しています。I ndicator Power」と「Indicator Channel」の インジケーターも同じ原理で作られて います。このような信号の圧縮により、比較的少ないサンプリング点数で引用履歴の深い考察を得ることができ、離散的なサンプルを入力に与えた場合のニューラルネットワークの学習時間を大幅に短縮し、精度を向上させることができる。

2つの指標をもとにトレーディングシステムを構築する戦略のエッセンスは以下の通りです。 入力信号のソースとして 指標 「Kristi_GrafModelWav」を、 ニューラルネットワークの学習用ソース信号として 指標 「Indicator Trend」を使用する。 トレーニングの目的は、将来のサンプリングポイントを予測し、値動きの方向とそのおおよそのレベルを決定することである。これらの指標を同期させるために、入力サンプルLengthSampleの長さ を同じに設定して みましょう。インジケーターの設定で、アレイの先頭からインデックス方向にデータをディスクに保存する許可を設定しましょう。イ ンディケータの設定 「Indicator Trend」では、離散サンプルの保存モードを設定し、離散ポイントでの価格水準(画像ではブレイクポイント)とサンプルの序数LengthSampleがディスクに書き込ま れます、インディケータの動作の静止モードを設定 しましょう。このとき、新しいバーが来るたびに履歴全体が再計算され、サンプルの全長をカバーする配列 LengthSample が形成されます。インディケータ 「Indicator Trend」で作成された配列に 、ニューラルネットワークを学習させるデータとして使用されるカウントを受け取りました。ここで、ニューラルネットワークの入力に供給される配列を形成する必要があります。K risti_GrafModelWav"インジケータは その出力信号に対応する40列からなる配列で、長さが LengthSampleであることをディスク上に 書き込む。この配列から 、"Indicator Trend" インジケータのサンプリングポイントに対応する行を選択する必要が あります。これは、"Indicator Trend "インディケータから得られる配列を使って簡単に行う ことができ、 その第2列にはサンプリング点のサンプルの序数が含まれて います。 これら2つの指標の入力サンプルの長さは同じなので、これらの数値は指標 「Kristi_GrafModelWav 」の配列 に対応 します。指標 「Kristi_GrafModelWav」の適切なラインを選択 することにより 、指標 「Kristi_GrafModelWav」 データ のサンプリングを 指標 「指標トレンド」と同期して 実行 することになります。 こうして、ニューラルネットワークを学習させるための入力配列を得ることができた。さて、これからニューラルネットワークの学習を行います。あとは学習させたニューラルネットワークを使って、リアルタイムに計算を行い、予測を行う必要があります。そ のためには、"Kristi_GrafModelWav "インジケーターの設定で LengthSample = 1を設定 します。各新しいバーの到着時に、信号の40の値すべてを含む1行からなる配列がディスクに書き込まれます。 学習アルゴリズム に従って、「Indicator Trend」指標の新しい離散化ポイントが形成される瞬間に、ニューラルネットワークを計算する必要が あります。 これらの瞬間を決定 するためには、「Indicator Trend」インジケータ で形成される2つのグローバル変数を使用するだけで よいのです。 この2つのグローバル変数の値が相対的に変化した時点で、新しいサンプリングポイントが形成されたことを意味する。こ のとき、 ディスクからインジケータ 「Kristi_GrafModelWav 」のデータ配列を読み出し 学習済みニューラルネットワークの入力に送り込み、計算を実行する 必要が あります。前回のサンプリングポイントが形成された瞬間に、次のサンプリングポイントの予測を得ることができるのです。それが、私が提案した指標に基づくトレーディングシステムの戦略で、最もシンプルな形です。すべての指標を使用して、より複雑な戦略を構築することができます、それは予測の精度と信頼性を向上させます。

 

インジケーターの機能を理解するために、「Indicator Trend」 インジケーターを例として使用する手順を説明します。ご意見、ご感想、修正・追加提案などありましたら、喜んでお聞きします。もしご興味があれば、他のインジケーターの使い方もご説明します。

=======================================================================================================

指標 トレンド指標

このインディケータ「Indicator Trend」は 、インディケータを装着した計測器のトレンドモデルを作成するためのものです。「インディケータ・トレンド」は、私が開発した閾値サンプリングのアルゴリズムをベースに、相場の変動に比例してステップを再構築することができます。このようなサンプリングの結果、 、信号の極点にのみ対応するサンプルが得られ、信号が圧縮され、ノイズや重要でない揺らぎを除去するディープフィルタリングが行われます。各バーでの信号は、隣接する2つのサンプリング点間の補間により、 再構成される。

このインディケータは、どのような楽器、どのような期間、どのような市場でも機能します。このインディケータは、機械的な取引システムの設計や、手動での取引に使用することができます。

このインジケータは、新しいバーの到着時にデータを処理します。このインジケーターは、スタティックとダイナミックの2つのモードで動作します。静的モードでは、指定した履歴サンプルの全長についてトレンドモデルを構築し、新しいバーの到着時にその全長を再計算して、指定した長さのテンプレートを作成し、チャート上に表示したり、ディスクに保存したりすることができます。ダイナミックモードでは、新しく受信したバーに対してのみ値を計算し、新しいデータが到着するごとに計算値を徐々に蓄積していきます。処理される履歴の長さは、"Properties - Input parameters" タブの"LengthSample" 変数で決定され、履歴の長さは任意である。

インジケータで計算された信号値をディスクに保存し、設定に対応したパーミッションが可能な2つのバリエーションがあります。

1).各バーに信号値を保存。

2).値の保存のみ サンプリングポイント (トレンドブレーク)。

最後の2つのサンプリングポイント の信号値もグローバル変数に保存されます。グローバル変数の名前を変更することができ、それはあなたが1つの楽器に異なるしきい値レベルの指標の任意の数を設定し、グローバル変数を通じて Expert Advisorまたは他の指標との通信を整理することができます。インジケータが動作した場合、閾値係数を再構築することでパラメータを最適化することが可能である。 具体的な閾値の選択は、どの商品とタイムフレームにインジケータをインストールするか、また、このインジケータをベースにどの取引戦略を実行するかによって決まります( )。

計算結果は、インジケータがインストールされているウィンドウの機器のチャート上に表示されます。

MetaTrader 4ウィンドウのチャートにインジケータをインストールする際に、「プロパティ - 入力パラメータ」タブで操作パラメータを設定します。


インジケーター・トレンド」の インプットパラメーターは以下の通りです。

1). LengthSample- 処理された履歴の長さです。

2).Threshold - 閾値係数。

3).DynamicMode - ダイナミック/スタティック表示器のモードです。

4).SaveFileData - インジケータによって計算されたデータをディスクに書き込むことを許可するフラグです。

5).FileNameData - データを保存するためのファイル名です。

6).SaveFilePointsFracture - インジケータによって計算されたサンプルポイントをディスクに書き込むことを許可するフラグです。

7).FileNamePointsFracture- サンプルポイントを保存するためのファイル名.

8).Subscripting_MT4 - ディスクに書き込む配列のインデックスの方向です.

9).NameGlobalVariable0 - 最後のサンプルポイントの値を保存するグローバル変数の名前です。

10).NameGlobalVariable1 - サンプリングの最後尾のポイントの値を保存するグローバル変数の名前です。


1).処理される履歴の長さは、"LengthSample"変数によって決定される。最大サイズに制限はありません。同時に、このインディケータが動作するシンボルのウィンドウとヒストリーに、「LengthSample+ 1」よりも少ない数のバーが存在しないことが必要です。

2).Threshold Factor, サンプリングの閾値を "ポイント "単位で設定します。

3).DynamicModeは、インジケーターの動作モードを動的か静的かの選択を決定するフラグで、DynamicMode = 1なら動的モード、DynamicMode = 0 なら静的モードとなります。ダイナミックモードでは、履歴全体を再計算するのではなく、新しいバーだけが処理されるため、インジケータの動作を高速化することができます。同時に計算値も蓄積されます。 ディスクへの書き込みが有効な場合と同様に、計算の結果蓄積されたデータのみがファイルに保存され、チャートに表示されます。静的モードでは、新しいバーが来ると、履歴全体が"LengthSample"の深さだけ再計算されます。ディスクへの書き込みを有効にすると、処理した履歴の全長がファイルに保存され、チャートに表示されます。

4).SaveFileData フラグ は、値が 0 のとき、それ以上のデータ処理が必要でなければ、インジケータで計算したデータをディスクに書き込むことを禁止する。さらに処理をしてデータをディスクに保存する必要がある場合は、SaveFileData を 1 に設定する必要があります。

5). FileNameData -データがディスクに保存されるファイル名です。任意の名前を使用することができますが、ファイルの拡張子は変更しないでください。csv でなければ、ファイル書き込み時にエラーが発生します。保存される配列の最大サイズは "LengthSample" で決まりますが、その中の行数は"LengthSample" よりも、最後のサンプリング点とゼロバーを隔てるバーの数だけ少なくなる可能性があります。

6).SaveFilePointsFracture フラグは、値が0のとき、それ以上のデータ処理が必要でなければ、インジケータで計算されたサンプリングポイント の価格をディスクに書き込むことを禁止する。その後のデータ処理、ディスクへの保存が必要な場合は、SaveFilePointsFracture の 値を 1 に設定する。

7).FileNamePointsFracture- サンプリングポイントの価格の値が保存されるファイルの名前と、処理された履歴"LengthSample" の先頭からのバーのシリアルナンバー、 各サンプリングポイントに対応します。 このファイルのレコード数は、設定された閾値比で「LengthSample」に等しいヒストリー長で得られたサンプリング点数 によって決定される。ダイナミックモードでは、インジケーターの開始以降に形成されたサンプリングポイントの数です。また、各サンプリングポイントに対応するバーのシリアルナンバーは、インジケータースタートの時点から算出されます。

8).変数 Subscripting_MT4 - ディスクに書き込まれる配列のインデックスの方向を定義します。これを1に設定すると、インデックスの方向はMetaTrader 4で使用されているものに対応し、先頭からゼロまでとなり、0に設定すると、標準のインデックスはゼロから先頭までとなります。FileNameDataと FileNamePointsFractureの 両方を参照する。

9).NameGlobalVariable0 - 最後のサンプリングポイントにおける価格値を格納するグローバル変数の名前です。

10).NameGlobalVariable1 - サンプリングの最後尾のポイントで価格値を保存しているグローバル変数の名前です。


インジケータが動作すると、チャートの左上に、処理した履歴の長さ "LengthSample",しきい 値, インジケータ "AmountRunning" で動作したサイクル数に関する情報が表示されます。


アーカイブの中身をすべて解凍するIndicator Trendrar and installIndicator Trend.ex4 indicatorin the folder \expertsindicators, restartMetaTrader 4 terminal, after that indicator"Indicator Trend" appears in window of custom indicators \Navigator´indicators/User Indicators, it can be installed on chart inMetaTrader 4 window.This indicatorは、MetaTrader 4のウィンドウにインストールされます。

 

上記のインジケーター「Indicator Trend」の操作方法について質問がなければ、他のインジケーターの操作方法は説明せず、動作原理についてのみ抜粋して説明します。Kristi_GrafModelWav"Indicator Trend "については、取引戦略の例で行ったので、"Indicator Power" についてあげてみます。 および"Indicator Channel" .

=====================================================================================================

インジケーター 「Power」インジケーターです。

インディケータ Power」が開発された根拠となる考え方 は、現在市場で起こっている強気と弱気のトレンドの争いをダイナミックにトレースすることです。強気トレンドが優勢な場合、新しいバーが到着すると、インジケータはゼロバーでトレンドの強さに比例して上昇し、弱気トレンドが優勢な場合は - それぞれ下降します。トレンドがどちらかにわずかに振れると、指標値は直線を示し、優勢なトレンドの強さに比例して最後のブレークポイントからその長さに沿ってゆっくりと移動し、どちらかのトレンドが大きく成長すると、対応する側にジャンプして新しいブレークポイントを形成します。"Indicator Power " は、私が開発した閾値サンプリングのアルゴリズムを用いており、相場変動のダイナミクスに比例してステップが再構築される仕組みになっています。この のサンプリングの結果、信号の極値のみに対応する測定値が得られます。インジケータが示すシグナルレベルは、その時点の支配的なトレンドの強さによって決まり、次のサンプリングポイントが形成されてこのレベルが固定されるまで、トレンドの強さに比例してゆっくりと変化していきます。

インジケーター 「Channel」インジケーターです。

市場には2つのトレンドがあり、上昇トレンドは強気であり、下降トレンドは弱気である。これらのトレンドはそれぞれ異なる性格を持っていますが、それでも互いに依存し合い、影響し合っています。この指標は、この2つのトレンドを一般的な見積もりデータの流れから切り離し、時系列で形式化し、両者の 発展と相互影響、そして闘争の結果を反映させるという考えに基づいています。Indicator"Indicator Channel" トレンドチャネルを作成し、その行動のダイナミクスを反映し、市場のトレンドの方向を外挿する。 上の線 は弱気の影響を受けた強気トレンドの性格を示し、下の線は強気の影響を受けた弱気トレンドの性格を示し、真ん中の線は彼らの闘争の結果であり、実際に 、引用符フローのサンプリングの指定レベルに対応するトレンド高調波の一つである。サンプリングレベルの違いにより、振幅-周波数特性の異なる高調波を分離することができます。 "Indicator Channel " は、私が開発した閾値サンプリングアルゴリズムをベースに、相場の変動に比例したステップを再構築して使用しています。このようなサンプリング の結果、各トレンドの信号の極点に対応するサンプルを個別に得ることができる。シグナルレベルは、インジケータの3つのライン()のそれぞれについて、対応するトレンドの力学によって決定され、次の離散化ポイントが形成されてこのレベルが固定されるまで、トレンドの強さと、他のものより1つの普及の性質に比例してゆっくりと変化します。

チャネルの狭窄と拡大、上下線の発散角度、変曲点、チャネルの中心線が反転する瞬間など、インジケータの有益な構成要素があります。新しいバーが受信されると、インジケータは変化する市場動向を動的に反映し、最後のブレイクポイントから最初のバーまでの光線を再構築します。

 

この価格設定は高すぎると思います。有名なソフトウェア製品に匹敵するくらいですから、御社の開発は素晴らしいのでしょうが、私たちは御社の言葉でしかそれを知ることができません。しかし、購入のために提供される指標は、同じ精神で書かれている場合、私の意見では、多くの実験を必要とし、それらに基づいてExpert Advisorの構築は、おそらく少なくとも "エルブラス "コンピュータが必要です:)).それをベースに初歩的なExpert Advisorを使おうとしても、PCが弱すぎて、全履歴にほとんどハァハァできないので、断念せざるを得なかった--というのが、私の言い分です。

 
lovova:

この価格設定は高すぎると思います。有名なソフトウェア製品に匹敵するくらいですから、御社の開発は素晴らしいのでしょうが、私たちは御社の言葉でしかそれを知ることができません。しかし、購入のために提供される指標は、同じ精神で書かれている場合、私の意見では、多くの実験を必要とし、それらに基づいてExpert Advisorの構築は、おそらく少なくとも "エルブラス "コンピュータが必要です:)).これをベースに簡単なExpert Advisorを使おうとしたのですが、私のあまりに弱いパソコンではほとんど喘げなかったので断念し、ご存知の通り全体のストーリーをテストするために、最適化しました。

小石をありがとうございます。私は、トレーディングソフトの製品の価格設定基準を持っています。手間をかけた分、内容に見合った価格設定になっていると思いますので、感謝しています。指標について書いてきたことから明らかなように、指標はプリミティブなタイプではなく、コードは最適化されていてそれほど大きくはないものの、その動作のアルゴリズムはかなり複雑で、最新のものにするのに数年を費やしました。例えば、良いレベルのExpert Advisorと比較すると、価格は同等であり、市場分析の効果的なアルゴリズムを作成するよりも、標準的なブロックの大部分が占められたExpert Advisorを書く方がはるかに簡単である。まだ "名前 "はありませんが、この記事やいくつかの参加したトピックから判断すると、この業界では知らない人はいないし、それなりの経験もあります。これらの指標を一緒に買うべきだとは言いません。異なる市場のアルゴリズムを多面的に分析するための補完的なツールとして開発され、一緒に使うことで最も効果的だと言っているのです。しかし、例のように別々に動くことも、ペアで動くことも可能です。保証については、これは別の問題ですが、私が書いたとおりに動くことは保証しますが、それらを使って利益を上げるかどうかは、それらを使って構築する戦略次第です。作品を使いこなす上で困ったことや困難なことがあれば、もちろん技術的なサポートをします。

今提案しているものは、クリシティのインジケーターとは比較にならない、MQLをマスターするために書き始めた、私にとって初めての言語で書いたコードなのです。まだ言語や関数の可能性を知らないし、最適に書くという課題も設定せず、ただただ勉強していました。もちろん、見た目も機能もすべて変わっている。

 

インジケーターのデモ版を送って、動作を確認してほしいというメールをいただくことがあります。残念ながら、体験版は持っていません。それを部分的に補うために、「Indicator Trend」、「Indicator Power」、「Indicator Channel」の3つの指標がどのように動的に動作するかを示すために、数日間、私のデモ端末から取ったスライドの形でそれらの動作を実演することにしました。今回は、画像で紹介しすぎず、相場状況の変化や指標 値の変化を反映したスライドのみを紹介します。ターミナルとフォーラムとの時差は2時間です。1枚目の写真

 

2枚目のスライドは、「Indicator Trend」インジケーターの閾値を少し上げてみました、これで良しとします、他は調整しません。