Grande EA no backtest! - página 108

 

resultados da demonstração das últimas semanas

Olá mundo.

Foi por volta da sexta-feira passada quando descobri um possível bug ao calcular as horas bloqueadas.

estou usando FXDD com uma configuração de GMT=3. o seguinte código deve calcular a hora atual (gmt).

int hadj=TimeHour(CurTime())-GMT;

entretanto, às 00:00 hora FXDD, esta função retorna -3, à 01:00 retorna -2 e às 02:00 retorna -1. mas os valores corretos devem ser 21, 22, e 23.

esta foi a razão pela qual minhas horas bloqueadas de 23:00 gmt para os pares JPY nunca foram bloqueadas.

acrescentei este código para compensar este erro:

se (hadj<0) hadj = hadj + 24;

de qualquer forma, aqui estão os resultados da semana passada... nada espetacular, porém.

minha conta ao vivo também não teve um desempenho tão bom.

o que mais me perturba é que os backtests depois do fato se tornaram vencedores absolutos em todos os aspectos. ganhar os backtests nunca foi executado durante as negociações ao vivo e perder as negociações durante as negociações ao vivo nunca foram mostradas durante os backtests. este é um mundo perverso.

AZBOfin

Arquivos anexados:
 

Aragorn, você está usando as configurações padrão para sua versão 1.0 R2, ou você mudou alguma coisa. risco, lotes etc. não importa de qualquer forma, estou mais me perguntando sobre os filtros, configurações do SL e outros.

acrescentei sua visão EA a partir de hoje (dia de negociação perdido no passado) ao meu portfólio ao vivo por EUR$. espero que possa recuperar o que a versão "original" perdeu

AZBOfin

BTW: bom trabalho com a programação de fato

 
Aaragorn:
Tenho que dizer que eu adoro acordar de manhã para ver que esta EA ganhou dinheiro enquanto eu dormia.

Estou fazendo uma comparação da minha conta ao vivo que agora só está rodando a versão alerteuro e a conta demo que estou permitindo rodar o euro de alerta E o usdcad E a versão usdjpy, todas as quais coloquei antes no tópico... dos três o usdjpy é de longe a mais ativa, e também é de longe a menos lucrativa, parece que mal faz mais do que o break even e às vezes perde muito. Eu queria ver se os três pares juntos fariam mais ou menos do que apenas o próprio euro faria, o que é o resultado mais confiável que eu vejo até agora.

Bem, os três juntos quase quebraram minha conta demo até onde está minha conta ao vivo... eles são péssimos juntos! Acho que vou continuar deixando a versão demo do euroalert correr em risco=1 e em minha conta real em risco=.25 O saldo em minha conta real esta manhã é de $315,16 e em minha demo é de $322,63. Quase o mesmo agora, verei em demonstração se eu poderia tolerar um risco maior?

nesse meio tempo...ao longo da trilha de desenvolvimento...

Estou tendo alguns problemas com a criação de um histograma com os dados de suporte e resistência. Obviamente, não tenho loops e arrays dominados. Estou tentando fazer com que um loop passe por um array e se ele corresponder a um valor já no array então aumente a contagem e passe para o próximo valor e se ele não encontrar um valor correspondente então anexe o valor no final do array. Isto está se mostrando repugnantemente difícil. Em primeiro lugar, o array só permite interger, então tenho que converter o valor do nível de preço em um interger. Ele tem que passar por duas conversões de tipo de dados para fazer isso....THEN...ele tem que incrementar dentro do laço o que aparentemente não está fazendo. É o looping ok, mas não é o incerment dos valores de teste....oy vey. Onde está a feitiçaria de codificação quando eu preciso de uma?

#define SIZE 50 // must be set to match NumberOfBars

static int Index = 0;

static double Opens[ SIZE ] = { 0 };

static int TotalOMatches[ SIZE ] = { 0 };

static double OpenHistogram[2][ SIZE ] = { 0 };

int ct5=0,i5=NumberOfBars;

int level=0,matches=0;

// This loop cycles TotalOMatches thru the OpenHistogram looking for identical price levels and creates histogram of all unique open levels and their associated matches

for(ct5=NumberOfBars;ct5>0;ct5--)

