Wer will eine Strategie? Lose und kostenlos) - Seite 50

 

Es gibt keinen Unterschied zwischen "Journal nach Stäben" und "Journal nach Position". Sie zeigen die Informationen nur auf unterschiedliche Weise an.


*Ein Datenbalken-Filter "filtert" "Journal nach Position "* es sieht so aus, weil es keinen Eintrag vor "Älteste 'm' Balken" gibt. Das "Journal nach Balken" zeigt die Balken an, weil sie im Programm geladen sind, aber es werden keine Geschäfte in den "ältesten" Balken ausgeführt.


Der "Datenbalkenfilter" und der "Datumsfilter" sind genau das - Filter. Sie werden verwendet, um den Marktzugang für das angegebene Intervall zu erlauben (oder zu verbieten). Dies ändert nichts an der Logik der Strategie.


Wir können "Datenbalken-Filter" oder "Datums-Filter" nicht in einem "Abschlusslogik-Bedingungsfeld" verwenden. Das würde die Logik des Strategieausstiegs ändern.

 
Miroslav_Popov писал(а) >>

Es gibt keinen Unterschied zwischen "Journal nach Balken" und "Journal nach Position". Sie zeigen die Informationen nur auf unterschiedliche Weise an.

*Ein Datenbalken-Filter "filtert" "Journal nach Position "* es sieht so aus, weil es keinen Eintrag vor "Älteste 'm' Balken" gibt. Das "Journal nach Balken" zeigt die Balken an, weil sie im Programm geladen sind, aber es werden keine Geschäfte in den "ältesten" Balken ausgeführt.

Der "Datenbalkenfilter" und der "Datumsfilter" sind genau das - Filter. Sie werden verwendet, um den Marktzugang für das angegebene Intervall zu erlauben (oder zu verbieten). Dies ändert nichts an der Logik der Strategie.

Wir können "Datenbalken-Filter" oder "Datums-Filter" nicht in einem "Abschlusslogik-Bedingungsfeld" verwenden. Das würde die Logik des Strategieausstiegs ändern.

Ich habe das alles sehr gut verstanden.

Ich habe versucht, diese "Perversionen" zu nutzen, um

1) Um links und rechts einen Abschnitt der Optimierung zu begrenzen.

2. Um das Verhalten der Strategie nach dem Verlassen des Optimierungsplans zu sehen.

3. Die grafischen Kurven störten nicht bei der Betrachtung des relativ realen Teils der Grafik. (Punkt 1 - siehe den links und rechts eingegrenzten Geschichtsabschnitt)

4. Minimierung der Anzahl der gleichzeitigen Tastendrücke.

(Und in der Realität ist es oft notwendig, einen Teil der Geschichte genauer zu "betrachten". Gleichzeitig ist es unpraktisch, ein separates (vollständiges) Fenster "Balans/Equity Chart" zu öffnen.)

Und das alles , bis ein Fehler mit dem Kontrollkästchen "Daten entfernen, die älter sind als" in Data Horizont behoben ist .

Also,warten wir auf Data Horizont !!!!

 

Der erste Balken im Magazin positioniert ...1254. Daran sollte sich, IMHO, nichts ändern.


Der Forex Strategy Builder benötigt ein Minimum von 300 Balken. Denn es ist 1554- 300 = 1254

 
/// <summary>
/// Data Horizon - Cuts some data
/// </summary>
int DataHorizon()
{
	if (iBars < MINIMUMBARS) return 0;

	int  iTempBars     = iBars;
	int  iTempStartBar = 0;
	int  iTempEndBar   = iBars - 1;
	bool bChange       = false;

	// Set the maximum nuber of bars
	if (iBars > iMaxBars && iMaxBars >= MINIMUMBARS)
	{   // We need to cut out the oldest bars
		iTempBars     = iMaxBars;
		iTempStartBar = iBars - iMaxBars;
		bChange       = true;
	}
	

	// Set the starting date
	DateTime dtStartingDate = new DateTime( iStartYear, iStartMonth, iStartDay);
	if ( bUseStartDate && aBar[ iTempStartBar].Time < dtStartingDate)
	{   // We need to cut out the oldest bars
		for (int iBar = iTempStartBar; iBar < iTempBars - MINIMUMBARS; iBar++)
		{
			if ( aBar[ iBar].Time >= dtStartingDate)
			{
				iTempStartBar = iBar;
				iTempBars     = iTempEndBar - iTempStartBar + 1;
				bChange       = true;
				break;
			}
		}
	}

	// Set the end date
	DateTime dtEndingDate   = new DateTime( iEndYear, iEndMonth, iEndDay);
	if ( bUseEndDate && aBar[ iTempEndBar].Time > dtEndingDate)
	{   // We need to cut out the newest bars
		for (int iBar = iTempStartBar + MINIMUMBARS; iBar < iTempEndBar; iBar++)
		{
			if ( aBar[ iBar].Time >= dtEndingDate)
			{
				iTempEndBar = iBar - 1;
				iTempBars   = iTempEndBar - iTempStartBar + 1;
				bChange     = true;
				break;
			}
		}
	}

	// Cut the data
	if ( bChange)
	{
		Bar[] aBarCopy = new Bar[iBars];
		aBar. CopyTo( aBarCopy, 0);

		aBar = new Bar[ iTempBars];
		for (int iBar = iTempStartBar; iBar <= iTempEndBar; iBar++)
			aBar[ iBar - iTempStartBar] = aBarCopy[ iBar];

		iBars  = iTempBars;
		dtTime = aBar[ iTempBars - 1].Time;
		bCut   = true;
	}

	return 0;
}

