MT用のPythonトレーディングシステムを作る。 - ページ 11

 
Yuriy Asaulenko:

私のシステムとA_K2さんのシステムが、チャンネルワークというほぼ同じ思想で構築されていることは、「理論から実践へ」を読まれた方はすでにご存じだと思います。ただ、私のは1年前に作られたものであることが違います。以前にも書きましたが、現在この戦略はPythonで実装され、いくつかのマイナーチェンジを加えながらテストされています。

特にアイデアがなかったので、いろいろなインジケータを開発したのですが、そのうちの一つが上の記事にあります。10個くらい作りました。その結果、私はヘッジホッグとヘッジホッグを掛け合わせることにしました。チャンネルでの作業とトレンドフォローを一つの一貫したシステムに統合するのです。まだ全体としては試していませんが、いくつかの要素を実践しています。すべてがうまくいっているように見えますが、まだいくつか疑問があります。実際に何が出てくるかはわからないし、何も出てこないかもしれない。楽しみに待っていよう。

Yuriyさん、こんにちは!Pythonの知識を深め、そこから学ぶために、あなたの開発の最新バージョンをダウンロードしたり、見たりしても良いですか?:-)
 

念のため、Pythonをお使いの方へのお知らせです。バージョン3.6の開発は終了し、セキュリティアップデートのみが行われる予定です。サポートは21までとする。

現在のバージョンは3.7です。現在のものは3.7.2ですが、私は最新のAnacondaで3.7.1を使っています。

実は、Anacondaを壊してしまい、新しいものをインストールしようとしたら、いろいろ変わっていることがわかりました。噂通り、バージョン3.7では高速化(私はまだ気づいていません、以前は大丈夫でした)、構文の更新、新機能の追加などが行われています。

 

ニューラルネットワークなどのMLにはまだ手を出していません。メーターに夢中です。私は、現在の市場のパラメータとその傾向を測定するためのツールを作っています。ニューラルネットワークやフォレストツリーなどのMlは、これらのパラメータを考え出すことも計算することもできないが、すべて使って汎化することができるということだ。

そして、こちらもPythonのツールです。

ここでは1分TFで、わずか3時間です。カーブは市場の活性度を測るものです。原則として、相場が動き出す前から市場の動きが大きくなり、良い指標、動き出しの前兆となる。活動量の減少の始まりは、ほとんどの場合、横ばいへの移行である。画像では、価格チャート上のMA(12)よりもさらに前に出ていることが分かります。

しかし、この指標は将来の動きの方向を決定するものではありません。MOブランチで行われているように、ポイントを交差させて小さな長方形を描き、方向をずらすだけの簡単なものなので、頭の中で描いて、ここにトレンド・インジケータがあります)).このアルゴリズムを見てみると、些細なことであるばかりか、不必要で有害なこと、つまり多くの指標パラメータを破壊していることがわかるだろう。そして、システムは指標の共同処理を行い、より最適な処理を行うことになります。

PS 私的にATRに近い指標であることを示唆されたことがあります。

実は、そうなんです、ボラティリティも測定しているのですが、計算方法が違うんです。私の理解では、これはボラティリティであり、私の考えでは、取引活動をよりよく反映するものです。

 
 

このフォーラムのある方の提案で、カルマンフィルターを 実装してみました。褒められ、褒められ・・・。

一般論として、目に見える結果が出るとは思えないと書いたが、それでも確認することにした。

私は、MA48と、このMAに基づいて作られたカルマンフィルタの図を持っています(正しい比較のためには、同じものを扱う必要があります)。

まあ、たしかに1.5倍くらいは速いですが、周期28~30のMAに置き換わる可能性は十分にありますね。完全に重なることはありませんが、MAとカルマン、どちらが良いとは言い難いですね。

結論:多くのトラブルを引き起こすが、ほとんど役に立たない。もちろん、トレードのためです。航海には従事していません)。

 

Pythonのモデルで多項式回帰が必要だった。もしかしたら、あなたにも必要かもしれません。

ソースコードです。

import matplotlib.pyplot as plt
import numpy as np 
from sklearn.preprocessing import PolynomialFeatures 
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Ridge
from sklearn.pipeline import make_pipeline

# Подготовка данных
x=np.linspace(-5,5,num=100)
Y =np.array([(0.13*x1**3-0.5*x1**2-0.8*x1-0.1) for x1 in x])
# график исходной кривой.
plt.plot(Y)
X=x[:, np.newaxis]
N=3
# полином регрессия
model=make_pipeline(PolynomialFeatures(N, include_bias=False), Ridge())
model.fit(X,Y)
y_plot = model.predict(X)
# накладываем поверх графика линию регрессии
plt.plot(y_plot)

グラフ

これは1つのグラフではなく、2つのグラフです。これは、元の曲線と回帰がともに次数3の多項式であることから予想されることで、両者は完全に重なっている。その誤差は1e-3のオーダーである。

 

もう一つの多項式回帰モデル。その誤差はすでに1.0e-15のオーダーに達している。

import matplotlib.pyplot as plt
import numpy as np 
from sklearn.preprocessing import PolynomialFeatures 
from sklearn.linear_model import LinearRegression
#from  sklearn.linear_model import Ridge
#from  sklearn.pipeline import make_pipeline

#  Подготовка данных
x=np.linspace(-5,5,num=100)
Y =np.array([(0.13*x1**3-0.5*x1**2-0.8*x1-0.1) for x1 in x])
plt.plot(Y)
X=x[:, np.newaxis]
N=3
#  расчет и вычисление линии регрессии
poly=PolynomialFeatures(N,include_bias=False)
Xm=poly.fit_transform(X)
reg = LinearRegression().fit(Xm, Y)
y_plot=reg.predict(Xm)
#  график линии регрессии
plt.plot(y_plot)

グラフは見せない、変わらない。上記の投稿をご覧ください。

 

今度は、MAが回帰線の代わりになるかどうか見てみましょう。写真をご覧ください。

緑:回帰線(3次多項式)、オレンジ:MA(350)。

選ぶのに時間がかかったが、密に合わせることもできなかった。このMA、もしかしたら最高の一枚かもしれません。ちなみに、チューナブル・インディケーターの有用性についても書かれています)。

今後、回帰線を使った実験を行うかもしれません。

 
Yuriy Asaulenko:

このフォーラムのある方の提案で、カルマンフィルターを実装してみました。たくさん褒めてもらって、たくさん褒めてもらって...。

- パバロッティの声は好きじゃないし、訛りもあるし、音程もとれないし...。

- パバロッティのコンサートにいらっしゃいましたか?

- いや、ラビノビッチは電話でそう言った。

 
TheXpert:

- だから、パバロッティは嫌いだったんですよ、訛りがひどいし、音程も取れないし...。

- パバロッティのコンサートに行ったことがありますか?

- いや、ラビノビッチは電話でそう言った。

もし、カルマンフィルターを トレーディングに導入するのであれば、記事を送ることができます。人為的な思考を排除した、古典的なアルゴリズムである。しかし、自分でプログラミングする必要があります。 この記事には、数学しか書かれていません。あなたは自分自身の意見を形成し、ラビノウィッツに導かれることはないでしょう)。

理由: