Diskussion zum Artikel "Gescheites "Marktgedächtnis" durch Differentiation und Entropieuntersuchung" - Seite 9

 
clemmo:

Ich erhalte diese Fehler:

1. Es scheint, dass EA versucht zu verkaufen, aber Stops setzt, als ob es ein Kauf wäre?
2019.07.25 04:35:35.174 Trades '666': failed market sell 0.10 USDCHF sl: 0.98139 tp: 0.99039 [Invalid stops]

2. Der EA entfernt sich selbst bei der Bildung eines neuen Balkens oder einer neuen Kerze.

3. Der EA kann nur Verkaufstrades platzieren (es sei denn, dies ist während der Optimierungsphase beabsichtigt?)

4. Der EA verwendet ein anderes Handelsvolumen nur für NZDUSD?

update0: Nach weiteren Tests kann ich sagen, dass das Problem der automatischen Entfernung mit den benutzerdefinierten Einstellungen aus dem Screenshot der Hyperparameter zusammenhängt. Ich werde versuchen, diese zu isolieren.
update1:Es hängt mit der Einstellung der Historientiefe auf 1500 zusammen. Ich werde versuchen zu sehen, ob andere Werte zu anderen Ergebnissen führen. Ich teste auf M1 und M15 und habe eine ausreichende Preishistorie.
update2: EA wird sich selbst entfernen, wenn History_depth 1027 >= ||<= 956

5. Nach einiger Zeit schrumpft das Entropie-Fenster auf eine kleine Größe, wie auf dem Screenshot zu sehen ist.

update3: Ich kann vermuten, dass das Problem mit "Sell-only" mit einem zu niedrigen Zeitrahmen zusammenhängt, der beim Testen verwendet wurde (M1). Dies erzeugt sehr große Entropiewerte, die außerhalb der Grenzen liegen? Beim Testen auf M15>= werden sowohl Kauf- als auch Verkaufsaufträge erzeugt.

update4: Ich kann vermuten, dass das Problem mit der Größe des Entropie-Fensters mit der anfänglichen Größe des Chart-Fensters zusammenhängt. Wenn es auf den gesamten Bildschirm skaliert wird, ist das Fenster in Ordnung.

update5: Nachdem ich versucht habe, die magischen Zahlen zu ändern, werden alle Charts beim nächsten Balken entfernt. Ich habe versucht, das Terminal neu zu starten und neue Charts zu verwenden. Ich bin mir nicht sicher, was ich sonst noch versuchen soll, es gibt keine Fehler im Protokoll. Ich kann nicht weiter testen?

Hallo, ich glaube, es gibt einige Probleme mit der Normalisierung der Entropie, deshalb ändern sich die Werte im Laufe der Zeit. Vielleicht ein wenig später behebe ich dies und fügen Sie einen anderen Indikator Über ein anderes Problem - ich glaube, ich verstehe nicht ganz. Vielleicht haben einige Fehler im Terminal-Log?

 

Hallo Maxim,

Ich habe versucht, den fractional_entropy_trader zu kompilieren, aber die folgende Fehlermeldung erschien:

'virtual_optimizer' - function already defined and has different type Auto_optimizer.mqh line 47 col 18

Können Sie mir sagen, wie ich dieses Problem beheben kann?

Vielen Dank

Daniel

 

Sehr kompliziert zu verstehen, 

was für Grundwissen muss man haben um sich mit der Thematik auseinander zu setzten?

Hat das ganze was mit Integralrechnung zu tun?

 
Alexander:

Sehr kompliziert zu verstehen, 

was für Grundwissen muss man haben um sich mit der Thematik auseinander zu setzten?

Hat das ganze was mit Integralrechnung zu tun?

  1. Es gibt doch nur Summation und Multiplikation!
  2. Statt der Mathematik versuch einfach den Programmablauf zu verstehen..
  3. Entropie ist einfach ein Maß in der Physik für Unordnung - hier: hohe Entropie = viele Kursschwankungen.
 
kttongsg:

Hallo Maxim,

Ich habe versucht, den fractional_entropy_trader zu kompilieren, aber die folgende Fehlermeldung erschien:

'virtual_optimizer' - function already defined and has different type Auto_optimizer.mqh line 47 col 18

Können Sie mir sagen, wie ich dieses Problem beheben kann?

Danke

Daniel

Hallo, ich habe gerade den Artikel gelesen und bin gerade dabei zu kompilieren, aber um dir kurz zu helfen: Finde die 2 Funktionsdefinitionen, benenne die widersprüchliche um, das sollte reichen, damit du es kompilieren kannst.

 

Guten Tag,

ich möchte auf das Thema zurückkommen

Prado Maschinelles Lernen: Algorithmen für Unternehmen

Auflistung 5.4. Den minimalen Wert von d finden, der den statistischen ADF-Test erfolgreich besteht

