[ARQUIVO]Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por ela. Não posso ir a lugar nenhum sem você - 5. - página 361

 
como otimizar um parâmetro se ele está dentro de uma função do usuário?
 

O que significa otimizar? Juntamente com o robô no testador, otimize.

Você poderia me dizer o que "(' - tipos incompatíveis C:\Documents and Settings\User\My Documents\FxClub\TeleTRADE\experts\Constructor.mq4 (68, 39)
retorno relativo (comentário de erro);?

 
lottamer:
como otimizar um parâmetro se ele está dentro de uma função do usuário?

Colocá-lo no exterior
 

Estou tentando compilar o código, o que foi gentilmente sugerido pela FAQ.

Mas o compilador resiste e pede um ponto-e-vírgula após o operador da tarefa (destacado em amarelo).

bool - espera-se ponto e vírgula C:\Program Files\Alpari NZ MT4\experts\GRAAL-1.mq4 (5, 3)

Mas eu os tenho lá .... e ele ainda pergunta, pergunta, pergunta 8 e pergunta 0

Diga-me o que ele quer dizer?

OBRIGADO.

  int start()
  
  bool have = true ;
        
  for(int i=0;i<10;i++)
  {

   if(Low[i]<=Low[i+1])
   {have=false; 
   break;} 

} 

if(have == true )
{

OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-1510*Point,"jfh",123 );// действия если условие соблюдено 

}
else
{

 return(0);
}
 

Eu me deparei com isto em um dos códigos:

if (StringSubstr(AccountCurrency(), 0, 3) == "JPY") 
    {
      ld_24 = MarketInfo("USDJPY" + StringSubstr(Symb, 6), MODE_BID);
      if (ld_24 > 0.1) ld_16 = ld_24;
      else ld_16 = 82;
    }

Você pode me dizer para que isto é usado? - Presumo que, como menciona a moeda da conta, deve haver um fator de conversão para a outra moeda. Mas... por que ele é fixo? - De que depende este coeficiente? - Neste caso, o número é 82.

E esta linha parece interessante - seu significado eu não entendo nada:

MarketInfo("USDJPY" + StringSubstr(Symb, 6), MODE_BID)

porque se você adicionar "EURUSD" a "USDJPY", por exemplo, mas para a 6ª letra, você recebe zero - então por que adicioná-la? Hmmm...

Isto é uma algaraviada para eu entender, mas por experiência gostaria de entender o princípio da conversão de uma moeda para outra. E eu acho que, se as pessoas a usam (em minha prática não tenho contas sem dinheiro), não é por estupidez. Isso significa que faz sentido.

Obrigado pelo esclarecimento! Acho que será interessante não só para mim. : ))

 

Olá. Escrevi um simples EA (estou tentando aprendê-lo eu mesmo). O robô só abre negócios para vender, mas não quer comprar. Entendo que não escrevi corretamente as condições de compra ou não as dividi corretamente. Estou pedindo ajuda. Aqui está:

int int externo tp=100;

sl=100;

externo int H=14;

externo int M=00;

duplo ma1, ma2;

int start()

{

ma1=iMA (NULL,0,18,0,MODE_SMA,PRICE_CLOSE,0);

ma2=iMA (NULL,0,36,0,MODE_SMA,PRICE_CLOSE,0);

if (OrderTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)<iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1<ma2)

OrderSend ("EURUSD", OP_SELL,0.1,Bid,0,Ask+sl*Point,Ask-tp*Point,",123,Red);

if (OrderTotal ()==0 && iStochastic (NULL,0,50,30,3,0,1,MODE_MAIN,4)>iStochastic (NULL,0,50,30,3,0,1,MODE_SIGNAL,4) && ma1>ma2)

OrderSend ("EURUSD", OP_BUY,0.1,Ask,0,Bid+sl*Point,Bid-tp*Point,",123,Red);

}

retorno (0);

 
r772ra:

Colocá-lo no exterior


Como fazer isso?

A função modifica a ordem definindo paradas e takei. aqui elas precisam ser otimizadas.

 
solnce600:

Estou tentando compilar o código, o que foi gentilmente sugerido pela FAQ.

Mas o compilador resiste e pede um ponto-e-vírgula após o operador da tarefa (destacado em amarelo).

bool - espera-se ponto e vírgula C:\Program Files\Alpari NZ MT4\experts\GRAAL-1.mq4 (5, 3)

Mas eu os tenho lá .... e ele ainda pergunta, pergunta, pergunta 8 e pergunta 0

Diga-me o que ele quer dizer?

OBRIGADO.

Alternativamente, o ponto-e-vírgula logo acima do código em outro lugar não foi colocado. O compilador diz apenas que está faltando em algum lugar até este ponto.

E este código parece ter todas as pontuações corretas.

 
Chiripaha:

Alternativamente, falta um ponto-e-vírgula em algum lugar no código. O compilador diz apenas que falta um ponto-e-vírgula em algum lugar até este ponto.

Mas este código parece ter todas as pontuações corretas.


E acima há apenas o START e nada mais.
  int start()
  
  bool have = true;
  {
  for(int i=0;i<10;i++)
  {

   if(Low[i]<=Low[i+1])
   {
   have=false; 
   break;
   } 

} 

if(have )
{

OrderSend(Symbol(),OP_SELL,0.1,Bid,1,Ask+1500*Point,Ask-1510*Point,"jfh",123 );// действия если условие соблюдено 

}
else
{

 return(0);
}
 
lottamer:


Como isso pode ser feito?

a função modifica a ordem definindo paradas e aquisições. portanto, elas precisam ser otimizadas.


Bem, exatamente no código do Pr0t0tip (bem, e apelido - eu me cansei de digitar de novo : )) ) Estas variáveis externas int sl=100; (etc.) são mapeadas. Portanto, você precisa declarar uma variável, então ela aparecerá em configurações de coruja, então seu valor pode ser alterado e otimizado.