{

string Openhist=DoubleToStr(Opens,4*10000);

int Ohist=StrToInteger("Openhist");

Print("Ohist: ",Ohist," ",TotalOMatches);

while(OpenHistogram[level][matches] == OpenHistogram[Ohist][TotalOMatches])

{

level++;

matches++;

Print("Ohist: ",Ohist," ",TotalOMatches);

//Print("cycle: ",i5);

if(OpenHistogram[level][matches] != OpenHistogram[Ohist][TotalOMatches])

{

OpenHistogram[level][matches] = OpenHistogram[Ohist][TotalOMatches];

// We print the result

Print("Open Histogram: ",OpenHistogram[level][matches]);

Print ("Open Histogram2: ",OpenHistogram[Ohist][TotalOMatches]);

}

i5--;

}

}

quando eu a executo, ela imprime

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

Ohist 0, 0

.....

cerca de um milhão de vezes.

Se alguém puder me ajudar a fazer isto funcionar, sinta-se livre também. Isso me fez torcer em torno de um poste.

 
AZBOfin:
Aragorn, você está usando as configurações padrão para sua versão 1.0 R2, ou você mudou alguma coisa. risco, lotes etc. não importa de qualquer forma, estou mais me perguntando sobre os filtros, configurações do SL e outros.

acrescentei sua visão da EA a partir de hoje (dia de ontem perdido) à minha carteira ao vivo por EUR$. espero que possa recuperar o que a versão "original" perdeu

AZBOfin

BTW: bom trabalho com a programação de fato

Obrigado, eu ainda poderia usar alguma ajuda na codificação. Conhece alguém que possa me ajudar? Na verdade, eu me vejo codificando como um rato mickey em fantasia quando a feitiçaria está de costas.

Isto é o que estou fazendo agora mesmo. Eu desliguei tudo o resto. Sim, é um mundo perverso, mas eu noto que ainda estou jogando o jogo. É impressionante como minha atitude em relação ao mundo muda quando estou lucrando, ao contrário de quando estou puxando para baixo. Meu esforço agora está focado em melhorar o lado da gestão de dinheiro das decisões. Espero que eu consiga colocar o apoio/resistência a funcionar em pouco tempo.

Que pena que eu não tenha pegado aquela onda... mas novamente este sistema não está ganhando ao pegar grandes jogadas. Pelo menos como eu o tenho vencendo é só procurar 7 pips em uma alta probabilidade inversa quando o cci está certo. O que eu tenho que lembrar é que 7 pips 3 vezes por dia são 21 pips por dia e se ele faz isso todos os dias ou mesmo perto disso com qualquer grau de confiabilidade é um grande sistema que pode ser aproveitado para fazer milhões em apenas alguns meses. Tenho que manter o objetivo à vista e não me distrair com o brilho do mercado. Toda essa claridade é inútil a menos que você possa capturá-la com algum grau de confiabilidade. Vejo mais confiabilidade neste sistema tal como ele é do que em qualquer outra coisa que estudei até agora, é por isso que ainda estou trabalhando nele.

Arquivos anexados:
 

Acho que estou vendo um padrão.

A última vez que houve um grande movimento, como aconteceu esta manhã.

o programa levou três negócios entre os retrocessos que se seguiram. Foi tomada uma posição curta e duas posições longas.

Ganhou a curta que estava descendo do pico da grande jogada. E perdeu a primeira posição longa e depois ganhou a segunda. A segunda foi realmente melhor em termos de reversão (obviamente).

então...

meu pensamento é que, por enquanto, até que eu possa programá-lo para reconhecer estas condições, eu o impeço manualmente de tomar uma posição longa agora mesmo. porque a primeira posição longa que poderia tomar é tão próxima quanto eu posso ver do último ciclo uma probabilidade menor do que a segunda posição longa que poderia tomar. Portanto, agora mesmo bloquearei manualmente as posições longas e monitorarei isto. Não tenho que evitar muitos perdedores para fazer a diferença aqui.

Vejo também que isto agora está sendo negociado logo abaixo, onde tenho uma linha de resistência traçada em 1,2781. Oxalá eu saiba como tornar meu histograma de resistência de apoio disponível para este código agora mesmo...oy

 

ok, eu acrescentei

break; neste ponto do código que acabei de afixar...

}

i5--;

break;

}[/PHP]

now it's printing the second variable of the array...that's the matches

[PHP]2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 4

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 4

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 3

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 3

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 2

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

2006.10.31 10:50:11 2006.10.27 13:03 Support and Resistance EURUSDm,H1: Ohist: 0 5