def plotMinFFD():
from statsmodels.tsa.stattools import adfuller
path,instName='./','ES1_Index_Method12'
out=pd.DataFrame(columns=['adfStat','pVal','lags','nObs','95%
conf','corr'])
df0=pd.read_csv(path+instName+'.csv',index_col=0,parse_dates=True)
for d in np.linspace(0,1,11):
df1=np.log(df0[['Close']]).resample('1 D').last() # понизить до
# суточных наблюдений
df2=fracDiff_FFD(df1,d,thres=.01)
corr=np.corrcoef(df1.loc[df2.index,'Close'],df2['Close'])[0,1]
df2=adfuller(df2['Close'],maxlag=1,regression='c',autolag=None)
out.loc[d]=list(df2[:4])+[df2[4]['5%']]+[corr] # с критическим
# значением
out.to_csv(path+instName+'_testMinFFD.csv')
out[['adfStat','corr']].plot(secondary_y='adfStat')
mpl.axhline(out['95% conf'].mean(),linewidth=1,color=
'r',linestyle='dotted')
mpl.savefig(path+instName+'_testMinFFD.png')
return

Python-Code aus dem Buch - diese Funktion bestimmt den minimalen Grad der gebrochenen Differenzierung, wer mit Python vertraut ist, übersetzen. Meiner Meinung nach

ist es genau das, was im Artikel zur praktischen Anwendung der Methode fehlt ( oder einen Faulpelz an die richtige Adresse schicken - am besten mit der Funktion).

 
Олег:

Guten Tag,

ich möchte auf das Thema zurückkommen


Auflistung 5.4. Ermittlung des Mindestwerts von d, der den statistischen ADF-Test erfolgreich durchläuft

Python-Code aus dem Buch - diese Funktion bestimmt den minimalen Grad der gebrochenen Differenzierung, wer mit Python vertraut ist, übersetzen. Meiner Meinung nach

ist es genau das, was in dem Artikel für die praktische Anwendung der Methode fehlt ( oder einen Faulpelz an die richtige Adresse schicken - am besten mit der Funktion).

Der Dickey-Fuller-Test mag für einige statistische Studien nützlich sein, aber in dem Artikel wird der Wert von d im Optimierer gesucht, und die vorgeschlagene Version des Algorithmus wird ständig neu trainiert, so dass er hier meiner Meinung nach nicht viel nützt.

https://www.mql5.com/de/code/13072
Statistical Functions
Statistical Functions
  • www.mql5.com
Набор статистических функций, которые позволяют рассчитывать некоторые значения, описывающие таймсерии, такие как корреляция между двумя таймсериями, линейная регрессия, стандартное отклонение и т.д. Набор также включает в себя более сложные функции, такие как определенный интеграл. Заголовочный файл "Statistics.mqh" содержит следующие функции...
 
Maxim Dmitrievsky:

Der Dickey-Fuller-Test könnte für einige statistische Studien nützlich sein, aber in dem Papier wird der Wert von d im Optimierer gesucht, und die vorgeschlagene Version des Algorithmus wird ständig neu trainiert, so dass er meiner Meinung nach hier nicht von großem Nutzen wäre

Ich wollte die automatische Bestimmung von d in der Trainingsphase mit anschließender automatischer Verarbeitung sowohl von Trainingsstichproben als auch von realen Handelsdaten für eine Reihe nachfolgender Algorithmen verwenden (wenn wir über Methoden des maschinellen Lernens sprechen - nun, das tun wir nicht, meine ich...).
 
Олег:
Ich wollte die automatische Erkennung von d in der Trainingsphase verwenden, gefolgt von der automatischen Verarbeitung sowohl von Trainingsmusterdaten als auch von realen Handelsdaten für eine Reihe nachfolgender Algorithmen (wenn wir über Methoden des maschinellen Lernens sprechen - nun, das tun wir nicht, ich meine...).

Ich habe oben einen Link angegeben, der zu funktionieren scheint

 

Es gibt einen Dickey-Fuller-Test in MQL, aber es ist ein Test einer Reihe auf Stationarität. Es gibt ein Beispiel für die Vorverarbeitung durch die Box-Cox-Methode auf Hubre, für die der Code der automatischen Bestimmung des Lambda-Parameters - der einen ähnlichen Wert wie das diskutierte d hat - in einem alten Artikel auf der Website gegeben wurde.

Die Box-Cox-Methode auf Forex führt nicht immer zur Stationarität der Reihe (fast immer nicht bis zum Ende), und eine zusätzliche Verarbeitung ist erforderlich. Meine Frage ist als Versuch zu verstehen, die BC-Methode durch eine gebrochene Differenzierung (mit automatischer Bestimmung des besten Werts von d) zu ersetzen.

Ich habe vollen Respekt vor Ihnen und dem Artikel, den Sie geschrieben haben, meine Frage ist im Rahmen des Artikels wirklich unnötig, sie ist bereits als Plan für die Zukunft....