Diskussion zum Artikel "Selbstoptimierender Expert Advisor mit MQL5 und Python (Teil III): Den Boom-1000-Algorithmus knacken"

 

Neuer Artikel Selbstoptimierender Expert Advisor mit MQL5 und Python (Teil III): Den Boom-1000-Algorithmus knacken :

In dieser Artikelserie erörtern wir, wie wir Expert Advisors entwickeln können, die sich selbständig an dynamische Marktbedingungen anpassen. Im heutigen Artikel werden wir versuchen, ein tiefes neuronales Netz auf die synthetischen Märkte von Derivativen abzustimmen.

Wir werden alle synthetischen Märkte von Deriv einzeln analysieren, beginnend mit ihrem bekanntesten synthetischen Markt, dem Boom 1000. Der Boom 1000 ist berüchtigt für sein volatiles und unberechenbares Verhalten. Der Markt ist durch langsame, kurze und gleich große Abwärtskerzen gekennzeichnet, auf die in unregelmäßigen Abständen heftige, wolkenkratzergroße Aufwärtskerzen folgen. Die Aufwärtskerzen sind besonders schwierig zu entschärfen, weil die mit der Kerze verbundenen Ticks normalerweise nicht an das Kundenterminal gesendet werden, was bedeutet, dass alle Stop-Losses jedes Mal mit garantiertem Slippage durchbrochen werden. 



Daher haben die meisten erfolgreichen Händler Strategien entwickelt, die darauf basieren, beim Handel mit dem Boom 1000 nur Kaufgelegenheiten wahrzunehmen. Erinnern Sie sich daran, dass der Boom 1000 auf dem M1-Chart 20 Minuten lang fallen kann und diese gesamte Bewegung dann in einer Aufwärtskerze auf den Anfang zurückspringen kann! Angesichts des übermächtigen steigenden Charakters des Boom 1000 versuchen erfolgreiche Händler, dies zu ihrem Vorteil zu nutzen, indem sie einem Kauf-Setup beim Boom 1000 mehr Gewicht beimessen als einem Verkaufs-Setup.

Autor: Gamuchirai Zororo Ndawana

 
MetaQuotes:
Wir werden alle synthetischen Derivatemärkte einzeln analysieren, beginnend mit dem bekanntesten - Boom 1000.

Vielen Dank für diesen Artikel! Ich beobachte diese Indizes schon seit langem, wusste aber nicht, von welcher Seite ich sie angehen sollte.

Bitte machen Sie weiter!

 

#Installieren Sie das Modell model = MLPClassifier(hidden_layer_sizes=(30,10),max_iter=200) #Cross-Validierung des Modells 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], Zeile 5 3 #Cross-Validierung des Modells 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],:]) Datei 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 mit config_context( 1385 skip_parameter_validation=( 1386 prefer_skip_nested_validation oder 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 """Passe das Modell an die Datenmatrix X und Ziel(e) y an. 739 740 Parameter (...) 752 Gibt ein trainiertes MLP-Modell zurück. 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]

Die Ausgabe ist abgeschnitten. Als scrollbares Elementanzeigen oder in einem Texteditor öffnen . Passen Sie die Einstellungen für die Zellenausgabe an ...


Ich habe mehrere Tools ausprobiert, und bei jedem von ihnen gibt Ihr Modell einenFehler aufgrund von Unstimmigkeiten zwischen den Größen der Eingabedaten (X) und der Zielvariablen (y).
 
Janis Ozols # :

Vielen Dank für diesen Artikel! Ich analysiere diese Indizes schon seit langem, war mir aber nicht sicher, wie ich sie angehen sollte.

Bitte machen Sie weiter!

Gern geschehen, Janis.

Ich werde auf jeden Fall fortfahren. Es gibt eine Menge zu behandeln, aber ich werde Zeit schaffen.

 
Aliaksandr Kazunka # :

#Installieren Sie das Modell model = MLPClassifier(hidden_layer_sizes=(30,10),max_iter=200) #Modell Kreuzvalidierung 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 ], :])) Datei 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 " " " Anpassung des Modells an die Daten Matrix
...
476 "Eingabevariablen mit inkonsistenter Anzahl von Stichproben gefunden: %r " 477 % [ int (l) for l in lengths] 478 ) ValueError : Eingabevariablen mit inkonsistenter Anzahl von Stichproben gefunden: [4139, 4133]

Die Ausgabe ist abgeschnitten. Anzeige als scrollbares Element oder Öffnen in einem Texteditor . Passen Sie die Einstellungen für die Zellenausgabe an .. .


Ich habe mehrere Tools ausprobiert, und in jedem davon gibt Ihr Modell einen Fehler aufgrund inkonsistenter Größen von Eingabedaten (X) und Zielvariablen (y).

Hallo Aliaksandr, Sie können stattdessen einfach den Code als Vorlage verwenden und dann die notwendigen Anpassungen auf Ihrer Seite vornehmen. Ich würde dir auch empfehlen, verschiedene Indikatoren auszuprobieren, verschiedene Variationen der allgemeinen Idee aus dem Artikel auszuprobieren. Das wird uns helfen, die globale Wahrheit schneller zu verstehen.