[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 419

 
melnikas:

O meu caso é assim tão difícil?

double ExtVolumesBuffer[];

você está certo sobre o local. Você deve especificar o tamanho da matriz antes de utilizá-la. Ou fazer dele outro amortecedor

 
//+------------------------------------------------------------------+
int deinit()
  {    
  return(0);
  }
//+------------------------------------------------------------------+
int start()
  {
  f1(); //Как сделать, что-бы после вызова функции, программа могла остановиться?
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
    return(f2());
    }
//+------------------------------------------------------------------+    
  int f2()
    {  
    return(deinit()); //Тут, по задумке, нужно остановить работу всей программы
    }
//+------------------------------------------------------------------+  
Ou, a partir de uma função chamada, o funcionamento do programa não pode ser interrompido? (Exemplo de código a ser usado no indicador)
 
fore-x:
Ou, a partir de uma função chamada, o programa não pode ser interrompido? (Código de exemplo, a ser usado no indicador)
return(deinit());

O que você quer dizer com parar? remover o EA/indicador do gráfico?


sobre deinit():

a chamada do deinit não leva à desativação do indicador/indicador, mas a desativação leva à chamada do deinit

 
ilunga:

O que você quer dizer com parar? remover o EA/indicador do gráfico?


sobre deinit():

não é a chamada ao deinit que faz com que o indicador/especialista seja desativado, é a desativação que faz com que o deinit seja chamado

Parar significa parar a execução da função de partida - a partir da função chamada. Como o retorno(0).

Sobre o deinit, estou ciente disso, é por isso que não sei como resolver este enigma. Aparentemente você não pode fazer isso dessa maneira.

 
fore-x:

Parar significa parar a execução da função de partida - a partir da função chamada. Como o retorno(0).

Sobre o deinit, eu sei, é por isso que não sei como resolver este enigma. Aparentemente você não pode fazer isso dessa maneira.

Então o que o impede de retornar (-1) ou algo mais com esta função e fazer uma chamada para esta função no início() com um cheque? por exemplo, assim:

int start()
  {
  if (f1() == -1) return (0);
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
if (все плохо) return (-1); else return(0);
    }
 
ilunga:

Então o que o impede de retornar (-1) ou algo mais com esta função e fazer uma chamada para esta função no início() com um cheque? por exemplo, como este:

//+------------------------------------------------------------------+
int start()
  {
  if(f1() < 0) return(0);
  Alert("Есть сигнал"); // И до этого места работа программы бы не дошла
  return(0);
  }
//+------------------------------------------------------------------+  
  int f1()
    {
    return(f2());
    }
//+------------------------------------------------------------------+    
  int f2()
    {  
    return(-1); //Тут, по задумке, нужно остановить работу всей программы
    }
//+------------------------------------------------------------------+  
Eu entendo, só queria evitar movimentos desnecessários no código, esclarecido. Obrigado pelo exemplo!
 
ilunga:

você está certo sobre o local. Você deve especificar o tamanho da matriz antes de utilizá-la. Ou fazer dele outro amortecedor

Muito obrigado!
 


dkfl.zrjdktdbx 09.12.2011 16:56

Boa noite, descobri que o robô comercial não fecha posições, cerca de uma vez em 50, quando atinge um lucro. Em seguida, tem que fechar tudo, ordens pendentes e tudo mais, e se instalar novamente. Não fechar cria confusão de ordem e drawdown.


Então imagine, às vezes acontece que um pedido fechado com lucro takeprofit, Clowes Price - preço de fechamento do pedido - é igual a zero!!!!!

Veja a quinta linha na captura de tela abaixo, é a quinta linha, a ordem fechada em takeprofit. E na nona linha da base Preço de fechamento do pedido é igual a zero!!!!!

Parece não haver nada particularmente complicado no código... Vou mostrá-lo agora mesmo.

Quando faço um pedido, poupo o tempo na janela wremjapomnim. Assim que qualquer ordem é fechada com lucro atual, eu apago todas as ordens e lembro novamente o tempo no wremjapomnim pyrimen e as defino.

for ( i=OrdersHistoryTotal();i>0;i--){ OrderSelect(i-1,SELECT_BY_POS,MODE_HISTORY  );
Alert( "wremjapomnim " ,wremjapomnim, "  OrderCloseTime(        )   ",  OrderCloseTime( ),  " ",i , " OrderTakeProfit( ) " ,OrderTakeProfit( ),
  " OrderClosePrice(    )  ",OrderClosePrice(   ) );
if ( OrderTakeProfit( )==OrderClosePrice(       )&&wremjapomnim<OrderCloseTime( )|| (NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)<2*Point)
   &&wremjapomnim<OrderCloseTime(       )|| (NormalizeDouble(OrderClosePrice()-OrderTakeProfit(), Digits)>-2*Point)&&wremjapomnim<OrderCloseTime(       )){C=0;A=1 ;  Alert("C",C,"A",A);
   for ( int ii=OrdersTotal();ii>0;ii--){ OrderSelect(ii-1,SELECT_BY_POS );
   if( OrderMagicNumber( )==2000 &&OrderSymbol()==Symbol()|| OrderMagicNumber( )==1000 &&OrderSymbol()==Symbol()){ 
  OrderDelete(OrderTicket( )) ; Alert ("OrderDelete-vse",  GetLastError( ) ); stsBUY=0;stsSELL=0;
   OrderClose( OrderTicket( ), OrderLots( ), OrderClosePrice( ) , 0, CLR_NONE);Alert ("OrderClose-vse",  GetLastError( ) ); C=0; }     }              }
   
                                                      } 
 
O alerta está na segunda e terceira linhas do código e escreve tudo no registro, inclusive o fato de queOrderClosePrice( ) do pedido 49 é igual a zero.
 

Diga-me como acompanhar a formação de um fractal na EA. Preciso abrir um pedido após a formação de um novo fractal. Não sei como este indicador funciona; ele tem algum tipo de linha superior e algum tipo de linha inferior.

Se, por exemplo, um fractal for formado e o preço quebrar esse mínimo, o fractal será redesenhado ou eu simplesmente acrescentarei outro fractal?

 
Olá, você poderia me dizer como encontrar o baixo e o alto da última vela, por exemplo?