[AVISO FECHADO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Não posso ir a lugar algum sem você. - página 894

 
artmedia70:
Qual é o seu objetivo? É como se você pudesse perguntar sobre o tempo... ou saúde... :))))))

Isso é apenas um lembrete. Eu li o livro, mas há pontos que precisam ser esclarecidos - então eu os escrevo. e às vezes não há resposta.

Por favor - não tome isto de forma agressiva, digo de boa fé!

 
belck:

Isso é apenas um lembrete. Eu li o livro, mas há pontos que precisam ser esclarecidos, então eu os escrevo. e às vezes não há resposta.


Você paga pelas respostas? Não? Ou você é ignorado? Ou alguém lhe deve um favor?

SZS: Muitas vezes olho neste fio, como posso ajudar, mas na condição de que a pessoa que fez uma pergunta, pelo menos entenda o que fez, enquanto você tem sua montanha de perguntas parece preguiçoso para ler - explique-me

 
Oi! Não consigo entender o que há de errado com ???? Não modifica ordem de mercado
slb =NormalizeDouble(Bid - (StopLoss * Ponto),Dígitos); // calcular stop para posições de compra//
tpb =NormalizeDouble(Ask + (TakeProfit* Ponto),Dígitos); // calcular lucro para posições de compra//
sls =NormalizeDouble(Ask + (StopLoss * Ponto),Dígitos) // cálculo de parada para posições de vendas//
tps =NormalizarDuas(Bid - (TakeProfit* Point),Dígitos);

//

//
int total=OrdensTotal(); int n=0;
for (int i=total-1; i>=0; i--) {
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n+++;
}}}
if ( total === 1 )
{
for (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET)
Alerta("order is", k);
{
if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(O rderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alert("error", GetLastError());


return(0);}

QUAL É O PROBLEMA, POR FAVOR AJUDE ...........?????
 
IgorM:


Você paga pelas respostas? Não? Ou está sendo ignorado? Ou você deve alguma coisa a alguém?

ZS: Eu frequentemente olho neste fio, o que posso, eu ajudo, mas desde que a pessoa que fez uma pergunta, pelo menos ele entende o que fez, enquanto você tem sua montanha de perguntas parece preguiçoso para ler - me diga

Eu lhe disse para não levar isso muito a peito. Não estamos aqui para lutar. Também não gosto quando alguém se recusa a ajudar - ou seja, ele decide por mim dar conselhos ou ler um livro. Como eles dizem - inteligente!

Mais uma vez, rapazes, por favor, não o levem agressivamente ou este é meu pedido ainda é uma contradição, se assim for, então eu não o escreverei mais.

 
int total=OrdersTotal();
int n=0;
for (int i=total-1; i>=0; i--)
  {
    if(OrderSelect(i, SELECT_BY_POS))
      {
        if(OrderSymbol()==Symbol())
            n++;
      }
  }
if (total == 1)
  {
    for (int k=total-1; k>=0; k--)
      {
        if(OrderSelect(k, SELECT_BY_TICKET))
          {
            Alert("ордер есть ", k);
            if ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OrderStopLoss()==0))
              {
                OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
                Alert("ошибка ", GetLastError());
              }
          }
      }
  }
return(0);
Tente este código.
 

Alguém conhece um roteiro "trailing stop" acionado por níveis, ou seja, o preço atingiu 150 - stop 130, depois atingiu 180 - stop 170 (por exemplo) (níveis digitados por você mesmo).

Agradecemos antecipadamente.

 
VOLDEMAR:
Oi! Não consigo entender qual é o problema ???? Não modifica a ordem do mercado
slb =NormalizeDouble(Bid - (StopLoss * Ponto),Dígitos); // cálculo de stop para posições de compra//
tpb =NormalizarDuplo(Perguntar + (TakeProfit* Ponto),Dígitos); //calcular lucro para posições de compra//
sls =NormalizarDuplo(Perguntar + (StopLoss * Ponto),Dígitos); //calcular parada para posições de venda//
tps =NormalizeDuplo(Bid - (TakeProfit* Point),Dígitos);

//================================================== ==================//
int total=OrdensTotal();
int n=0;
para (int i=total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS))
{
if(OrderSymbol()==Symbol())
{
n++;
}}}
se ( total === 1 )
{
para (int k=total-1; k>=0; k--)
{
if(OrderSelect(k, SELECT_BY_TICKET))
Alerta ("a ordem existe", k);
{
se ((OrderType()==OP_BUY)&&(OrderTakeProfit()==0)&&(OderStopLoss()==0))
{
OrderModify(k,OrderOpenPrice(),slb,tpb,0,Blue);
Alerta("erro", GetLastError());

}}}}
retorno(0);}

QUAL É O PROBLEMA AJUDA ...........?????

Você está selecionando uma posição no bilhete. Mas você não verifica exatamente ONDE é... A posição pode estar em posições já fechadas:

bool OrderSelect( índice int , int select, int pool=MODE_TRADES)

Esta função seleciona uma ordem para posterior manipulação. Devolve VERDADEIRO se a função for concluída com sucesso. Devolve FALSO se a função falhar. Para obter informações sobre um erro, você precisa chamar a função GetLastError().

O parâmetro do pool é ignorado se o pedido for selecionado pelo número do bilhete. O número do bilhete é um identificador único para o pedido. Para determinar a partir de qual lista um pedido é selecionado, seu horário de fechamento deve ser analisado. Se o tempo de fechamento do pedido for 0, então o pedido está aberto ou pendente e é retirado da lista de posições abertas do terminal. Uma posição aberta pode ser diferenciada de uma ordem pendente por seu tipo. Se o tempo de fechamento não for igual a 0, então o pedido é fechado ou pendente e foi selecionado a partir do histórico do terminal. A distinção entre uma ordem fechada e uma ordem pendente excluída também pode ser feita por tipo de ordem.
 
AlexAlex:

Alguém conhece um roteiro "trailing stop" acionado por níveis, ou seja, o preço chegou a 150 - stop 130, depois atingiu 180 - stop 170 (por exemplo) (níveis digitados por você mesmo).

Agradecemos antecipadamente.

Pesquise no site "trailing" ou "trawl" - você o encontrará.
 
VOLDEMAR:
Oi! Não consigo entender qual é o problema ???? Não modifica a ordem do mercado

Experimente assim:

slb = 25; // расчёт стопа для бай позиций//
tpb = 25; // расчёт профита для бай позиций//
sls = 25; // расчёт стопа для селл позиций//
tps = 25; 

//================================================== ==================//
int start {
ticket=OrderSend(Symbol(),OP_BUY,1,Ask,3,Bid-slb*Point,Ask+tpb*Point,"My order #"+counter,16384,0,Green);
     if(ticket<0)
       {
        Print("OrderSend failed with error #",GetLastError());
        return(0);
       }

}
 
AlexAlex:

Alguém conhece um roteiro "trailing stop" acionado por níveis, ou seja, o preço atingiu 150 - stop 130, depois atingiu 180 - stop 170 (por exemplo) (níveis digitados por você mesmo).

Agradecemos antecipadamente.

https://www.mql5.com/ru/code/7108 .No.4