Кому стратегию? Много и бесплатно) - страница 53

 
SergNF >>:

А я считаю, что должно быть iMaxBars от dtStartingDate "вправо", чтобы можно было двигать окно размером iMaxBars по всему файлу!

Логинчо. Бъл такой вариант. Проблем появяется кагда перевклячиш на другой дата файл. Дата хоризонт ета глобалная настрока- для всех валутъ и периодов.


dtStartingDate | <- iMaxBars -> | dEndDate


А вот если направо dtStartingDate баров меньше iMaxBars. то приоритет должен иметь именно dtStartingDate, т.к. даты интуитивней, чем бары.

Я тоже ето хотел но не работало харашо. По етамо я поминял.


Ето идеайлнъ вариант ИМХО



 
Miroslav_Popov писал(а) >>

Логинчо. Бъл такой вариант. Проблем появяется кагда перевклячиш на другой дата файл. Дата хоризонт ета глобалная настрока- для всех валутъ и периодов.

dtStartingDate | <- iMaxBars -> | dEndDate

А почему эту процедуру не вызывать при смене Символа/Таймфрейма?

Более того, процедура заполняет массив aBar[iBar - iTempStartBar] а ограничение диапазона поиска - это только оптимизация времени работы!? соответственно и искать iTempStartBar/iTempEndBar можно от 0 до iBars и не мучиться

Я тоже ето хотел но не работало харашо. По етамо я поминял.

Не надо усложнять. Поставь поиск дат (если стоит галочка) в барах от 0 до iBars, а если количество разница между iTempEndBar-iTempStartBar > iMaxBars, то iTempEndBar=iTempStartBar+iMaxBars

'

Т.е. (не все варианты рассмотрел - ДОБАВИЛ позже)

if(bUseStartDate) 
{
 цикл поиска iTempStartBar от 0 до iBars
}
иначе
{
 iTempStartBar = iBars - iMaxBars
}

if(bUseEndDate) 
{
 цикл поиска iTempEndBar от 0 до iBars
 if(!bUseStartDate)
 {
  iTempStartBar= iTempStartBar - iMaxBars
 }
}
иначе
{
 iTempEndBar = iTempStartBar + iMaxBars
}

if(iTempEndBar-iTempStartBar > iMaxBars) 
{
 iTempEndBar = iTempStartBar + iMaxBars
}
 
if(bUseStartDate) 
 цикл поиска iTempStartBar от 0 до iBars
иначе
 iTempStartBar = iBars - iMaxBars

if(bUseEndDate) 
 цикл поиска iTempEndBar от 0 до iBars
иначе
 iTempEndBar = iTempStartBar + iMaxBars

if(iTempEndBar - iTempStartBar < MINIMUMBARS)
{
   iTempStartBar = iTempEndBar - MINIMUMBARS;
   if(iTempStartBar < 0)
   {
     iTempStartBar = 0;
     iTempEndBar = MINIMUMBARS;
   }
}

if(iTempEndBar-iTempStartBar > iMaxBars) 
{
   iTempStartBar = iTempEndBar - iMaxBars;
   if(iTempStartBar < 0)
   {
     iTempStartBar = 0;
     iTempEndBar = iMaxBars;
   }
}
 
Miroslav_Popov писал(а) >>

Проверки на MINIMUMBARS и 0 - само собой.

Но я еще добавил вариант, когда пользователь поставил bUseEndDate, не поставил bUseStartDate, а окно указал в барах (выделил жирным).

'

Про MINIMUMBARS тоже не так однозначно - прибавлять к стартовому бару (и "выскочить" за пределы файла) или вычитать от конечного (и "выскочить" за пределы файла) :) Но это - как в описании!!! :)

А лучше - предупреждение "Считать научись!" и кнопка Accept не активна!

'

ЗЫЫ. А если после корректировок iTempEndBar/iTempStartBar из-за iMaxBars или MINIMUMBARS менять даты в ComboBox'ах (даже если они неактивны), то будет вообще шикарно.

 

Про MINIMUMBARS тоже не так однозначно - прибавлять к стартовому бару (и "выскочить" за пределы файла)

FSB will not load data file with bars< 300. Error Message.

А лучше - предупреждение "Считать научись!" и кнопка Accept не активна!


If you are in the "Data Horizon" it's OK. But you can set this correctly and after that to change to another data source.


The current version of "Data Horizon" is reliable. I think there is no case to crash.

I'll try to improve it...

 
zfs писал(а) >>
Momentum MA Oscillator - умучился искать ошибку несоответствия. Вроде всё так кроме значения индикатора. Если надо шапку опубликую.

Осталось убедиться, что

float[] afBasePrice = Price(basePrice);

по котрому все и рассчитывается в FSB

это именно

      wprice_i=(High[i]+Low[i]+2*Close[i])/4;
      wprice_mom=(High[i+MomPeriod]+Low[i+MomPeriod]+2*Close[i+MomPeriod])/4;

ЗЫ. Я пока убедился только в том, что iMAOnArray (MT4) = MovingAverage (FSB) :) Причем последний - "тупая вставка в ME с заменой float на double".

Относительно же массивов, которые в MT4 справа налево, а в FSB слева на право ... главное - как их готовить, т.е. подавать на вход написанной функции.

Если!!! и будe переписывать то только в виде "Функций", но никак не "Индикторов".

А пока не увижу что-то приличное на OOS, даже не буду думать о первом "Если".

 

Data Horizon Improved!!!!



Starting Date and End Date limit the testing bars;

300 <= Testing Bars <= 50 000

Файлы:
fsb_update.zip  540 kb
 
Miroslav_Popov писал(а) >>
Data Horizon Improved!!!!

Вроде бы пока все корректно:

'

iMaxBars 50 000

bUseStartDate False

bUseEndDate Flase

>>> В "Journal by bars" 50 000, StartDate = 20.02.01 EndDate = 18.03.09 (Последняя дата в файле)

'

iMaxBars 50 000

bUseStartDate True (01.09.2008)

bUseEndDate Flase

>>> В "Journal by bars" 3 318, StartDate = 01.09.08 EndDate = 18.03.09 (Последняя дата в файле)

'

iMaxBars 50 000

bUseStartDate True (01.09.2008)

bUseEndDate True (01.01.2009)

>>> В "Journal by bars" 2 048, StartDate = 01.09.08 EndDate = 31.12.08

'

iMaxBars 50 000

bUseStartDate False

bUseEndDate True (01.01.2009)

>>> В "Journal by bars" 50 000, StartDate = 06.12.00 EndDate = 31.12.08

'

iMaxBars 50 000

bUseStartDate False

bUseEndDate True (01.05.1999)

>>> В "Journal by bars" 2 015, StartDate = 04.01.99 (Первая дата в файле) EndDate = 30.04.2009

'

Генератор при 300х барах что-то считает и его можно прервать.

 

Что значит видимый фрактал? и

The fractal can be shadowed.

 
zfs >>:

Что значит видимый фрактал? и

The fractal can be shadowed.

Когда открываете глаза и смотрите на монитор, он видимый. Когда закрываете, он становится невидимым - be shadowed.