Ema Cross! - página 17

 
Audio:
VIVA codersguru !!!! ---Oi hellkas, onde você está, não posso deixar de ver estes meus amigos.

oi Áudio meu amigo...

Este EA é realmente fantástico... Muito obrigado SuperCodersGuru...

Eu tenho uma pergunta simples...

Estive testando esta EA v2 e notei algo estranho...

Tenho 4 configurações diferentes em plataformas diferentes mas todas na mesma corretora (NorthFinance), Ontem só tenho uma posição aberta e achei normal... hoje a mesma posição ainda está aberta e achei estranho... Reiniciei a plataforma e abri novas posições...

Por que a EA parou de negociar até eu reiniciar a plataforma?

AGRADECIMENTOS

Arquivos anexados:
emacross.htm  22 kb
 

Algumas observações

Ainda usando esta EA. Tenho notado que a maioria dos perdedores onde se negocia contra a tendência. É possível fazer uma opção neste EA que só coloca negócios que seguem a tendência?

Continue com o bom trabalho Guru!!

 

Opção de reversão!

Hendrick:
Ainda usando esta EA. Tenho notado que a maioria dos soltos onde se negocia contra a tendência. É possível fazer uma opção neste EA que só coloca comércios que seguem a tendência? Mantenha o bom trabalho Guru!!

Hendrick,

Esta opção já está incluída!

Basta definir a inversão de marcha para falso se você quiser seguir a tendência!

 

Oops!

codersguru:
Hendrick,

Esta opção já está incluída!

Basta colocar a reversão para falso se você quiser seguir a tendência!

Oops. Desculpe Guru.

 
hellkas:
oi Áudio meu amigo...

Este EA é realmente fantástico... Muito obrigado SuperCodersGuru...

Eu tenho uma pergunta simples...

Estive testando esta EA v2 e notei algo estranho...

Tenho 4 configurações diferentes em plataformas diferentes mas todas na mesma corretora (NorthFinance), Ontem só tenho uma posição aberta e achei normal... hoje a mesma posição ainda está aberta e achei estranho... Reiniciei a plataforma e abri novas posições...

Por que a EA parou de negociar até eu reiniciar a plataforma?

thks

Oi, há muito tempo que não vejo onde você esteve? Acho que o codersguru pode responder da melhor maneira. saúde

 

Olá CodersGuru,

Tenho uma idéia para sua EA. Gostaria de torná-la o mais simples possível, removendo TP, TS e SL! Sim, eu sei, louco!

Então simplesmente deixe-o trocar os MA's entre as cruzes.

1, Em uma cruz para cima, espere uma barra e vá por muito tempo.

2, Na próxima cruz para baixo, feche o comércio.

3, Espere outra barra e se os MA's ainda estiverem em baixo, abra um curto-circuito.

A única coisa a definir seria o tamanho do lote.

Em um comércio aberto, assim que a cruz do MA voltar para a outra direção, então feche o comércio imediatamente.

Isto teria que ser usado em um par de tendência como o Cabo com um spread pequeno, já que um par com um spread maior teria o lucro se o mercado começasse a variar.

Provavelmente parece loucura, mas você estaria confiando puramente na ação do preço para fazer as negociações sem nenhuma influência externa. Na verdade, o mercado estaria negociando por si só!

Seria interessante brincar com os prazos e as configurações de MA.

Até agora, coloquei opções para desligar TP,SL e TS.

//+------------------------------------------------------------------+

//| EMA_CROSS.mq4 |

//| Coders Guru |

//| https://www.mql5.com/en/forum |

//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

//| TODO: Adicionar rotina de gerenciamento de dinheiro |

//+------------------------------------------------------------------+

#propriedade copyright "Coders Guru"

#link da propriedade "https://www.forex-tsd.com"

//---- parâmetros de entrada

duplo TakeProfit externo=300;

bool externo UseTakeProfit = falso;

duplo externo Lots=1;

double TrailingStop=15; double TrailingStop=15 externo;

extern bool UseTrailingStop = falso;

duplo StopLoss externo=100;

bool UseStopLoss = falso;

Exterior int ShortEma = 10;

Exterior int LongEma = 80;

//+------------------------------------------------------------------+

//| função de iniciação de especialista |

//+------------------------------------------------------------------+

int init()

{

//----

//----

retorno(0);

}

//+------------------------------------------------------------------+

//| função de desinicialização especializada |

//+------------------------------------------------------------------+

int deinit()

{

//----

//----

retorno(0);

}

bool isNewSymbol(string current_symbol)

{

//loop através de toda a ordem aberta e comparar os símbolos

int total = EncomendasTotal();

for(int cnt = 0 ; cnt < total ; cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

Print( "OrderSymbol = " + OrderSymbol() + ": Symbol = " + current_symbol);

string selected_symbol = OrderSymbol();

if (símbolo_actual == símbolo_marcado_eleito)

retorno (Falso);

}

retorno (Verdadeiro);

}

int Crossed (linha dupla1 , linha dupla2)

{

estática int última_direção = 0;

int estática corrente_direção estática = 0;

//Donão trabalhar na primeira carga, aguarde a primeira cruz!

static bool first_time = true;

if(first_time == verdadeiro)

{

first_time = falso;

retorno (0);

}

if(line1>line2)current_direction = 1; //up

if(line1<line2)current_direction = 2; //down

if(current_direction != last_direction) //change

{

última_direção = direção_corrente;

retorno (última_direção);

}

senão

{

retornar (0); //não mudou

}

}

