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

 
Oh, então eu entendi bem?
 
FAQ 17.03.2012 12:18
Muito provavelmente, no momento da abertura você tem zero na variávelpriceBUY, então Bid-priceBUY(0)==Bid, e portanto

Não, se assim fosse, então a VENDA também seria arrastrada incorretamente, enquanto a VENDA funciona bem...... Já tentei mudar o valor inicial do preçoBUY de "0" para "preço aberto".... não funciona, meu cérebro já está frito(((

 
MIR-ASOV:

Não, se fosse, a SELL também não funcionaria corretamente, mas a SELL funciona bem...... Já tentei mudar o valor inicial do preçoBUY de "0" para "preço aberto" .... não funciona, meu cérebro já está frito(((

O que o impede de usar um código como este?

   
   extern int ts=25, minp=10;

for(int i = OrdersTotal(); i >= 0; i--)
     {
       OrderSelect(i, SELECT_BY_POS, MODE_TRADES); 
       // check for symbol & magic number
       if(OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) 
         {
          if(OrderType() == OP_BUY) // long position is opened
            {
               if((Bid-OrderOpenPrice())>Point*(ts+minp)) // trall
                 {
                  if(OrderStopLoss()<Bid-Point*ts)
                    {
                      if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Bid-Point*ts,Digits),0,0,Orange)) {Sleep(11000); prevtime = Time[1];}
                    }
                 }
            } 
           if(OrderType() == OP_SELL) // short position is opened
            {

               if((OrderOpenPrice()-Ask)>Point*(ts+minp))// trall
                {
                 if(OrderStopLoss()>Ask+Point*ts)
                   {
                       if(!OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble(Ask+Point*ts,Digits),0,0,Orange))
                      {
                        Sleep(11000);
                        prevtime = Time[1];
                      }
                   }
                }

            }
          }
     }
//----

Tudo funciona como deveria.

 

Feliz Dia de São Patrício a todos!

Querida, estou pedindo ajuda. Ajude-me a obter um sinal de um indicador em uma EA. Isto é, se aparecer uma linha azul - comprar, se vermelha - vender.

Escreveu assim em coruja:

double dn_stop_1 = iCustom(NULL,0,"NRTR_ATR_STOP",ATR,Coeficient,0,1); // синий, снизу
double up_stop_1 = iCustom(NULL,0,"NRTR_ATR_STOP",ATR,Coeficient,1,1); // красный, сверху

   if (dn_stop_1!=EMPTY_VALUE)
       return(1);//покупка
   if (up_stop_1!=EMPTY_VALUE)  
       return(-1);//продажа

Eu não tenho nada, parece que os amortecedores são sempre iguais a 0.

Arquivos anexados:
 

evillive А что мешает использавать вот такой код?


Se houver apenas um pedido no exemplo (COMPRAR ou VENDER), mas se houver mais pedidos, então eu preciso que todos os pedidos sejam rastreados a partir do nível de breakeven total. E é importante para mim entender qual é a razão deste código, porque a ordem de venda é executada de forma excelente, o que está faltando para a BAY? Por que ele modifica a parada imediatamente após a abertura......!?
 
MIR-ASOV:


Neste exemplo tenho apenas um pedido (COMPRAR ou VENDER), mas se houver mais de um, quero que todos os pedidos sejam retirados do Breakeven. E é importante para mim entender qual é a razão deste código, porque a ordem de venda é executada de uma boa maneira, o que está faltando para a BAY? Por que ele modifica a parada imediatamente após a abertura......!?


Porque o preço a ser comparado não é :

1) rubricado

2) igual a zero

Ações:

1) uninicializar e ver,

2) inicializar-se com um grande número

3) armadilha se o preço comparado for igual a zero

 
Sancho77:

Feliz Dia de São Patrício a todos!

Querida, estou pedindo ajuda. Ajude-me a obter um sinal de um indicador em uma EA. Isto é, se aparecer uma linha azul - comprar, se vermelha - vender.

Escreveu assim em coruja:

Eu não tenho nada, parece que os amortecedores são sempre iguais a 0.



E por que você está comparando com EMPTY_VALUE. Você está comparando com 0,0
 
Porque o preço comparável não é:

1) инициализирована

2) é igual a zero.

Ações:

1) desimprimir e ver,

2) inicializar-se com um grande número

3) colocar uma armadilha se o preço comparado for igual a zero.

Obrigado por sua ajuda, obrigado a todos que responderam...... Funcionou, troquei o "Breakeven Level Calculation" com o bloco "Position Opening" e tudo funcionou como deveria...... Mais uma vez obrigado a todos)))) E eu vou me enforcar)
 
Vinin:

E por que você está comparando com EMPTY_VALUE. Você está comparando com 0,0.

Eu também tentei desta maneira:

   if (dn_stop_1!=0.0)
       return(1);
   if (up_stop_1!=0.0)  
       return(-1);

Ainda sem resposta.

 

Você pode me dizer se há algo no código MTFindyuka fazer que ele automaticamente calcularia e redesenharia a história, idealmente a cada minuto, que não resultaria aqui é tão krakozobraha

Na foto, há dois МТФinduks por 5 minutos, no gráfico de um minuto.

ExtMapBuffer1[i]=iCustom(Symbol(),TimeFrame, "T-Line alert10",0,y);

ExtMapBuffer2[i]=iCustom(Symbol(),TimeFrame, "T-Line alert10",1,y);

Tenho que obter uma visão normal, ou seja, passos suaves, para escolher as propriedades do indicador e pressionar "OK" ou "refrescar gráfico" constantemente.Se eu usar m1 e MTF5m estou cansado de atualizá-lo manualmente às vezes, talvez eu possa simplesmente implementá-lo anexando alguma função inteligente, eu não quero escrever um código separado para cada indicador.