谁想要一个战略?很多,而且是免费的) - 页 52

 
Miroslav_Popov писал(а)>>

修复了发电机。用这个替换你的exe。


生成器有时会设置指标周期+Shift>条形计数;

我已经很困惑了。:)

新版本。

但在将条数减少到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; ,这样做对吗?

在我的历史文件中,有很多超过50000行,在这个区间内,从iTempStartBar= iBars - iMaxBars到iMaxBars-MINIMUMBARS,根本无法订购日期?

从逻辑上讲,结束日期和开始日期应该搜索到整个故事的结尾,即搜索到iBars ??

但是,结尾栏的发现是正确的。

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

关于你的屏幕截图。

1.忽略了 "删除2008年9月1日之前的数据",因为到2009年1月1日为止,只有不到300条数据。

2."删除2009年1月1日之前的数据"-- 看来没有1月1日的数据,FSB删除了08年1月1日以来的所有条形数据,包括...。这就是为什么FSB限制酒吧到2008年12月31日。


(即条数比日期更优先 BEFORE!!!!)

正是如此。

 
Miroslav_Popov писал(а)>>

1."删除2008年9月1日之前的数据"被忽略了,因为到2009年1月1日为止,只有不到300条数据。

2."删除2009年1月1日之前的数据" - 看来没有1月1日的数据了。这就是为什么FSB限制酒吧到2008年12月31日。

现在不一样了。

我现在展示的是时钟。

在文件63291(iBars )中,从1999-01-04到2009-03-18的行数

日期2008-09-01是第59行973

2009-01-02的日期是第62 021行。

I.e.当程序搜索开始日期时,周期从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

是在加载的数据之外。地平线数据没有考虑到这些问题。



行动。我错了。

 
Miroslav_Popov писал(а)>>

iBars <= 50,000

FSB从数据文件中导入最新的50,000条。

所以。

日期2008-09-01是第59行973

2009-01-02是第62行021

是在加载的数据之外。Data Horizont不考虑这些因素。

最新!!!!,即从13,29163 291!!!!!,现在搜索范围从0到50,000(四舍五入;) )

没有协议。:( 遗憾 :(

虽然在我看来,iTempEndBar 代替 iTempBars- MINIMUMBARS 正确 而整块"//设置最大条数"是多余的,如果和bUseStartDate=TruebUseEndDate=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;
}

添加

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.有趣的是,我可能不会使用这个程序 :)