agora se eu posso descobrir como obter os níveis através de sua conversão de tipo de dados e incermenting....hum

 

olá aragorn

Também estou brincando com este sistema, mas com resultados diferentes.

você pode ser tão gentil e fazer uma captura de tela de um dia dos últimos dias?

também estou me perguntando, minha janela de alarme parece alerta cyberia - vendendo eur/usd mas o sistema vende gbp/usd ?? (tenho 2 janelas funcionando eur/usd,gbp/usd)

obrigado pela ajuda e informação

begu

Arquivos anexados:
 
forex2006:
olá aragorn

Também estou brincando com este sistema, mas com resultados diferentes.

você pode ser tão gentil e fazer uma captura de tela de um dia dos últimos dias?

também estou me perguntando, minha janela de alarme parece alerta cyberia - vendendo eur/usd mas o sistema vende gbp/usd ?? (tenho 2 janelas funcionando eur/usd,gbp/usd)

obrigado pela ajuda e informação

begu

entender que o que eu construí com alarmes é especificamente para o par eurusd exclusivamente. Poderia ser alterado no código para dizer gbpusd, mas não recomendo rodar a versão euroalert em nenhum outro par ao lado do par para o qual está otimizado.

Não tenho certeza do que você espera ganhar comigo postando um screenshot. Na verdade, estou muito ocupado agora com o desenvolvimento para fazer isso por você, sinto muito. talvez mais tarde, quando eu entender melhor o que exatamente você espera aprender com isso.

ok, aí está... pelo que vale.

Arquivos anexados:
aleerteuro.gif  61 kb
 

Ok, acho que aprendi uma lição sobre tentar melhorar manualmente as negociações...a demo tomou uma posição longa e ganhou-a e minha conta ao vivo não o fez porque eu tinha negociações longas bloqueadas...oy lololol vou voltar para permitir tanto a longa como a curta.... à prova de que eu não sou um gênio das negociações. outra teoria provou ser menos que impecável...

do lado de cima estou fazendo os arrays e loops funcionarem melhor agora.

fyi,

http://www.212movie.com/

 

Ok, já resolvi as questões de conversão de dados. Fiz um loop anterior carregar todos os valores dos preços *10000 em uma matriz de interger antes que o código executasse este loop. Agora eu simplesmente chamo a matriz de interger neste aqui.

int ct5=0,i5=NumberOfBars;

int level=0,matches=0;

// This loop cycles TotalOMatches thru the OpenHistogram looking for identical price levels and creates histogram of all unique open levels and their associated matches

for(ct5=NumberOfBars;ct5>0;ct5--)

{

//Print("bar: ",i5," Ohist: ",OpensInt," ",TotalOMatches);

while(OpenHistogram[level][matches] == OpenHistogram[OpensInt][TotalOMatches])

{

level++;

matches++;

//Print("Ohist: ",Ohist," ",TotalOMatches);

Print("cycle: ",i5," Ohist: ",OpensInt," ",TotalOMatches);

if(OpenHistogram[level][matches] != OpenHistogram[OpensInt][TotalOMatches])

{

OpenHistogram[level][matches] = OpenHistogram[OpensInt][TotalOMatches];

// We print the result

Print("Open Histogram: ",OpenHistogram[level][matches]);

Print ("Open Histogram2: ",OpenHistogram[OpensInt][TotalOMatches]);

}

i5--;

break;

}[/PHP]

this is the output...

[PHP]2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 1 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 2 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 3 Ohist: 12725 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 4 Ohist: 12722 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 5 Ohist: 12730 3

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 6 Ohist: 12713 1

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 7 Ohist: 12684 2

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 8 Ohist: 12679 4

2006.10.31 14:38:28 2006.10.27 19:59 Support and Resistance EURUSDm,H1: bar in loop: 9 Ohist: 12666 2

Um problema ainda permanece...

você pode ver que a barra no laço 1,2 e 5 são todas iguais. Portanto, enquanto isto agora está gerenciando os dados extraídos, ainda não está fazendo um histograma consolidado que tem apenas uma entrada para cada nível de preço....

Algo sobre a parte que deve anexar os valores únicos ao final do histograma não está funcionando ainda....huummm...Eu simplesmente não sou familiar com matrizes, muito menos com matrizes bidimensionais. Para alguém que sabe como fazer isto, é provavelmente muito óbvio o que estou fazendo de errado.