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

 

Sim, o correio está correto.

Eu lhe enviei uma mensagem particular há um minuto atrás.

 

Oh, eu tinha esquecido tudo sobre a linha privada :))))))

Já está empilhado lá em cima :). Rapazes - desculpem se eu não respondi a tempo, eu geralmente deslig o Mensagens Pessoais nos fóruns e nem prestei atenção aqui por hábito :)...


Miroslav - então agora vou preparar uma mensagem (resposta) e enviar pelo correio ...

 

**Remember, Bar Opening and Bar Closing - Point of the Position não são os únicos problemas, os valores dos indicadores comuns podem ser usados lá. E assim uma posição pode ser aberta "no meio" de um bar (fácil!). (por assim dizer, sobre o cálculo de valores indicadores SOMENTE no cruzamento de barras. como eu disse - esta condição "nem sempre" é viável ;))**


Se entendermos corretamente, você acha que temos que recalcular um Indicador em cada tick se o ponto de Entrada estiver no meio da barra (Digamos que em um MA). Eu me darei ao luxo de não concordar com você.


Para um teste posterior confiável (usando MT, FSB ou outro testador), todos os indicadores, inclusive os pontos de entrada/saída, têm que ser fixados. Isso não limita uma EA a usar a entrada no mercado durante a barra.

Exemplos:


1. entrada na Moving Average (21, fechar):

Neste caso, não podemos utilizar o MA atual, uma vez que ele está subindo / descendo até que o preço de fechamento do bar seja fixado. Portanto, temos que usar o MA do bar anterior. Fazendo isso, não é necessário recalculá-lo a cada tique.


2 Entrada na Moving Average (21, aberto):

Aqui podemos usar o MA atual. É fixo porque o preço base MA - Abertura de Barras já é fixo. Também não precisamos recalculá-lo a cada tique.


--------

Editar:

É claro que esta é a minha opinião pessoal.

Não pretendo forçá-lo a recuar dessa forma.

Cumprimentos!


Edit2:

Caso me falte algo, por favor, mostre-me um exemplo de uma estratégia preparada com a FSB quando você tiver que recalcular um indicador em cada tick.

 

Mmm, Miroslav, eu entendi a idéia (há muito tempo, além do mais)!

Eu estava apenas confuso com as construções em código indicador, que eu dei acima:

                    case "The position opens above the MA value":
                        component[0]. PosPriceDependence = PositionPriceDependence. BuyHigherSellLower;
                        component[0]. UsePreviousBar     = iPrvs;
                        component[1]. DataType           = IndComponentType. Other;
                        component[1]. ShowInDynInfo      = false;
                        component[2]. DataType           = IndComponentType. Other;
                        component[2]. ShowInDynInfo      = false;
                        break;

a saber: componente[0].PosPriceDependence = PosiçãoPreçoDependente.ComprarHigherSellLower;

Não é esse o caso, pois não? É importante entender que não estou falando do cálculo do indicador, como tal. O valor do qual, sim, é estacionário dentro de um bar. Mas sobre o fato de que neste caso (que citei acima) temos que comparar o valor do último preço com ele? A fim de tomar a decisão de abrir uma posição. Na FSB, isto é feito por procedimentos internos (se eu entendi corretamente). Mas porque eles "não são conhecidos por nós" (e, na verdade, para quê?) - sugeri recalcular o indicador em cada tique, em tais casos, para receber um SIM/NÃO inequívoco sobre a condição lógica. Em outras palavras, que seja o próprio indicador a fazer esta conclusão, não o código que lhe é externo. Eu falava sério!

Quero dizer, uma vez mais - concordo com a tese de que o indicador deve ser calculado uma vez sobre as barras de "cruzamento". Mas nos casos em que o indicador dá sinais sobre abertura de posição, em aplicação ao trabalho de futuras EA(s) na MT - devemos confiar somente nestes valores (SIM/NÃO), e não na comparação dos preços atuais com os preços indicativos (que são estáticos). Que o próprio indicador compare isto para nós. E só levaremos em conta seu SIM/NÃO. É isso aí... :)


Ou está me faltando algo em algum lugar? :D? ("tem um pouquinho de mamãe...")

 

Daí a conclusão de que preciso rever estes cálculos (acabei de pensar sobre isso) para comparar Close[iBar] com o valor do indicador atual ou anterior (qual deles é estático) corretamente (iPrvs deve ser levado em conta). Mas na idéia eu acho que não estou errado...?!