MINDESTANZAHL DER BALKEN = 300

iMaxBars - Was wir in "Data Horizon" einstellen

 

:( Ich kann den Code nicht richtig posten. Es entfernt die führenden Tabulatoren.

 
Miroslav_Popov писал(а) >>

// Set the starting date
DateTime dtStartingDate = new DateTime(iStartYear, iStartMonth, iStartDay);
if (bUseStartDate && aBar[iTempStartBar].Time < dtStartingDate)
{ // We need to cut out the oldest bars
for (int iBar = iTempStartBar; iBar < iTempBars - MINIMUMBARS; iBar++)
{
if (aBar[iBar].Time >= dtStartingDate)
{
iTempStartBar = iBar;
iTempBars = iTempEndBar - iTempStartBar + 1;
bChange = true;
break;
}
}
}

z. B. (Sie müssen Strg+Alt+M verwenden, nicht die Textformatierung)

if ( bUseStartDate && aBar[ iTempStartBar].Time < dtStartingDate)
{ // We need to cut out the oldest bars
 for (int iBar = iTempStartBar; iBar < iTempBars - MINIMUMBARS; iBar++)
 {
  if ( aBar[ iBar].Time >= dtStartingDate)
  {
   iTempStartBar = iBar;
   iTempBars = iTempEndBar - iTempStartBar + 1;
   bChange = true;
   break;
  }
 }
}

aber wo sonst für das erste Wenn?

Oder wollten Sie

if (bUseStartDate && aBar[iTempStartBar].Time < dtStartingDate)
 iTempStartBar = Какая_там_функция_пересчета_времени_в_бары(dtStartingDate)

Ähnliches gilt für "Enddatum".

 

**wo sonst für das erste Wenn?

Wir kürzen Daten, wenn:

1. Kontrollkästchen ist aktiviert: bUseStartDate == true

2. das ausgewählte Datum liegt nach (neuer) als der Beginn unserer historischen Daten: aBar[iTempStartBar].Time < dtStartingDate


Im umgekehrten Fall gibt es einfach keinen Schnitt.


-------

Bearbeiten:

Sie können keine Daten entfernen, die älter sind als der 30. September 2008. Das liegt daran, dass weniger als 300 Balken übrig bleiben, wenn man sie entfernt. (Tagesdiagramm)


for (int iBar = iTempStartBar; iBar < iTempBars - MINIMUMBARS; iBar++)

 
Miroslav_Popov писал(а) >>

** Wo ist das else für das erste if? **

Ja. Es tut mir leid, ich habe mich beeilt. :(

Es stellt sich heraus, dass für die Generierung der Strategie auf H4 kann ich nicht verwenden, einen Zeitraum von weniger als 2,5 Monate (300/6=50 Tage - Wochenende ohne Bars ~ 2,5. Monate) nicht kritisch, aber auch das Intervall der Strategie Überprüfung (OOS) muss nicht später als 2 beginnen.5 Monate vor dem aktuellen Datum (nicht praktisch, denn ich bezweifle, dass die angepasste Strategie so lange leben wird, und es ist interessanter zu sehen, "wie sich die vorgestern optimierte Strategie heute verhalten würde"), oder ziehen Sie den "überlappenden Abschnitt" ab, oder ... Fügen Sie der Datei leere Takte hinzu (hoffentlich ist die Computerzeit nicht aktiviert)

:)

Zusammenfassung - Ich stelle immer die maximale Anzahl von Balken ein (um zu vermeiden, dass die Generierung hängen bleibt), und lege die Optimierungs-/Prüfintervalle nach Datum fest.

 

. добавлять пустые бары в файл (надеюсь, что время компьютера не проверяется)


Er wird sie fangen. Entfernen Sie das Häkchen bei "Markt" - "Daten prüfen".

 
voltair >> :

Und welche Daten sind für die richtige Auswahl erforderlich? Was müssen Sie untersuchen?

Zum Beispiel... wie sich die Strategie in verschiedenen Arten von Märkten verhält, und jetzt... Ich habe oft ein Jahr im Wert von Gewinnen über 2, und der letzte Monat der Abfluss und der Trend hält an.

Grund der Beschwerde: