[Arquivo!] Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por ela. Não poderia ir a lugar algum sem você - 2. - página 153

 
buroff:

Encontrou o indicador "ForexSession", mas os parâmetros de tempo tiveram que ser alterados. LocalGMT=3 - Moscou, BrokerGMT=0 - Londres, e eu também mudei os horários de início e fim das sessões.

Mas nada funciona com a América - adicionei o bloco "void ShowSessionBroker()" - para adicionar 30 minutos a Nova York, após a compilação aparece um erro, e não tenho mente suficiente para corrigi-lo.

Boa gente, você pode me dizer o que eu fiz de errado e como consertá-lo?

Eu mandei compilá-lo normalmente.
 
Sergey_Rogozin:


Sps, por que há um 1 no final, mas um 0??? Se o valor RSI deve ser comparado com o anterior, deve ser escrito assim?
double RSI = iRSI(NULL,0,14,PRICE_CLOSE,2);
 
Vovo4ka:

Eu me pergunto por que eu coloco 1 no final e 0 no final, e se eu quiser comparar o valor do RSI com o valor anterior, então eu tenho que escrevê-lo dessa forma?

Você é livre para definir o número de qualquer barra. Tudo o que importa é em que barra você quer o dobro do valor de RSI.

Para comparação, é claro, você deve ter pelo menos dois valores, ou seja, valores em barras diferentes.

 
Sergey_Rogozin:
Você é livre para definir o número de qualquer barra. Tudo o que importa é em que barra você quer o dobro do valor de RSI.

Por exemplo, se eu quiser comparar o valor atual do RSI com o preço de fechamento anterior, então eu posso fazer isso...
double RSI1 = iRSI(NULL,0,14,PRICE_CLOSE,1);
double RSI2 = iRSI(NULL,0,14,PRICE_CLOSE,2);
e depois comparamos... certo?
 
Vovo4ka:

Digamos que eu quero comparar o valor atual do RSI com o preço de fechamento anterior, depois é assim... e depois comparamos... certo?
Exatamente certo. Com uma correção: a barra atual é zero.
 
Sergey_Rogozin:
Você pode definir o número de qualquer barra. Só importa qual barra você quer obter o valor do RSIduplo.


Também posso lhe dizer como fazer o sinal abrir um negócio... porque abre negócios em todos os bares... ((((

Se o sinal abriria apenas um negócio.... na repetição de mais um e não importa se o anterior fechou....

algo como isto...))

 

Você precisa verificar se já tem pedidos abertos antes de abrir um pedido.

Você precisará de uma função pequena/não-complexa,

que permitirá ou não a sua entrada no mercado se houver um sinal para isso.

 
Sergey_Rogozin:

Você precisa verificar se já tem pedidos abertos antes de abrir um pedido.

Você precisará de uma função pequena/descomplicada,

que permitirá ou não a sua entrada no mercado, mesmo que haja um sinal para isso.


você pode sugerir..... por acaso?? para inserir .... caso contrário não posso realmente avaliar o assessor...((
 
Vovo4ka:

Por acaso você poderia sugerir.....?? para colocar .... senão eu não posso realmente avaliar a EA desta maneira...((
A função tem este aspecto
  bool Exist(){
     for(int cnt=OrdersTotal()-1; cnt>=0; cnt--){
        if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)){
          if(OrderMagicNumber()==Magic){
            if(OrderSymbol()==Symbol()){
              if(OrderType()<2)return(true);
      } } } }        
  return(false);} 

Ou seja, se houver posições em aberto, a função as detectará e retornará verdadeiro.

Sua tarefa é colocar algo como isto antes da OrderSend(.......):

if(!Exist() && Signal)OrderSend(Symbol()........);
где Signal - Ваш сигнал на вход в рынок.
 

Você pode me dizer como verificar a validade de um pedido? Por exemplo, eu tenho um pedido pendente em andamento e preciso verificar se ele acionou uma ordem de parada.


bool check=OrderChek(bilhete);

Comentário ("O pedido com o bilhete", bilhete, "não existe (acionado)");


Não consigo encontrar como fazer isso.