(o que estamos discutindo :))?! Indicadores ainda serão responsáveis pelo trabalho com IndicatorCounted() EM QUALQUER LUGAR!!! Só não o farei de outra forma :). Eles podem ser usados não apenas por escritores da EA, mas também por usuários que precisarão de parte visual (e valores em tempo real). O código original não muda nem um pouco! Normalmente, basta adicionar um pouco no início, o que inicializa os valores "originais" das variáveis auto-referenciadas. Não mais do que isso... Às vezes, isto é dado "pouco sangue". Às vezes não tanto (como no exemplo da Hora Alta Baixa). Mas em qualquer caso, esforço corporal mínimo (ainda?) :))


Ou é um aspecto global? Então não há nada para discutir - iPrvs é fantástico!:) Parada completa! Mas ninguém discute com isso :)!


(Eu enviei um e-mail... Vou tentar responder aqui pessoalmente)

 
caso "A posição se abre acima do valor MA":
componente[0].PosPriceDependence = PositionPriceDependence.BuyHigherSellLower;


Esta lógica não pode ser gerenciada a partir do próprio indicador, uma vez que os sinais dependem do indicador do Ponto de Entrada.

Esta lógica não dá sinais de compra/venda (1 , 0) como as outras.

A FSB procede da seguinte forma:

Inicialmente, ele ignora este indicador ao tomar a decisão de negociar;
2. se todas as outras regras lógicas forem satisfeitas e a FSB conhecer o ponto de entrada, ela verifica este indicador para permitir ou proibir a entrada imediatamente antes da execução real.

Isto está incluído no backtester.

Há três opções para aplicação em um EA:

1. calcular primeiro os pontos de entrada (em uma matriz). Depois disso, enviar esta matriz para o indicador para calcular os sinais de Compra/Venda.

2. ter um método básico Preço de Entrada (int iBar) que retorna o preço de abertura da posição.
A posição se abre acima do valor MA:
para(int iBar ... )
{
SignalLong[iBar] = EntryPrice(iBar) > MA[iBar] ? 1 : 0;
SignalShort[iBar] = EntryPrice(iBar) < MA[iBar] ? 1 : 0;
}

3. chamar este indicador antes da entrada propriamente dita:
Double EntryPrice = ....
If(Preço de entrada > fsb_MA(...)))
EncomendarEnviar(...);


----

Há vários indicadores que não definem sinais 1:0:
- Todos os indicadores com a lógica "Posição abre acima / abaixo ..."
- Indicadores de "tempo": Hora de entrada, Hora de entrada, Dia da semana;
- Conta Porcentagem de parada
- ATR Stop
- Limite de parada
- Parar a perda
- Tirar lucro
- Parada de trilha
- Limite de Parada de Rastreamento
- Limitador de lote

Estes "Indicadores" dão permissão de entrada/saída no momento da negociação;










 

Miroslav - "consegui"! Não no sentido de finalmente entender algo :) (a idéia de manipular a FSB com lógica indicadora,

Entendi isso há muito tempo (não levei em conta o Stop Limit e outras coisas, ainda não os procurei).

Finalmente estou me lembrando de algo, digamos assim :)


Estamos apenas falando no mesmo contexto de aplicações diferentes (ou seja, tanto as aplicações em si (FSB e MT) como "em aplicação a").

O ponto-chave é o cálculo dos indicadores FSB uma vez, antes do próprio procedimento de back-testing.

A FSB simplesmente não pode calcular sem ambiguidade 1/0 para tais condições ("Posição abre acima / abaixo ...") antes do próprio teste!

Portanto, ela usa exatamente a lógica correta:

1. inicialmente ignora este indicador ao tomar a decisão de negociar;
2. se todas as outras regras lógicas forem satisfeitas e a FSB conhecer o ponto de entrada, ela verifica este indicador para permitir ou proibir a entrada imediatamente antes da execução real.
Mas para nosso caso (RealTime) isto NÃO É OBRIGATÓRIO. Ou melhor - calculando indicadores "constantemente e na hora" - teremos em qualquer momento
a qualquer momento em particular, teremos uma resposta definitiva 1/0 para esta condição lógica.
Nós ainda "não podemos" não poderemos abrir uma posição ao último preço disponível (Fechar[0]). Então, por que não comparar o indicador com ele?
E por que não emitir um 1/0 lógico como em outros casos (desculpe, a formatação está "desligada", não quero olhar para o HTML (não vale a pena "se passar"):
 caso MA_POS_OPENS_ABOVE:
para (iBar = iFirstBar; iBar >= 0; iBar--) {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar];
}
break;

// O que aparentemente é mais correto reescrever com o iPrvs em mente (hoje "surgiu em mim" como contornar este problema em geral)

caso MA_POS_OPENS_ABOVE:
Para (iBar = iFirstBar; iBar >= 0; iBar--) {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar + iPrvs];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar + iPrvs];
}
break;

