戦略を求める人は?たくさん、しかも無料で)。 - ページ 50

 

バーによる仕訳」と「ポジションによる仕訳」の違いはありません。表示方法が違うだけです。


*A Data Bars Filter "filters" "Journal by Position" * "Oldest 'm' bars "の前に項目がないので、そのように見えるのです。Journal by Bars」は、プログラムに読み込まれているためバーを表示しますが、「Oldest」バーでは取引は実行されません。


データバーフィルター」と「日付フィルター」は、まさにそのフィルターです。指定された期間、市場参入を許可(または禁止)するために使用されます。この場合でも、ストラテジーロジックは変更されません。


クロージングロジック条件」枠では、「データバーフィルター」「日付フィルター」を使用することはできません。そうなると戦略出口のロジックが変わってきますね。

 
Miroslav_Popov писал(а)>>

バーによる仕訳」と「ポジションによる仕訳」の違いはありません。表示方法が違うだけです。

*A Data Bars Filter "filters" "Journal by Position" * "Oldest 'm' bars "の前に項目がないので、そのように見えるのです。Journal by Bars」は、プログラムに読み込まれているためバーを表示しますが、「Oldest」バーでは取引は実行されません。

データバーフィルター」と「日付フィルター」は、まさにそのフィルターです。指定された期間、市場参入を許可(または禁止)するために使用されます。この場合、ストラテジーロジックは変更されません。

クロージングロジック条件」枠では、「データバーフィルター」「日付フィルター」を使用することはできません。そうなると戦略出口のロジックが変わってきますね。

このことはよく理解できました。

私は、これらの「変態」を利用しようとしました。

1)最適化の区間を左右に限定すること。

2.最適化プロットを抜けた後の ストラテジーの挙動を見ることができます。

3.グラフの曲線は、比較的リアルな部分を見るのに邪魔にならなかった。(ポイント1-左右に囲まれた歴史編をご覧ください)

4.同時にボタンを押す回数を最小限に抑えることができます。

(そして現実には、歴史のどこかをもっと詳しく「見る」ことが必要な場合が多い)。同時に、別ウィンドウ(フルチャート)の「バランス/エクイティ・チャート」を開くのは不便です)。

そして、Data Horizontの「Remove data older then」チェックボックスのバグが修正されるまでの すべてです。

ということで、データホリゾントを 待ちましょう !!!

 

マガジンの最初のバーの位置 ...1254.というのは、IMHOでは、変えてはいけないことです。


フォレックス・ストラテジー・ビルダーは、最低300本のバーを必要とします。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;
}

ミニマムバー = 300

iMaxBars - "Data Horizon "で設定したもの。

 

:( コードがうまく貼れません。先頭のタブを削除します。

 
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;
}
}
}

すなわち、(テキストフォーマットではなく、Ctrl+Alt+Mを使用する必要があります。)

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;
  }
 }
}

が、最初のifは 他に どこがある?

それとも

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

同様に "終了日 "についても

 

**最初のifの ための他の 場所?

データをカットするのは、以下の場合です。

1.チェックボックスがチェックされている:bUseStartDate == true

2.選択した日付がヒストリカルデータの開始より後(新しい):aBar[iTempStartBar].Time < dtStartingDate


その逆の場合は、単に切れないだけです。


-------

編集する。

2008年9月30日より古い日付は削除できません。それを取り除くと、300本以下のバーしか残らないからだ。(日足チャート)


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

 
Miroslav_Popov писал(а)>>

** 最初のifの elseは どこだ **

うん、慌てて、ごめんね。:(

H4でストラテジーを生成する場合、2.5ヶ月未満の期間は使用できないことが判明した(300/6=50日 - バーのない週末~2.5ヶ月)重要なことではなく、ストラテジーチェック(OOS)の間隔も2ヶ月以上でなければならない。現在から5ヶ月前(調整したストラテジーがそんなに長生きするとは思えないし、「一昨日最適化したストラテジーが今日どう動くか」の方が面白いので不便)とか、「重複区間」を引くとか・・・。ファイルに空のバーを追加する(コンピュータータイムにチェックが入っていないことを祈る)

:)

まとめ - バーの最大数を常に設定し(生成時のハングアップを避けるため)、最適化/チェックの間隔を日付で設定するようにしました。

 

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


捕まえることができる。チェックマーク "Market "を外す - "Check Data"

 
voltair >> :

また、正しく選択するために必要なデータとは何でしょうか?何を調査する必要があるのか?

例えば...様々なタイプの市場において、戦略がどのように振る舞うか、そして今...2を超える1年分の利益と、先月の排水と、その流れが持続することによく遭遇しました。