Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1712

 
MakarFX #:

Tente

É destacado em amarelo. É assim que deve ser?

Eu não mudei nada. Foi assim que as aves foram viradas. Eu não entendo. Você quer que eu os remova, os gire ou apague esta linha por completo?

 
Порт-моне тв #:

por isso, não mudei nada. Foi assim que as aves foram viradas. Eu não entendo. Você quer que eu os remova, os gire ou apague esta linha por completo?

Eu perguntei sobre "aves" porque a condição é a mesma tanto para comprar como para vender.

 
Порт-моне тв #:
você ainda está tentando encontrar um bug, mas há horas venho lhe pedindo para fazer algo mais. Por quê?

após um OrderSend bem sucedido, a variável OrderOfSymbol deve ser atualizada.
ou sair e esperar pelo próximo tick.

 
MakarFX #:

Eu perguntei sobre "aves" porque a condição é a mesma tanto para comprar como para vender.

Somente compra ou venda-venda, não há compra-venda ou compra-venda tipo de compra dupla.

 
Taras Slobodyanik #:

após um OrderSend bem sucedido, a variável OrderOfSymbol precisa ser atualizada.
ou sair e esperar pelo próximo tick.

ok, e como você faz isso?

 
Порт-моне тв #:

Bem, eu posso ver pela história no testador onde a cauda aconteceu, quando, que parâmetros. O que isso lhe dá?

Você não precisa procurar onde a cauda foi feita, mas por que razão ela ocorreu. Eu estava sugerindo imprimir não o fato de abertura, mas as condições de abertura. Isto o ajudará a determinar o motivo... A eliminação de tal ordem duplicada só lhe trará uma perda adicional.

 
Alexey Viktorov #:

Não é preciso procurar onde está a cauda, mas por que razão ela é cauda. Minha sugestão não foi imprimir o fato de abertura, mas as condições de abertura. Isto ajudará a determinar o motivo... A remoção de uma ordem duplicada deste tipo só lhe dará uma perda extra.

Obrigado, mas eu percebi isso ontem à noite.

 
MakarFX #:

Você pode me dizer como obter o valor

antes de executar o OnInit()?

Talvez haja outra maneira de descobrir a linguagem da interface antes de executar o OnInit() .

Vitaly Muzichenko #:

Não há como, apenas dentro das Funções. NoOnInit() ou depois dele, mas não antes dele.

Mas que diabos.........

string terminalLanguage = TerminalInfoString(TERMINAL_LANGUAGE);

/********************Script program start function*******************/
void OnStart()
 {
  Print(terminalLanguage);
 }/******************************************************************/
2021.11.03 16:25:08.033 00 EURJPY,M15: Russian
 
Portanto, entendo que ninguém aqui me escreverá uma função para apagar um pedido no mesmo lote, preço e tempo de abertura que o anterior. A teimosia é um pecado, rapazes.
 
Порт-моне тв tempo de abertura do anterior. A teimosia é um pecado, rapazes.

Verifique assim

   if(sb1 + sb1/100*LotRisk*(DayMultiplicatorProfit/100/2) > AccountBalance()  && TimeCurrent()>TimeCheck_a && TimeCurrent()<TimeCheck_ac && Ogranichitel > 0)
     {

      if(CounterOrderTradeType(-1)<1)
         if(signal=="buy")
            if(Close[1]>Open[1])
              {
               ticket = OrderSend(Symbol(),OP_BUY, Lot, Ask, 3, SLbuy, TPbuy, "открыт ордер на покупку", Magic, 0, Green);
               Print("OpenOrderSuccess");
              }


      if(CounterOrderTradeType(-1)<1)
         if(signal=="sell")
            if(Close[1]>Open[1])
              {
               ticket = OrderSend(Symbol(),OP_SELL, Lot, Bid, 3, SLsell, TPsell, "открыт ордер на продажу", Magic, 0, Red);
               Print("OpenOrderSuccess");
              }

     }
Razão: