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

 
Miroslav_Popov писал(а)>>

発電機を修理しました。exeをこれに置き換えてみてください。


ジェネレーターが時々設定する インジケーター ピリオド + シフト > バーカウント;

もう、混乱しています。:)

新バージョンです。

しかし、バーカウントを300に減らすと、ジェネレーターは動作し、停止ボタンで停止することができます。

'

旧バージョン(サイトから素早くダウンロード)

しかし、バーの量 < 1000 の場合、ジェネレーターはハングアップします。

'

IMHOでは、テスターの1000気圧の制限条件に慣れる方が良いが、インターバルを選択できる利便性がある。

'

 
SergNF писал(а)>>

もう、混乱しています。:)

'

旧バージョン(ウェブサイトからすぐにダウンロードしたもの)

しかし、バーの数 < 1000 の場合、ジェネレータはハングアップします。

'

旧バージョン」に対する幸せな思いは、偽りだったことが判明した。

つまり、新しいバージョンと同じ画像です。(例:バーの数は日付DOより優先順位が高い!!!)

'

'

おっと

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

ループはiTempBars- MINIMUMBARSまで、つまりヒストリーの最初から iTempBars= iMaxBars; の最大バー数まで行くということでよろしいでしょうか。

私の履歴ファイルに多くの50 000行以上とiTempStartBarから この区間で = iBars - iMaxBarsにiMaxBars - MINIMUMBARSは 単に順序付けられた日付にすることはできませんか!?

論理的には、End dateとstart dateは全体の終わりまで、つまりiBarsまで 検索する必要があります。

しかし、エンディングバーは正しく検出されます。

int  iTempEndBar   = iBars - 1;
for (int iBar = iTempStartBar + MINIMUMBARS; iBar < iTempEndBar; iBar++
 
SergNF >> :

スクリーンショットについて

1.2009年1月1日までのバーが300本未満なので、「2008年9月1日以前のデータを削除する」は無視 されます。

2.「2009年1月1日より新しいデータを削除する" - 1月1日のデータがないよう です FSBは、.NETを含む2008年1月1日からのすべてのバーをカットしています。そのため、FSBは2008年12月31日までバーを制限しています。


(例:バーの数は日付BEFOREより優先順位が高い!!!)

その通りです。

 
Miroslav_Popov писал(а)>>

1.「2008年9月1日より古いデータを削除」は、2009年1月1日までのバーが300本未満であるため、無視 されます。

2."Remove data newer than January 1st 2009" - 1月1日のデータがないようです。そのため、FSBは2008年12月31日までバーを制限しています。

もう違う。

今、時計を表示しているところです。

ファイル63291(iBars )において、1999-01-04から2009-03-18までのライン

日付 2008-09-01 は 59 行目 973

2009-01-02の日付は62 021行目です。

すなわちプログラムが開始日を検索すると、63 291 - 50 000 =13 291(iTempStartBar= iBars - iMaxBars; ) から50 000 - 300 =49 700(iTempBars- MINIMUMBARS) までサイクルが「走り」、私の「前」日付 (bar59 973) が見つからず、(iTempStartBar= iBars - iMaxBars;) 開始バー =63 290 - 50 000 = 13 290まま です。

私のファイルでは、2001-02-21 12:00(±300、図に対応)になっています。

ファイルを添付しました。

ファイル:
eurusd60.rar  702 kb
 

iBars<= 50,000

FSBはデータファイルから最新の50,000本のバーをインポートします。

だから

日付 2008-09-01 は 59 行目 973

日付 2009-01-02 は 62 021 行目

は読み込まれたデータの外にある。Data Horizonはそれらを考慮に入れていません。



Opsです。私は間違っている。

 
Miroslav_Popov писал(а)>>

iBars <= 50,000

FSBはデータファイルから最新の50,000本のバーをインポートします。

だから

日付 2008-09-01 は 59 行目 973

2009-01-02 は 62 021 行目

は読み込まれたデータの外にある。データホリゾントでは、それらを考慮に入れていません。

最新の !!! つまり、13,291 から 63 291!!!そして、0から50,000まで検索できるようになりました(四捨五入しています ;))。

合意はしていない。:( 同情 :(

iTempStartBar ;iBar < iTempBars- MINIMUMBARS; iBar++) iTempEndBarに 置き換える 方が正しいような気もするが。また、「// バーの最大数を設定 する」のブロック全体は、冗長です if ANDbUseStartDate=True ANDbUseEndDate=True

'

しかし、繰り返しになりますが、私は主張しません。:( (ミニュチュアのために、前の50 000バーで戦略を最適化し、次の10 000バーで確認するのがよいかもしれませんが、ファイルを切ります。

:(

SZY. コードにまだエラーがあり、スキームに対応していません!!!!(私の間隔は右側で左側ではない) :(

 

考えてみよう。


欲しいコードを教えてください。プログラムに組み込んで、テストしてみます。

 
Miroslav_Popov писал(а)>>

考えてみよう。

欲しいコードを教えてください。プログラムに組み込んで、テストしてみます。

前のページにあるあなたのコードのスニペットです。

// 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;
// }
// Или оставить 
// только если && bUseStartDate=False && bUseEndDate=False 
// или && (bUseStartDate=False || bUseEndDate=False)
// сам не представляю, но весь блок "сбивает"



// 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 < iTempEndBar; iBar++)
 {
  if ( aBar[ iBar].Time >= dtStartingDate)
  {
   iTempStartBar = iBar;
   iTempBars     = iTempEndBar - iTempStartBar + 1;
   bChange       = true;
   break;
  }
 }
}

Как вариант, после
// 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;
}

add

if (bUseStartDate)
{   
 iTempStartBar = 0; 
}
しかし、開始日のリセットには、iTempStartBarが必要です!!!!
 
if (bUseStartDate)
{   
    iTempStartBar = 0; 
}
dtStartingDateがiMaxBarsより早い場合、dtStartingDateを無視し、iMaxBarsで制限する。
 
Miroslav_Popov писал(а)>>
dtStartingDateがiMaxBarsより早い場合、dtStartingDateを無視し、iMaxBarsで制限する必要があります。

そして、dtStartingDateから「右へ」iMaxBarsがあるはずで、ファイル全体でiMaxBarsのウィンドウサイズを移動できるようにするべきだと思います

しかし、右側のdtStartingDateのバーがiMaxBarsよりも小さい場合、バーよりも日付の方が直感的なので、dtStartingDateが優先されるはずです。IMHO

そして、一般的に、ユーザーが意図的に「ティック」を入れて、バー - デフォルトで、より多くのそれは、システム(iMaxBars)に埋め込まれているように

'

ZS.面白いのは、私はおそらくこのプログラムを使わないということです :)