[ARQUIVO!] Qualquer pergunta de novato, para não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 4. - página 625

 
Dimka-novitsek:

Bom dia!

Não consigo perceber categoricamente - as condições para a parada de trilha não funcionam.

Portanto, a ordem é retirada imediatamente quando ainda não está na história, o que eu não entendo de todo!

E esta é a situação é melhor! Se temos este truque, pelo menos a ordem é corrigida quando já está na história.

Mas uma vez em cada cinco ou dez vezes o nahodka não assume o valorverdadeiro, e outras modificações não ocorrem!


Você já tentou if(OrderClosePrice()==OrderTakeProfit())nahodka=true;?
 
Dimka-novitsek:

Bom dia!

Não consigo perceber categoricamente - as condições para a parada de trilha não funcionam.

Portanto, a ordem é retirada imediatamente quando ainda não está na história, o que eu não entendo de todo!

E esta é a situação é melhor! Se temos este truque, pelo menos a ordem é corrigida quando já está na história.

Mas uma vez em cada cinco ou dez vezes o nahodka não assume o valor verdadeiro, e outras modificações não ocorrem!

Ao selecionar um pedido por bilhete, o pool não é levado em conta. Portanto, é absolutamente inútil escrever MODE_HISTORY. Depois que a ordem é selecionada de acordo com o bilhete, você também deve necessariamente verificar seu tempo de fechamento OrderCloseTime() - se for maior que zero, a ordem é fechada e selecionada do histórico, se for zero, então a ordem ainda está no mercado e é selecionada da lista de posições de mercado.

Este cheque não está presente em suas linhas:

if (OrderSelect(tacket, SELECT_BY_TICKET , MODE_HISTORY)) 
if (OrderTakeProfit( )-3*Point<profit&&OrderTakeProfit( )+3*Point>profit) nahodka=true;     // Находим ордер, сработавший именно по тейкпрофиту 

Você tem que começar pequeno:

if (OrderSelect(tacket, SELECT_BY_TICKET)) {
   if (OrderCloseTime()>0) {                         // Убедились, что ордер выбран из истории
      // Тут ищете далее то, что вам необходимо ... а закрылся ли он по тейку ...
      }
   }

e você ficará feliz...

 
Dimka-novitsek:

Bom dia!

Não consigo perceber categoricamente - as condições para a parada de trilha não funcionam.

Portanto, a ordem é retirada imediatamente quando ainda não está na história, o que eu não entendo de todo!

E esta é a situação é melhor! Se temos este truque, pelo menos a ordem é corrigida quando já está na história.

Entretanto, o nahodka não tem valorverdadeiro uma vez em cada cinco a deze não há mais modificações!

! - É seu engenho nomear o bilhete: tecket, tocket, tucket, etc. etc. Você mesmo não está confuso com estes nomes?! Meu conselho para você - para evitar confusão, não o faça. É assim que a LochBranding é construída, por exemplo: ADIDAS e ADITAS...

Além disso, não faz sentido ter tantas bandeiras, por exemplo

     if (OrderSelect (ticket, SELECT_BY_TICKET))
     {
         //---- Проверяем закрыт этот ордер или нет
         if (OrderCloseTime > 0)
         {
             //---- Находим ордер, сработавший именно по тейкпрофиту 
             if (NormalizeDouble (OrderTakeProfit()- OrderClosePrice()), Digits) == 0.0)
             {
                 if (OrderSelect (tucket, SELECT_BY_TICKET))
                 {
                     double ld_SL = NormalizeDouble (Bid - treylingstop * Point, Digits);
                     if (NormalizeDouble (ld_SL - OrderStopLoss(), Digits) > 0.0)
                     {
                         Print ("втораямодифи    " );
                         OrderModify (tucket, OrderOpenPrice(), ld_SL, OrderTakeProfit(), 0, CLR_NONE);
                     }
                 }
             }
         }
     }
Esta é uma improvisação fácil, baseada em seu código.
 
Obrigado!!!!!!!
 
Dimka-novitsek:
Sim, certo!!!
Dimka-novitsek:

Aqui está como não modifica o tchau - e é uma condição zircal, e também não funciona o tempo todo.

Este é o lugar.


Não deve ser modificado, porque o último acordo e, em geral, todos os dados do gráfico estão fechados em sl
 
lottamer:

acontece que a função SecondsAfterOpenLastPos() da biblioteca da Kim retorna estes números 1355319542 , e o último número é realmente segundos... você pode ver como eles mudam.....

o que é? se é realmente segundos - são 43 anos.... e meio.... e a função deve retornar os segundos desde que a última transação foi FECHADA.

Embora se tenha verificado que mesmo OrderOpenTime dá tempo no mesmo formato ... como traduzi-lo ao contrário? deve aparentemente tomar o tempo atual e subtrair OrderOpenTime. Como obter a hora atual?


Se você quiser ver a hora em um formato ao qual está mais acostumado, use as funções de conversão, há muitas delas na seção de ajuda da data e hora, você pode exibir a saída em diferentes formatos, por exemplo, dias, horas, minutos, hora...

O último tempo do servidor será devolvido pela função iClose para barra zero. Ou apenasFechar[0].

Esta função retorna o último preço conhecido. O tempo voltará

TimeCurrent( )
 
rigonich:


Já foi dito que este é o formato de tempo com o qual o computador trabalha, e é o único com o qual pode trabalhar. Se você quiser ver o tempo em um formato mais familiar, use as funções de tradução, há muitas delas na seção de ajuda de data e hora, você pode produzir o que quiser, separar dias, horas, minutos, tempo em diferentes formatos...

O último tempo do servidor será devolvido pela função iClose para barra zero. Ou apenasFechar[0].

Esta função retorna o último preço conhecido. O tempo voltará

TimeCurrent( )


consegui apanhar o correio :))), embora eu o tenha apagado...descobri que o tempo é encontrado simplesmente subtraindoTimeCurrent()-OrderOpenTime()
 
lottamer:

consegui apanhar o correio :))), embora eu o tenha apagado...tendo descoberto que o tempo é encontrado simplesmente subtraindo TimeCurrent()-OrderOpenTime()

Se você quiser que eu não responda às suas perguntas, basta dizer.
 

Só tenho uma posição no mercado...por isso não vai faltar...

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))

 
rigonich:

Se você quiser que eu não responda suas perguntas - basta dizer.

Não não!! Eu quero, mas não quero que você faça nenhum trabalho extra... você já está realmente ajudando... então o que eu mesmo consegui descobrir (você não pode simplesmente perguntar e ficar sentado sem fazer nada!) - eu vou apagar rapidamente...