//+------------------------------------------------------------------+

//| função de início especializado |

//+------------------------------------------------------------------+

int start()

{

//----

int cnt, bilhete, total;

duplo SEma, LEma;

if(Bars<100)

{

Impressão ("barras com menos de 100");

retornar(0);

}

if(TakeProfit<10)

{

Imprimir ("TakeProfit menos de 10");

retornar(0); // verificar TakeProfit

}

SEma = iMA(NULL,0,ShortEma,0,MODE_EMA,PRICE_CLOSE,0);

LEma = iMA(NULL,0,LongEma,0,MODE_EMA,PRICE_CLOSE,0);

static int isCrossed = 0;

isCrossed = Crossed (LEma,SEma);

total = OrdensTotal();

if(total < 1 ||| isNewSymbol(Symbol()))

{

if(isCrossed == 1 )

{

if(UseStopLoss)

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Ask-StopLoss*Point,Ask+TakeProfit*Point, "EMA_CROSS",12345,0,Green);

mais

ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,3,0,Ask+TakeProfit*Point, "EMA_CROSS",12345,0,Green);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("Pedido aberto : ",OrderOpenPrice());

}

else Print("Erro na abertura do pedido de compra : ",GetLastError());

retornar(0);

}

if(isCrossed == 2)

{

if(UseStopLoss)

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Bid+StopLoss*Point,Bid-TakeProfit*Point, "EMA_CROSS",12345,0,Red);

mais

ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,Bid-TakeProfit*Point, "EMA_CROSS",12345,0,Red);

if(ticket>0)

{

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Imprimir("Pedido de venda aberto : ",OrderOpenPrice());

}

else Print("Erro na abertura do pedido de VENDA : ",GetLastError());

retornar(0);

}

retorno(0);

}

for(cnt=0;cnt<total;cnt++)

{

OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);

//OrderPrint();

if(OrderType()<=OP_SELL && OrderSymbol()==Symbol())

{

if(OrderType()==OP_BUY) // posição longa é aberta

{

// deve ser fechado?

/* REMOVIDO - Parada de enchimento somente fechar

if(isCrossed == 2)

{

OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // posição fechada

retornar(0); // sair

}

*/

// verificar a parada de trilha

if(TrailingStop>0)

{

if(Bid-OrderOpenPrice()>Point*TrailingStop)

{

if(OrderStopLoss()<Bid-Point*TrailingStop)

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-Point*TrailingStop,OrderTakeProfit(),0,Green);

retornar(0);

}

}

}

}

senão // ir para a posição curta

{

// deve ser fechado?

/* REMOVIDO - Parada de enchimento somente fechar

if(isCrossed == 1)

{

OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // posição fechada

retornar(0); // sair

}

*/

// verificar a parada de trilha

if(TrailingStop>0)

{

if((OrderOpenPrice()-Ask)>(Point*TrailingStop))

{

if((OrderStopLoss()>(Ask+Point*TrailingStop)) ||| (OrderStopLoss()==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+Point*TrailingStop,OrderTakeProfit(),0,Red);

retornar(0);

}

}

}

}

}

}

retorno(0);

}

//+----------------------------------------------------------------+

A única coisa sobre a qual não tenho certeza é como você fecha o comércio agora. Estou certo em dizer que você desativou o TS?

Espero que você não se importe que eu altere seu código.

Obrigado,

 

Acho que essa idéia é uma boa idéia de abrir o bar depois e fechar na próxima cruz (talvez usar um stoploss de retaguarda ajudaria a fechar os lucros). Em mercados planos/de lado, um comerciante de contra tendência faz sentido, mas é muito mais arriscado e você pode ter que esperar 3 meses (gráficos diários) para que sua negociação seja positiva, ao contrário de imediatamente com um comerciante de contra tendência.

Eu gosto da maneira como MA_Cross move o prejuízo para o lucro a +20 ou mais, de modo que uma vez que uma negociação é lucrativa, você não precisa mais ter exposição de margem.

Graham

 

Oi Graham,

Sim, a idéia surgiu quando olhamos para alguns dos pares mais tendenciosos. Na maioria dos movimentos os pips são sempre feitos, longos ou curtos, não importa.

Eu simplesmente quero tirar proveito disso.

A opção é usar um Trailing Stop simplesmente alterando o estado desta linha de falso para verdadeiro.

"Parada de UseTrailingStop externo = falso";"

Mas como sou um novato absoluto na codificação (obrigado CodersGuru ), não tenho certeza de como o programa fecha os negócios no momento. Ele está procurando por um stoploss? Eu ainda estou estudando o fechamento de pedidos.

Definitivamente teria que negociar com a tendência que eu acho que contrariaria a tendência rapidamente.

Eu também estava pensando em usar isto nas TFs menores como 5, 15, 30min e até mesmo 1 hora, tornando as MA's menores para pegar as tendências menores.

 

Bug!

hellkas:
oi Áudio meu amigo...

Este EA é realmente fantástico... Muito obrigado SuperCodersGuru...

Eu tenho uma pergunta simples...

Estive testando este EA v2 e notei algo estranho...

Tenho 4 configurações diferentes em plataformas diferentes mas todas na mesma corretora (NorthFinance), Ontem só tenho uma posição aberta e achei normal... hoje a mesma posição ainda está aberta e achei estranho... Reiniciei a plataforma e abri novas posições...

Por que a EA parou de negociar até eu reiniciar a plataforma?

thks

hellkas,

Obrigado por suas contribuições!

Tenho que verificar isso segunda-feira.

 
Razão: