[ARQUIVO] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 3. - página 37

 
nuan:
Pergunta, como posso programar o fechamento de todos os pedidos, por exemplo, a cada 30 minutos?

datetime prevtime;
int Magic=11111;
int slippage=5;

//=====================
 int start(){
 
    datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPos();
  return(0);
 }
//=====================
 void CloseAllPos(){
   double maxlot=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
     if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue; 
      if(maxlot<OrderLots()){ 
         maxlot=OrderLots();
         if(OrderType()==OP_BUY)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Bid, Digits),slippage,Yellow);
         if(OrderType()==OP_SELL)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Ask, Digits),slippage,Yellow);
  } } }
 
Obrigado
 
Preços de fechamento substituídos por preços de abertura - o resultado é idêntico ao anterior, exceto que agora a linha de patrimônio líquido está estritamente acima da linha de saldo. O número de negócios e o lucro diminuíram um pouco, mas a situação se estabilizou ainda mais. Não há perda de negócios no período estudado.
 
Vinin:


Se eu entendi corretamente, com uma verificação das condições das ordens no mercado? -

...
if (OrderType()<2) 
//здесь  корректировка размера позиций с учетом ввода/вывода


Coisas interessantes! Você pode postar o código completo? Não está muito claro como as ordens estão ligadas aos fundos que estão sendo depositados/retirados. Podemos determinar quanto dinheiro foi depositado na conta no início, o saldo inicial, por assim dizer, sem recalcular a história das posições fechadas? Nem todos os corretores fornecem todo o histórico comercial, alguns com menos de 1 mês, portanto o recálculo da rentabilidade do Expert Advisor está errado: a data de início está correta, mas o saldo é o que estava há um mês atrás. Como resultado, o lucro mensal é estendido ao longo de todo o período comercial.

 
nuan:
Pergunta, como posso programar o fechamento de todos os pedidos, por exemplo, a cada 30 minutos?

datetime prevtime;
int Magic=11111;
int slippage=5;

//=====================
 int start(){
 
    datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPos();
  return(0);
 }
//=====================
 void CloseAllPos(){
   double maxlot=0;
   for(int i=OrdersTotal()-1; i>=0; i--){
     if(!OrderSelect(i, SELECT_BY_POS, MODE_TRADES))continue;
     if(OrderSymbol()!=Symbol())continue;
     if(OrderMagicNumber()!=Magic)continue; 
      if(maxlot<OrderLots()){ 
         maxlot=OrderLots();
         if(OrderType()==OP_BUY)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Bid, Digits),slippage,Yellow);
         if(OrderType()==OP_SELL)OrderClose(OrderTicket(),maxlot,NormalizeDouble(Ask, Digits),slippage,Yellow);
  } } }


чет он не работает , закрывает в секунду
 
forexnew:


Se eu entendi corretamente, com uma verificação das condições das ordens no mercado? -


Coisas interessantes! Você pode postar o código completo? Não está muito claro como as ordens estão ligadas aos fundos que estão sendo depositados/retirados. Podemos determinar quanto dinheiro foi depositado na conta no início, o saldo inicial, por assim dizer, sem recalcular a história das posições fechadas? Nem todos os corretores fornecem todo o histórico comercial, alguns com menos de 1 mês, portanto o recálculo da rentabilidade da EA está errado: a data de início está correta, mas o saldo é o que estava há um mês atrás. Como resultado, o lucro mensal é estendido ao longo de todo o período comercial.


Este provavelmente não é o caso, afinal de contas.
No terminal, abra a aba "Histórico da conta", clique com o botão direito do mouse, selecione "Todo histórico".
O histórico será baixado até quando a conta foi aberta.
 
forexnew:


Se eu entendi corretamente, com uma verificação das condições das ordens no mercado? -


Coisas interessantes! Você pode postar o código completo? Não está muito claro como as ordens estão ligadas aos fundos que estão sendo depositados/retirados. Podemos determinar quanto dinheiro foi depositado na conta no início, o saldo inicial, por assim dizer, sem recalcular a história das posições fechadas? Nem todos os corretores fornecem todo o histórico comercial, alguns com menos de 1 mês, portanto o recálculo da rentabilidade do Expert Advisor está errado: a data de início está correta, mas o saldo é o que estava há um mês atrás. Como resultado, o lucro mensal é estendido ao longo de todo o período comercial.

Não se trata disso aqui, mas trata-se de manter um controle programático sobre se houve depósitos/retiradas de/para a conta até certo tempo. Ainda não há código, há aqui uma fórmula básica para calcular o ajuste do volume da posição. (O número (em termos de fundos totais) de colocações/retiradas está vinculado a ele)
 
nuan:


O que você quer dizer com "fecha em um segundo"?
Muito tempo? Ou o quê?

 

A carta significa que ela fecha a ordem no mesmo segundo, não em 30 minutos.


Eu o coloquei como em seu exemplo


datetime TimeM30=iTime(NULL,30,0);
    if(TimeM30==prevtime) return(0); 
    prevtime = TimeM30;   
    CloseAllPosTime();
O robô não fecha por outros motivos, ou seja, não fecha em parada ou com lucro.


1 2011.07.29 00:00 comprar 1 0.01 1.4328 1.3328 1.5328 0.00 1000.00
2 2011.07.29 00:01 fechar 1 0.01 1.4327 1.3328 1.5328 -0.10 999.90
3 2011.07.29 00:01 comprar 2 0.01 1.4329 1.3329 1.5329 0.00 999.90
4 2011.07.29 00:01 fechar 2 0.01 1.4326 1.3329 1.5329 -0.30 999.60
5 2011.07.29 00:01 comprar 3 0.01 1.4328 1.3328 1.5328 0.00 999.60
6 2011.07.29 00:03 fechar 3 0.01 1.4327 1.3328 1.5328 -0.10 999.50
7 2011.07.29 00:03 comprar 4 0.01 1.4329 1.3329 1.5329 0.00 999.50
8 2011.07.29 00:03 fechar 4 0.01 1.4329 1.3329 1.5329 0.00 999.50


 
Roman.:
Esta não é a questão aqui, mas se houve depósitos/retiradas de/para a conta até um certo tempo. Ainda não há código, há aqui uma fórmula básica para calcular o ajuste do volume da posição. (O número (em termos de fundos totais) dos depósitos/retiradas está vinculado a ele)

Eu entendo.

E se você considerar a abertura de uma conta com $0 como início, e o primeiro depósito como complemento. É possível determinar programmaticamente todos os toppings (incluindo o primeiro) que foram feitos para a conta?