// Considerando que os valores em todas as barras, exceto [0] (em tempo real) serão "não muito corretos" (ou melhor, fixos para Close[iBar]), podemos mudar o código desta forma

caso MA_POS_OPENS_ABOVE:
para (iBar = iFirstBar + 1; iBar >= 0; iBar--) {
if (iBar > 0) {
LPIndBuffer[iBar] = 0.0;
SPIndBuffer[iBar] = 0.0;
} senão {
LPIndBuffer[iBar] = Close[iBar] > adMA[iBar + iPrvs];
SPIndBuffer[iBar] = Close[iBar] < adMA[iBar + iPrvs];
}
}
break;

// T.Isto é, para todas as barras, exceto [0], o indicador mostrará que esta condição não é cumprida (não foi cumprida) - uma questão de estética, por assim dizer... nada mais.

 

(desligado: estou tentando inserir o código novamente, como um comentário separado - "a flor de pedra não sai" :), depois um comentário vazio, depois vai apenas para a primeira página... Talvez haja alguns elementos no texto - "não digerível"... em geral - leia-se (como acima) :))

 

Senhores, Miroslav atualizou a FSB para a versão 2.8.3.6 Beta ontem:

http://forexsb.com/forum/post/2446/#p2446


A lógica do sinal foi unificada. As mudanças afetaram a grande maioria dos indicadores. O código de cálculo dos indicadores não foi alterado!

Os sinais lógicos se tornaram um pouco menos suscetíveis ao "ruído". No arquivo de configuração, acrescentamos dois parâmetros:

  <SIGMA_MODE_MAIN_CHART> 1</SIGMA_MODE_MAIN_CHART>
  <SIGMA_MODE_SEPARATED_CHART> 5</SIGMA_MODE_SEPARATED_CHART>

Os parâmetros definem o "limiar" de sinais disparados a partir do nível de mudança de preço (para indicadores na janela com o gráfico e para indicadores com suas próprias janelas).

A correspondência dos valores do MODE é dada aqui:

http://forexsb.com/library/source/Sigma.html


Acreditamos que os valores "padrão" são EXATAMENTE adequados (na maioria dos casos). Mas... sinta-se à vontade para experimentar :).


Esperei propositadamente por este lançamento, para não fazer um trabalho duplo. Eu também estou colocando minhas próprias obras. Tenho 20 indicadores no momento (não consideraria 2 deles como "úteis" (Fechamento / Abertura de Barra) - eles serão úteis no futuro ;))):

-FSB- Accelerator Oscillator.ex4
-FSB- Accumulation Distribution.ex4
-FSB- ADX.ex4
-FSB- Bar Closing.ex4
-FSB- Bar Opening.ex4
-FSB- Bar Range.ex4
-FSB- Bollinger Bands.ex4
-FSB- Donchian Channel.ex4
-FSB- Envelopes.ex4
-FSB- Force Index.ex4
-FSB- Heiken Ashi.ex4
-FSB- Hourly High Low.ex4
-FSB- Ichimoku Kinko Hyo.ex4
-FSB- Keltner Channel.ex4
-FSB- Moving Average.ex4
-FSB- Price Oscillator.ex4
-FSB- RSI MA Oscillator.ex4
-FSB- RSI.ex4
-FSB- Starc Bands.ex4
-FSB- Steady Bands.ex4

Algoritmos de cálculo e lógica de sinal são totalmente compatíveis com FSB (bem... deve :D)...

INCLUINDO VALORES INDICADORES!!! (FSB (aplicação) = -FSB- (conversão) = MT (interna) ) (até qualquer sinal).

A exceção é "-FSB- Accumulation Distribution.ex4" - Miroslav tem um código complicado lá, ainda não chegou lá (não corresponde exatamente à MT, não checou com FSB).


Estou continuando em ordem alfabética (bem quase). Se alguém precisar de algo mais prioritário, escreva... (pessoa com Hourly High Low desapareceu em algum lugar, eu não entendi - ajudou ou não :D?!)


Ao mesmo tempo, começamos a desenvolver a EA, que será capaz de operar com estas versões de indicadores. No final, deve haver uma espécie de molho:

FSB -> Exported strategy file -> EA, baseado em indicadores convertidos e lógica comercial interna, compatível com FSB...


Boa sorte! E boas festas para todos!!!

Vou aparecer mais perto do início da semana de trabalho. fique atento...

Arquivos anexados:
 
Stellarator >> :

Senhores, Miroslav atualizou a FSB para a versão 2.8.3.6 Beta ontem:

http://forexsb.com/forum/post/2446/#p2446


Estou baixando algo e o arquivo está quebrado... :
Razão: