Resposta

É possível atingir o ponto de equilíbrio/ativar o stop loss/sair de uma negociação após...

9 respostas

Threshold

Cliente, bbp_participant, comunidade, 723 respostas.

Perfil da visita

10 anos atrás #112105

É possível atingir o ponto de equilíbrio/ativar o stop loss/sair de uma negociação após 24 horas (barras)?
Minha estratégia é uma estratégia de barra diária.
Quero atingir o ponto de equilíbrio após exatamente 24 horas ou sair se a negociação não for vencedora após exatamente 24 horas.
Vejo que há uma opção "BarsSinceOrderOpen", mas essa opção não tem opção de período de tempo. Você pode adicioná-la? Ou há outras possibilidades?

0

stearno

Cliente, bbp_participant, comunidade, 379 respostas.

Perfil da visita

10 anos atrás #124337

É isso que você está procurando?

 

-Stearno

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

10 anos atrás #124363

você pode fazer isso criando uma regra para isso.

 

Algo como:

 

IF(BarsSinceOrderOpen >= 1) // negociar antes do dia

e OpenPL() > 0

ENTÃO 

mover SL para BE

 

 

e outra regra para fechar a negociação:

 

 

IF(BarsSinceOrderOpen >= 1) // negociar antes do dia

e OpenPL() < 0

ENTÃO 

ClosePosition

Marcar
EstratégiaQuant arquiteto

0

Threshold

Cliente, bbp_participant, comunidade, 723 respostas.

Perfil da visita

10 anos atrás #124383

Vocês não leram a pergunta por completo ou talvez eu não tenha sido claro. Minhas desculpas.
BarsSinceOrderOpen>=1 é exatamente o que eu disse que não funcionaria porque não tem opção de período de tempo. E se a ordem tiver sido inserida às 23:00 de ontem? Então, a ordem fica em equilíbrio após apenas 1 hora. BarsSinceOrderOpen não significa 24 horas. Significa simplesmente uma nova barra. Pode ser 1 hora 2 horas 3 horas 4 horas 5 horas....
Estou buscando o ponto de equilíbrio após exatamente 24 horas (ou 24 barras H1) para a estratégia D1.
Eu preciso fazer:

 

BarsSinceOrderOpen(Timeframe: PERIOD_H1) > 24

Mas não há opção de período de tempo.

 

 

Minha estratégia é uma estratégia de barra diária.
Quero atingir o ponto de equilíbrio após exatamente 24 horas ou sair se a negociação não for vencedora após exatamente 24 horas.
Vejo que há uma opção "BarsSinceOrderOpen", mas essa opção não tem *nenhuma opção de período de tempo*. Você pode adicioná-la? Ou há outras possibilidades?

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

9 anos atrás #124435

Ok, entendi. Infelizmente, isso não é fácil de resolver no momento, sem adicionar a opção de período de tempo às Barras desde a abertura da ordem.

 

Mas você pode fazer isso usando uma função personalizada. Adicione as seguintes funções no arquivo EA Wizard/code/CustomFunctions.mq4:

 

int sqGetBarsSinceEntryH1(int orderMagicNumber) {
   para (int cc = OrderTotal() - 1; cc >= 0; cc-) {
      Se (OrderSelect(cc, SELECT_BY_POS) ) {
 
         se((orderMagicNumber == 0 || OrderMagicNumber() == orderMagicNumber) && OrderSymbol() == Symbol()) {
            return (sqGetBarsFromOrderOpenH1());
         }
      }
   }
 
   return(-1);
}
 
int sqGetBarsFromOrderOpenH1() {
   datetime opTime = OrderOpenTime();
   int barsTOCheck = 30;
   int numberOfBars = 0;
   
   for(int i=0; i<=barsTOCheck; i++) {
      se(opTime < iTime(NULL, PERIOD_H1,i)) {
         numberOfBars++;
      }
   }
 
   return(numberOfBars);
}

 

E, no Assistente de EA, em sua condição, você pode chamar a função personalizada: sqGetBarsSinceEntryH1 (seu número mágico) >= 24

Marcar
EstratégiaQuant arquiteto

0

Threshold

Cliente, bbp_participant, comunidade, 723 respostas.

Perfil da visita

9 anos atrás #124471

Fantástico! Existe uma maneira de aplicar isso à ativação do TS?

 

Agora sei como fazer com a BE.

Esta é minha tentativa de aplicá-la à ativação do TS.

 

Ativação de TS (variável) = TSAktivate

 

0

Threshold

Cliente, bbp_participant, comunidade, 723 respostas.

Perfil da visita

9 anos atrás #124479

O EA não será carregado com êxito depois que eu alterar o arquivo CustomFunctions.mq4.
Farei o upload. Talvez minha edição tenha sido incorreta.
Copiei e colei todo o código que você forneceu e adicionei ao final do arquivo.

 

Aqui está meu trabalho também:

0

JTamas

Assinante, bbp_participante, comunidade, 26 respostas.

Perfil da visita

9 anos atrás #124484

Eu tentaria isso:

 

1. criar uma variável: 'opentime'

2. Rule1#: IF order opened this minute is true THEN assign variable opentime = hour(0 bars ago)

3. Regra 2# IF barras desde a abertura da ordem = 1 e Timecurrent = GetTime(opentime, 0, 0)

ENTÃO

qualquer que seja

 

Como você deseja fechar após 24 horas, isso significa que isso ocorrerá no mesmo horário em que foi aberto, apenas um dia depois.

0

Threshold

Cliente, bbp_participant, comunidade, 723 respostas.

Perfil da visita

9 anos atrás #124492

Abordagem muito simples, eu gosto dela.
Testei, mas não funciona.

0

Marca Fric

Administrador, sq-ultimate, 2 respostas.

Perfil da visita

9 anos atrás #124520

Hi,

 

Ainda não está funcionando? Você pode anexar sua estratégia aqui?

Quando verifiquei o arquivo CustomFunctions que você anexou, não vi minhas funções adicionadas lá, e ele foi compilado corretamente.

Marcar
EstratégiaQuant arquiteto

0

Visualizando 9 respostas - 1 até 9 (de um total de 9)