def custom_tester(symbol, timeframe, frompos, pricesnumber, lag, num, markup = 0.0):
symbols_list = [symbol]
pr_test = pd.DataFrame()
for i in symbols_list:
rates = MT5CopyRatesFromPos(i, timeframe, frompos, pricesnumber)
pr_test[i] = [y.close for y in rates]
#creating price returns with lag
returns = np.array(np.log(1 + pr_test.pct_change(lag)))
returns = returns[lag:]
comp_returns = np.array(returns)
#
for i in range(num-1):
comp_returns = np.c_[comp_returns, returns]
#putting returns into dataframe
comp_returns = pd.DataFrame(comp_returns)
#shifting columns to use it as delayed features
for i in range(num):
comp_returns[i] = comp_returns.shift(i)
#deleting first 'num' rows with NaN's
comp_returns_shifted = pd.DataFrame(comp_returns[num:]).reset_index(drop=True)
testpr = np.array(pr_test[lag+num:])
X = pd.DataFrame(comp_returns_shifted)
p = model.predict_proba(X) # непрерывное предсказание классификатора (типа вероятность) result = np.array([0])
lastdeal = int(2)
lastpr = float(0.0)
for i in range (X[0].size):
# При первом входе
if lastdeal == 2:
# переводим непрерывное предсказание в номинальные значенияю Порог 0.5
if p[i][0] > 0.5:
lastdeal = 1else:
lastdeal = 0
lastpr = testpr[i] # сохраняем значение Close
continue
# при следующей итерации
if lastdeal == 1 and p[i][0] > 0.5:
lastdeal = 0 # это я не понял зачем
# При вычислении результата ошибка
result = np.append(result, result[-1] - markup + lastpr - testpr[i])
lastpr = testpr[i]
continue
# при последующей итерации
if lastdeal == 0 and p[i][0] < 0.5:
lastdeal = 1 # здесь не должно быть -1?
# и здесь ошибка
result = np.append(result, result[-1] - markup + testpr[i] - lastpr)
lastpr = testpr[i]
continue
plt.figure(figsize=(20,5))
plt.plot(result)
from sklearn.linear_model import LinearRegression
y = result.reshape(-1,1)
X = np.arange(result.size).reshape(-1,1)
lr = LinearRegression()
lr.fit(X,y)
# print(lr.score(X,y))
return lr.score(X,y)
Дополнение до единицы значения переменной. Значение выражения содержит 1 во всех разрядах, в которых значение переменной содержит 0, и 0 во всех разрядах, в которых значения переменной содержит 1. Сдвиг вправо Двоичное представление x сдвигается вправо на y разрядов. Если сдвигаемое значение имеет беззнаковый тип, то осуществляется логический...
ZZを使い始めてから15年ほどになります。このツールの欠点はすべてわかっている。他にもいろいろなことを知っているからこそ、上記のような話をしたのです。
---
システムが勝手に売買ポイントを探してくれるはずです。市場に出ているプレーヤーと競争するのではなく、市場そのものと競争するのである(何かトートロジーで申し訳ない)。
ZZとは15年ぐらい前から練習しています。このツールの欠点はすべてわかっている。そして、私はもっとたくさんのことを知っています。だから、上で私のアイデアをお話したのです。
---
システムが勝手に売り買いのポイントを特定すること。市場のプレーヤーと競争するのではなく、市場そのものと競争するのである(何かトートロジーで申し訳ない)。
Habraに「人のためのAI:技術に関するシンプルな言葉」という注目のタイトルで記事が掲載されましたhttps://habr.com/ru/company/jetinfosystems/blog/471626/
私は、この記事を読んで、すべては「機械学習」に帰結する、・・・と思い、昔の逸話を思い出しました。
ある学生が動物学の試験を受けています。彼はノミのことしか知らない。試験で、彼は犬に関する質問を受ける。
生徒が始める。
- 犬は哺乳類で、毛に覆われています。毛皮の中にノミがいる...それならノミのことでいいじゃないか...。
伝道師です。
- よし、若者よ、猫のことを教えてくれ。
学生です。
- 猫は毛に覆われた哺乳類である。毛皮にノミがいる...ノミについてはこちら...。
学生です。
- 魚の話をしよう。
学生です。
- 魚は哺乳類ではありません。毛皮がないんです。鱗で覆われていますが、もし毛皮で覆われていたらノミがいるはず...。
帰国子女研修のフィナーレ
ZZや追加のインジケータは全く使用しないでください。複数のtfからOHLCのみ(tfは4~6倍程度違うはず。 例えば、1-5-30-H3...最大1ヶ月のタイムフレーム。自分で選択)、そしておそらく早期警告のための刻み目を増やした。
最大と最小の価格別に畳み込み構造で。by OHLC - 再帰性構造。などなど、すべて中古価格です。これらの信号はさらに、例えばフルメッシュネットワークに供給されます。
また、フルメッシュネットワークの入力の1つに、リカレンスネットワークを通過した刻みを入力します。
入金増加のスピードを最適化する。その結果、メッシュは自らロット量を決定し、始値と終値を選択する必要があります。だいたいこんな感じです。
何をあわてているかというと、ネットワークの構造を描くだけでいいんです。そして、多くの質問を受けることになります。
しかし、それは単なる熱風に過ぎない。考え方は正しいが、方向性が間違っている。
帰国子女研修のフィナーレ
そして、自作のテスターを添付することができるのですが、非常によくある失敗を回避できているのでしょうか?またはプライベートメッセージで。
グッドラック
そして、自作のテスターを添付することができるのでしょうか。非常によくある失敗を回避できたのでしょうか。またはプライベートメッセージで。
グッドラック
jupiter notebookは使えるのか?
Jupiterのノートパソコンは使えるのか?
(笑) もちろんです。ありがとうございます(苦笑)。見てみて、また報告します
jupiter laptopは大丈夫ですか? 全部ダウンロードしました、コードは全部ビデオにあるので、秘密ではありません。
他人のコードを分解するのは大変な作業です。custom_tester()関数とハイライトされた部分だけを見てください。
計算結果の誤差は?各反復ごとに、前の値にresult +=testpr[i] - lastprを加えて 計算するのです。 現在のバーの終値と前のバーの終値の差です。理想的には、Close - Openとするのが良いのですが、それは問題ではありません。重要なのは、現在のバーの終値でシグナルを受信した場合、同じバーのシグナルdiff(Close)として考えることです。これは誤りです。 現在のバーのシグナルプレミアムは、次の バーのdiff(Close)です。 正しく結果を計算するためには、信号を1小節分右に移動させる必要があります。 p = model.predict_proba(X) を1小節分右に ずらす。Rでさらに計算したものをお見せします、私にはその方が簡単です。
最初の行で、予測を公称値(1,-1)に変換し、1小節分右にシフト し、NAを除去して、信号のベクトルを得る。2行目は、あらかじめ信号ベクトルと長さを揃えておいた、信号ベクトルとdiff(Close)ベクトルの積を累積的にまとめたものである。そうすれば、正しい結果が得られる。
グッドラック