Como codificar? - página 46

 
antone:
Então, qualquer um pode me ajudar, por favor... exemplo, ele só negociará uma ordem em 5h - 10h, mas pode negociar novamente em outra hora...

É muito simples, você precisa verificar o tempo de abertura do pedido do último pedido na história e depois verificar o dia com a função TimeDay. Se for hoje, então não negocie.

 
Kalenzo:
É muito simples, você precisa verificar o tempo de abertura do pedido do último pedido na história e depois verificar o dia com a função TimeDay. Se for hoje, então não negocie.

você pode me dar um script simples sobre como usá-los? eu não sou um programador, desculpe

obrigado!

 

1 trailing stop / pedidos múltiplos

estou tentando fazer uma EA que modificará todas as ordens abertas para igualar o mesmo nível de paralisação atual, de modo que todas as ordens sejam fechadas no mesmo nível

extern int profit = 100;

extern int stop = 20;

int start()

{

int i, HstTotal=OrdersHistoryTotal();

for(i = HstTotal-1; i >= 0; i --)

{

if(!OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) continue;

OrderModify(i,OrderOpenPrice(),Bid-Point*stop,profit,0,Green);

}

}

 

Use OrdensTotal() e MODE_TRADES em seu lugar

 
 
Kalenzo:
É muito simples, você precisa verificar o tempo de abertura do pedido do último pedido na história e depois verificar o dia com a função TimeDay. Se for hoje, então não negocie.

for(int k=0;k<OrdersTotal();k++)

{

OrderSelect(k,SELECT_BY_POS,MODE_TRADES;

if(OrderSymbol()== "GBPUSD" && OrderMagicNumber()== Magic_Number)

{

if(OrderOpenTime() != TimeCurrent ()) {Trade = true;}

if(OrderOpenTime() == TimeCurrent ()) {Trade = false;}

}

}

o que eu fiz de errado? por favor, ajude-me

 

Correções em vermelho abaixo.

Robert

antone:

for(int k=0;k<OrdersTotal();k++)

{

OrderSelect(k,SELECT_BY_POS,MODE_TRADES)

if(OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number)

{

if(TimeDay( OrderOpenTime())!= Day()) {Trade = true;}

if(TimeDay( OrderOpenTime()) == Dia() ) {Comércio = falso;}

}

}

O mesmo tipo de código pode ser usado para verificar se o tempo de abertura está entre duas horas ou até mesmo horas ao minuto como 11:45 para evitar um novo comércio.

int openHour = TimeHour(OrderOpenTime()));

se (openHour > 10 && openHour < 13) Comércio = falso;

if (openHour = 13) Troca = verdadeiro;

o que eu fiz de errado? por favor, ajude-me
 

Programadores ATTN - Problema com os novos preços de 6 dígitos

A todos os programadores.

Chegou ao meu conhecimento que existe um problema com alguns corretores que usam uma casa decimal adicional para os preços. Isto causará um problema em qualquer lugar em que o Ponto seja usado em um cálculo para coisas como StopLoss, TakeProfit ou Níveis de Breakout.

Há uma solução simples.

Agora eu uso a seguinte função e substituo toda referência ao Point pelo myPoint.

Eu declaro uma variável no topo do EA.

duplo myPoint;

então no init uso a função para definir o valor.

init()

{

myPoint = SetPoint();

}

Em seguida, a função.

// Valor de Set Point para 2 ou 4 casas decimais

// para lidar com corretores que usam 3 e 5 casas decimais

duplo SetPoint()

{

mPoint duplo;

se (Dígitos < 4)

mPoint = 0,01;

mais

mPoint = 0,0001;

retorno(mPoint);

}

Haveria também um problema com alguns indicadores que usam o Point para determinar onde traçar linhas ou tamanho de histogramas.

Por favor, passe isto para qualquer fórum ou grupo onde os programadores precisem desta informação.

Eu já postei no Yahoo group MTE & I.

Espero que isto ajude.

Robert

 

Gidday

Estou procurando por alguma ajuda que parece que não consigo descobrir como sair de uma posição em um número de barras/dia. Por exemplo, eu saio muito tempo na segunda-feira e o sistema sai 5 barras/dia depois.

Qualquer ajuda seria boa.

Abraço

Beno

 

Beno,

Você poderia usar um código semelhante ao do correio acima para não negociar. Basta verificar se o dia atual é o número de dias depois para fechar a partir do dia aberto. O código poderia ser modificado para usar horas ou minutos também.

Outra maneira seria calcular a hora de fechamento da negociação como hora de saída quando a negociação estiver aberta. Então, para sair, basta verificar o horário de saída em seu código de saída de verificação.

Você precisaria usar a fórmula apropriada para adicionar o valor correto ao tempo aberto para obter o tempo de fechamento. Isto usaria o número de minutos por barra * o número de barras mais tarde para fechar adicionadas ao OrderOpenTime().

Espero que isto ajude.

Robert

Beno:
Gidday

Estou procurando por alguma ajuda que parece que não consigo descobrir como sair de uma posição em um número de barras/dia. Por exemplo, eu saio muito tempo na segunda-feira e o sistema sai 5 barras/dia depois.

Qualquer ajuda seria boa.

Abraço

Beno