if( bUseStartDate && aBar[ iTempStartBar].Time< dtStartingDate){// We need to cut out the oldest bars for(int iBar = iTempStartBar; iBar < iTempBars - MINIMUMBARS; iBar++) {
// 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 barsif(iBars> iMaxBars && iMaxBars >= MINIMUMBARS){// We need to cut out the oldest bars
iTempBars = iMaxBars;
iTempStartBar =iBars- iMaxBars;
bChange =true;}
発電機を修理しました。exeをこれに置き換えてみてください。
ジェネレーターが時々設定する インジケーター ピリオド + シフト > バーカウント;
もう、混乱しています。:)
新バージョンです。
しかし、バーカウントを300に減らすと、ジェネレーターは動作し、停止ボタンで停止することができます。
'
旧バージョン(サイトから素早くダウンロード)
しかし、バーの量 < 1000 の場合、ジェネレーターはハングアップします。
'
IMHOでは、テスターの1000気圧の制限条件に慣れる方が良いが、インターバルを選択できる利便性がある。
'
もう、混乱しています。:)
'
旧バージョン(ウェブサイトからすぐにダウンロードしたもの)
しかし、バーの数 < 1000 の場合、ジェネレータはハングアップします。
'
旧バージョン」に対する幸せな思いは、偽りだったことが判明した。
つまり、新しいバージョンと同じ画像です。(例:バーの数は日付DOより優先順位が高い!!!)
'
'
おっと
ループはiTempBars- MINIMUMBARSまで、つまりヒストリーの最初から iTempBars= iMaxBars; の最大バー数まで行くということでよろしいでしょうか。
私の履歴ファイルに多くの50 000行以上とiTempStartBarから この区間で = iBars - iMaxBarsにiMaxBars - MINIMUMBARSは 単に順序付けられた日付にすることはできませんか!?
論理的には、End dateとstart dateは全体の終わりまで、つまりiBarsまで 検索する必要があります。
しかし、エンディングバーは正しく検出されます。
スクリーンショットについて
1.2009年1月1日までのバーが300本未満なので、「2008年9月1日以前のデータを削除する」は無視 されます。
2.「2009年1月1日より新しいデータを削除する" - 1月1日のデータがないよう です FSBは、.NETを含む2008年1月1日からのすべてのバーをカットしています。そのため、FSBは2008年12月31日までバーを制限しています。
(例:バーの数は日付BEFOREより優先順位が高い!!!)
その通りです。
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、図に対応)になっています。
ファイルを添付しました。
iBars<= 50,000
FSBはデータファイルから最新の50,000本のバーをインポートします。
だから
日付 2008-09-01 は 59 行目 973
日付 2009-01-02 は 62 021 行目
は読み込まれたデータの外にある。Data Horizonはそれらを考慮に入れていません。
Opsです。私は間違っている。
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. コードにまだエラーがあり、スキームに対応していません!!!!(私の間隔は右側で左側ではない) :(
考えてみよう。
欲しいコードを教えてください。プログラムに組み込んで、テストしてみます。
考えてみよう。
欲しいコードを教えてください。プログラムに組み込んで、テストしてみます。
前のページにあるあなたのコードのスニペットです。
add
しかし、開始日のリセットには、iTempStartBarが必要です!!!!dtStartingDateがiMaxBarsより早い場合、dtStartingDateを無視し、iMaxBarsで制限する必要があります。
そして、dtStartingDateから「右へ」iMaxBarsがあるはずで、ファイル全体でiMaxBarsのウィンドウサイズを移動できるようにするべきだと思います
しかし、右側のdtStartingDateのバーがiMaxBarsよりも小さい場合、バーよりも日付の方が直感的なので、dtStartingDateが優先されるはずです。IMHO
そして、一般的に、ユーザーが意図的に「ティック」を入れて、バー - デフォルトで、より多くのそれは、システム(iMaxBars)に埋め込まれているように
'
ZS.面白いのは、私はおそらくこのプログラムを使わないということです :)