記事「MQL5とPythonで自己最適化エキスパートアドバイザーを構築する(第3回):Boom 1000アルゴリズムの解読」についてのディスカッション

 

新しい記事「MQL5とPythonで自己最適化エキスパートアドバイザーを構築する(第3回):Boom 1000アルゴリズムの解読」はパブリッシュされました:

本連載では、動的な市場状況に自律的に適応できるエキスパートアドバイザー(EA)を構築する方法について説明します。本日の記事では、Derivの合成市場に合わせてディープニューラルネットワークを調整してみます。

Derivの合成市場をすべて個別に分析します。まずは最も有名な合成市場であるBoom 1000から始めます。Boom 1000は、その不安定で予測不可能な動きで有名です。この市場は、ゆっくりとした短い同サイズの弱気ローソク足と、その後に突然、超高層ビルサイズの強気ローソク足が続くという特徴があります。強気ローソク足は、ローソク足に関連付けられたティックが通常クライアント端末に送信されないため、緩和するのが特に難しく、すべてのストップロスが毎回確実にスリッページで突破されます。

そのため、成功しているトレーダーのほとんどは、Boom 1000を取引する際に買いの機会のみを狙うという緩やかな戦略を立てています。Boom 1000はM1時間枠で20分間下落する可能性があり、その動き全体を1本のローソク足で再現する可能性があることを思い出してください。したがって、その圧倒的な強気の性質を考えると、成功しているトレーダーは、売りセットアップよりもBoom 1000の買いセットアップに重点を置くことで、これを有利に利用しようとします

作者: Gamuchirai Zororo Ndawana

 
MetaQuotes:
最も有名なBoom1000から始めて、すべてのデリバティブ合成市場を個別に分析する。

記事をありがとうございました!長い間、これらの指数に注目してきましたが、どの側面からアプローチすればよいのかわかりませんでした。

これからもよろしくお願いします!

 
#モデルを設置する
model = MLPClassifier(hidden_layer_sizes=(30,10),max_iter=200)

#モデルの相互検証
for i,(train,test) in enumerate(tscv.split(train_X)):
    model.fit(
        train_X.loc[train[0]:train[-1],:],
        ohlc_train_y.loc[train[0]:train[-1]]
    )
    validation_accuracy.iloc[i,0] = accuracy_score(
        ohlc_train_y.loc[test[0]:test[-1]],
        model.predict(train_X.loc[test[0]:test[-1],:])
    )

---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[25], line 5
3 #Cross validate the model
4 for i,(train,test) in enumerate(tscv.split(train_X)):
----> 5 model.fit(train_X.loc[train[0]:train[-1],:],ohlc_train_y.loc[train[0]:train[-1]])
6 validation_accuracy.iloc[i,0] = accuracy_score(ohlc_train_y.loc[test[0]:test[-1]],model.predict(train_X.loc[test[0]:test[-1],:]))

File c:\Python\ocrujenie\.ordi\Lib\site-packages\sklearn\base.py:1389, in _fit_context.<locals>.decorator.<locals>.wrapper(estimator, *args, **kwargs)
1382 estimator._validate_params()
1384 with config_context(
1385 skip_parameter_validation=(
1386 prefer_skip_nested_validation or global_skip_validation
1387 )
1388 ):
-> 1389 return fit_method(estimator, *args, **kwargs)

File c:\Python\ocrujenie\.ordi\Lib\site-packages\sklearn\neural_network\_multilayer_perceptron.py:754, in BaseMultilayerPerceptron.fit(self, X, y)
736 @_fit_context(prefer_skip_nested_validation=True)
737 def fit(self, X, y):
738 """Fit the model to data matrix X and target(s) y.
739 740 Parameters (...) 752 Returns a trained MLP model. 753 """
...

476 "Found input variables with inconsistent numbers of samples: %r"
477 % [int(l) for l in lengths]
478 )
ValueError: Found input variables with inconsistent numbers of samples: [4139, 4133]

Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings...

いくつかのツールを試しましたが、どのツールでも、入力データ(X)とターゲット変数(y)の次元が不一致のため、 このモデルではエラーが 発生しました。

 
Janis Ozols # :

記事を本当にありがとう!私は長い間、このようなインデックスを分析してきましたが、どこにアプローチすればいいのかわかりませんでした。

これからもよろしくお願いします!

どういたしまして、ジャニス。

必ず続けます。取り上げたいことはたくさんあるけど、時間を作るよ。

 
Aliaksandr Kazunka # :

いくつかのツールを試しましたが、どのツールでも、 入力データ (X) とターゲット変数 (y) のサイズが一致しないため、 あなたのモデルは エラーを 出します。

Aliaksandrさん、こんにちは。代わりに、コードをテンプレートガイドとして使用し、必要な調整をあなた側で行うことができます。また、さまざまなインジケータを試して、記事の一般的なアイデアのさまざまなバリエーションを試してみることをお勧めします。そうすれば、グローバルな真実をより早く理解することができるでしょう。

 
Aliaksandr Kazunka #:

いくつかのツールを試したが、いずれも入力データ(X)とターゲット変数(y)のサイズの不一致のためにモデルがエラーになってしまう。

# そうしないと、フィルタリングされたデータがある場合、インデックスが再構築される。
X = pd.DataFrame(RobustScaler().fit_transform(boom_1000.loc[:, predictors]), columns=predictors, index=boom_1000.index)