Quem quer uma estratégia? Muito e de graça) - página 53

 
SergNF >> :

E eu acho que deveria haver iMaxBars da dtStartingDate "para a direita" para que você possa mover a janela do tamanho iMaxBars ao redor do arquivo!

Logicamente. Costumava fazer isso. O problema surge quando você muda para um arquivo de data diferente. O horizonte de data é um cenário global - para todos os valores e períodos.


dtStartingDate | <- iMaxBars -> | dEndDate


Mas se dtStartingDate de barras é menor que iMaxBars. então dtStartingDate deve ter prioridade, pois as datas são mais intuitivas que as barras.

Eu também o queria, mas não funcionou bem. Então, eu o mudei.


É perfeito.



 
Miroslav_Popov писал(а) >>

Logicho. Havia uma variante como essa. O problema ocorre quando você muda para um arquivo de data diferente. O horizonte de data é uma configuração global - para todos os valores e períodos.

dtStartingDate | <- iMaxBars -> | dEndDate

Por que este procedimento não deveria ser chamado quando se muda um Símbolo/Timeframe?

Além disso, o procedimento preenche o array aBar[iBar - iTempStartBar] e limita a faixa de busca - isto é apenas uma otimização do tempo de execução!? e a busca iTempStartBar/iTempEndBar pode ser de 0 a iBars e não incomodar

Eu também o queria, mas não funcionou bem. Então eu o mudei.

Você não precisa dificultar mais as coisas.Coloque a busca por data (se marcada) em barras de 0 a iBars, e se a diferença entre iTempEndBar-iTempStartBar > iMaxBars, então iTempEndBar=iTempStartBar+iMaxBars

'

Isto é, (não examinei todas as opções - vou acrescentá-las depois)

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 писал(а) >>

Verificações para MINIMUMBARS e 0 - é claro.

Mas também acrescentei uma variante onde o usuário colocou bUseEndDate, não colocou bUseStartDate, e a janela foi especificada em barras (destacada em negrito).

'

Sobre MINIMUMBARS também não tão claro - adicionar à barra inicial (e 'pular' fora do arquivo) ou subtrair da barra final (e 'pular' fora do arquivo) :) Mas isso é como na descrição!!! :)

Ou melhor ainda, o aviso "Aprenda a contar!" e o botão Aceitar não está ativo!

'

SZY. E se após ajustar o iTempEndBar/iTempStartBar por causa do iMaxBars ou MINIMUMBARS para mudar as datas em ComboBoxes (mesmo que estejam inativos), seria ótimo.

 

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

A FSB não carregará o arquivo de dados com barras< 300. Mensagem de erro.

Melhor ainda, o aviso "Aprenda a ler!" e o botão Aceitar está inativo!


Se você estiver no "Data Horizon", tudo bem. Mas você pode definir isso corretamente e depois disso mudar para outra fonte de dados.


A versão atual do "Data Horizon" é confiável. Acho que não há caso para cair.

Vou tentar melhorá-lo...

 
zfs писал(а) >>
OsciladorMomentum MA - Estou lutando para encontrar o erro de desajuste. Tudo parece ser o mesmo, exceto o valor indicador. Eu afixarei o cabeçalho se for necessário.

Ainda não foi visto

float[] afBasePrice = Price(basePrice);

que é a base do cálculo da FSB

é exatamente

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

HH. Até agora só estou convencido de que iMAOnArray (MT4) = MovingAverage (FSB) :) E esta última é uma "inserção idiota em ME substituindo a bóia por dupla".

Em relação às matrizes que são da direita para a esquerda em MT4 e da esquerda para a direita em FSB ... O principal é como prepará-los, ou seja, alimentá-los com a entrada da função escrita.

Se!!! vou reescrevê-lo, então apenas como "Funções", mas não como "Indicadores".

E até ver algo decente no OOS, não vou nem pensar no primeiro "Se".

 

Data Horizon Improved!!!!



Data de início e data final limitam as barras de teste;

300 <= Barras de teste <= 50.000

Arquivos anexados:
fsb_update.zip  540 kb
 
Miroslav_Popov писал(а) >>
Data Horizon Improved!!!!

Tudo parece estar correto até agora:

'

iMaxBars 50 000

bUseStartDate Falso

bUseEndDate Flase

>>> Diário por barras 50.000, StartDate = 20.02.01 EndDate = 18.03.09 (Última data no arquivo)

'

iMaxBars 50 000

bUseStartDate True (01.09.2008)

bUseEndDate Flase

>>> Em 'Diário por barras' 3 318, StartDate = 01.09.08 EndDate = 18.03.09 (Última data no arquivo)

'

iMaxBars 50 000

bUseStartDate True (01.09.2008)

bUseEndDate True (01.01.2009)

>>> Em 'Diário por barras' 2 048, StartDate = 01.09.08 EndDate = 31.12.08

'

iMaxBars 50 000

bUseStartDate Falso

bUseEndDate True (01.01.2009)

>>> Diário por barras 50.000, StartDate = 06.12.00 EndDate = 31.12.08

'

iMaxBars 50 000

bUseStartDate Falso

bUseEndDate True (01.05.1999)

>>> Em 'Diário por barras' 2 015, StartDate = 04.01.99 (Primeira data no arquivo) EndDate = 30.04.2009

'

Gerador a 300 bares conta algo e pode ser abortado.

 

O que significa fractal visível?

O fractal pode ser sombreado.

 
zfs >> :

O que significa fractal visível?

O fractal pode ser sombreado.

Quando você abre os olhos e olha para o monitor, ele é visível. Ao fechá-lo, ele se torna invisível - seja sombreado.