Firebird v63G - página 30

 

Como você pode ver no gráfico do USDCHF da última semana, o Firebird está se saindo muito bem em um mercado com limite de gama. À medida que os mercados se tornam tendências, o Firebird está muitas vezes tomando as decisões erradas. Portanto, a solução para isto pode ser muito simples: temos que sair assim que o marcador se tornar tendência e voltar quando o mercado de gama vinculada for restaurado.

Em Phoenix há um pedaço de código que está cuidando destas mudanças. Em resumo, leva as Alturas das últimas 24, 12, 6 e 2 horas e pode decidir quando o mercado se torna tendência e quando o mercado de gama vinculada é restaurado.

Arquivos anexados:
 

Excelente trabalho Hendrick, seu brainstorming está dando frutos, estou ansioso para testar o Phoenix quando você o liberar. saúde, Goldensight

Hendrick:
Aqui você pode ver a diferença de comportamento entre a Phoenix e o Firebird para o USDCHF quando as coisas estão ficando difíceis:

O Firebird estava colocando 3 BUYS, todos parados.

A Phoenix está esperando o momento certo, fez 3 VENDAS que todas atingiram o TP.

Legal?
 
MarvinSk:
Chegar muito mais perto agora

Eu acrescentei isto:

if ((Safe1!=1)&&(DealTime===2)) {

para (int i=OrdensTotal()-1; i>=0; i--) {

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

se (OrderSymbol()==Symbol()) {

se (OrderType()==OP_BUY) {

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

se (OrderType()==OP_SELL) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

Em um Back Test eu o vejo fechando o OpenTrades, mas preciso adicionar o recurso STOPLOSS Lookup, porque seus negócios de fechamento que têm GANHOS POSITIVOS, quando as variáveis Safe1 e DealTime são combinadas....

Portanto, Stoploss tem que ser a 3ª armadilha... Vou encaminhar isto na próxima semana, assim que o puser a funcionar...

Novamente todo mundo tem a idéia de ter algum controle sobre as negociações abertas existentes durante quando o Mercado se torna Volitile... Se uma negociação vai parar, prefiro parar a meio caminho em vez de 100%. Pelo menos quando o mercado se recupera, você não tem muito a recuperar...

Obrigado

Olá Marvin,

Uma solução muito mais fácil será fechar um comércio aberto assim que o sinal mudar. O que você acha?

 
Hendrick:
Oi Marvin,Uma solução muito mais fácil será fechar um comércio aberto assim que o sinal mudar. O que você acha?

Olá Hendrick... Quando você diz sinal você quer dizer quando o Safe1 e o Dealtime se tornam verdadeiros?

Se esse é o caso, o que eu tenho visto de volta porque o mercado está fechado agora, é que alguns Postive Trades também foram Fechados... Então a verificação STOPLOSS é a 3ª variável para controlar que

Eu tenho algum código apresentado por ELIHAYUN

Confira isto Hendrick...

void CloseOrder(int ticket,double numLots,double close_price)

{

int CloseCnt, err;

// tentar fechar 3 vezes

CloseCnt = 0;

enquanto (CloseCnt < 3)

{

if (OrderClose(ticket,numLots,close_price,Slippage,Violet))

{

CloseCnt = 3;

}

senão

{

err=GetLastError();

Print(CloseCnt," Ordem de fechamento de erro : (", err , ") " + ErrorDescription(err));

if (err > 0) CloseCnt++;

}

}

}

vazio CloseHalfSL()

{

duplo LosePercent = 50,0; // 50% do S/L

for(int i=OrdensTotal()-1;i>=0;i--) // escanear todos os pedidos e posições...

{

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

se (OrderMagicNumber() != MagicNumber) continuar;

if ( OrderSymbol()==Symbol() )

se (OrderProfit() < 0) // tivermos prejuízo comercial

{

duplo prc = Licitação;

se (OrderType() == OP_SELL) prc = Ask;

duplo ord_prc = OrderOpenPrice();

duplo ord_SL = OrderStopLoss();

int SL_points = MathAbs(ord_prc - ord_SL) / Point;

int Actual_Lose = MathAbs(prc - ord_prc) / Ponto;

if ( (Actual_Lose * 100 / SL_points) >= PerdaPercentagem) // Demasiada perda

{

CloseOrder(OrderTicket(), OrderLots(), prc);

}

}

}

}

//// ---- Verificar se não é seguro comercializar e depois ligar para CloseHalfSL

if (NotSafeToTrade) CloseHalfSL();

 
MarvinSk:
Chegando muito mais perto agora

Eu acrescentei isto:

if ((Safe1!=1)&&(DealTime===2)) {

para (int i=OrdensTotal()-1; i>=0; i--) {

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

se (OrderSymbol()==Symbol()) {

se (OrderType()==OP_BUY) {

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

se (OrderType()==OP_SELL) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

Em um Back Test eu o vejo fechando o OpenTrades, mas preciso adicionar o recurso STOPLOSS Lookup, porque seus negócios de fechamento que têm GANHOS POSITIVOS, quando as variáveis Safe1 e DealTime são combinadas....

Portanto, Stoploss tem que ser a 3ª armadilha... Vou encaminhar isto na próxima semana, assim que o puser a funcionar...

Novamente todo mundo tem a idéia de ter algum controle sobre as negociações abertas existentes durante quando o Mercado se torna Volitile... Se uma negociação vai parar, prefiro parar a meio caminho em vez de 100%. Pelo menos quando o mercado se recupera, você não tem muito a recuperar...

Obrigado

Esta pode ser uma maneira de deixar abertas as ordens POSITIVE GAINS. Adicione "&& OrderProfit()<0" na linha if(OrderType()".

if ((Safe1!=1)&&(DealTime===2)) {

para (int i=OrdensTotal()-1; i>=0; i--) {

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

se (OrderSymbol()==Symbol()) {

se (OrderType()==OP_BUY && OrderProfit()<0) {

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

se (OrderType()==OP_SELL && OrderProfit()<0) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

Wackena

 
Wackena:
Esta poderia ser uma maneira de deixar em aberto os pedidos de GANHOS POSITIVOS. Adicione "&& OrderProfit()<0" na linha if(OrderType()".

if ((Safe1!=1)&&(DealTime===2)) {

para (int i=OrdensTotal()-1; i>=0; i--) {

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

se (OrderSymbol()==Symbol()) {

se (OrderType()==OP_BUY && OrderProfit()<0) {

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

se (OrderType()==OP_SELL && OrderProfit()<0) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

Wackena

Wackena obrigado... mas eu fiz uma correção em nossa sintaxe

duplo pBid, pAsk;

if ((Safe1!=1)&&(DealTime===2)) {

para (int i=OrdensTotal()-1; i>=0; i--) {

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {

se (OrderSymbol()==Symbol()) {

if ((OrderType()==OP_BUY)&&(OrderProfit()<0)){

pBid=MarketInfo(OrderSymbol(), MODE_BID);

OrderClose(OrderTicket(), OrderLots(), pBid, slip, clCloseBuy);

}

if ((OrderType()==OP_SELLL)&&(OrderProfit()<0)) {

pAsk=MarketInfo(OrderSymbol(), MODE_ASK);

OrderClose(OrderTicket(), OrderLots(), pAsk, slip, clCloseSell);

}

}

}

}

}

 

Ok, tudo o que estou testando com as adições que fiz em relação ao manuseio de comércios abertos existentes quando o mercado é volátil...

A única exceção que eu tenho é... Em vez de TradingHour De 0 a 24

Estou comercializando este padrão:

0 - 7 EST

11 - 24 EST

Estou fazendo isso porque quero ter certeza de que a EA não está explicitamente negociando durante a abertura de NY... Tenho visto muita volitilidade às 8 -10 EST

Afixarei meus resultados à medida que a semana avance. Esta semana temos algumas notícias de fazedores de barulho, vamos ver o que acontece

 

Acabei de ler o livro "Bird Watching in Lion Country" (Observação de Aves no País do Leão). Não é ruim. O último capítulo é útil. É também bastante relevante para a idéia por trás do Firebird e Phoenix. A idéia não é exatamente a mesma, mas muito parecida e pode-se facilmente roubar algumas boas idéias dela e implantá-las para fazer do Firebird uma EA incrível. Se Hendrick, Wackena e os poucos outros desenvolvedores de Firebird estiverem interessados em lê-la, me avisem.

 

quer testar o Firebird

Olá hendrik,... Quero testar a versão mais recente do Fire Bird (porque muitas versões do Firebird). pode U me mostrar por favor,....

caras do trabalho duro para desenvolver pássaro de fogo para phoenix , respeito a todos vocês,...

Agradecimentos

 

Sem problemas com a conta ativa

MarvinSk:
Qualquer pessoa tem uma conta AO VIVO com o InterbankFX

Estou recebendo estes erros

2006.06.26 20:10:59: pedido compra 1,00 USDCHFm abertura a 1.2407 sl: 1.2307 tp: 1.2417 falha [Erro comum]

Isso significa que eles não estão permitindo a EA em contas AO VIVO??

Tenho uma conta ativa no IBFX, sem problemas até agora...