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

 

Já lhe dei o código para remover o exp expoente da tabela. Como só pode haver um (por tabela), chamar esta função com sua própria alça fará com que o exp exp exp expulso se apague

 
FAQ:


...para dar uma ordem a si mesmo para ser removido


Obrigado, funciona.

P.S..

#include <WinUser32.mqh>
 
É evidente. Ao trabalhar com funções importadas, lembre-se de conectar as exportações das aplicações relevantes.
 
Ajuda, por que não está funcionando?

Obrigado.

//-----
  static bool First = true;
  static int PreOrdersTotal = 0;
  int NowOrdersTotal = CountTrades();
  if(First)
  {
    PreOrdersTotal = NowOrdersTotal;
    First = false;
    return(0);
  }
  if(UseSound == true && NowOrdersTotal < PreOrdersTotal) {PlaySound(CloseSound);}
  PreOrdersTotal = NowOrdersTotal;
//-----

 
FAQ:

Feche sua janela, dê a si mesmo um comando para apagar...

PostMessageA(WindowHandle(Symbol(),Period()), WM_COMMAND, 33050, 0);

Portanto, a MQL4 não oferece uma maneira padrão de encerrar o Expert Advisor. Somente através de um uso direto de Win32 API.

Entendi, obrigado.

 
takeda:

Portanto, a MQL4 não oferece uma maneira padrão de rescindir o Expert Advisor. Somente através do uso direto de Win32 API.

Estou vendo, obrigado.

Biblioteca. Muitas funções úteis para a gestão do MT4. Inclusive a remoção do especialista está lá.
 
Zhunko:
Biblioteca. Muitas funções úteis para a gestão do MT4. Incluindo a remoção do Expert Advisor.

Deu uma olhada (até agora de uma forma superficial). Maravilhosa biblioteca!

Obrigado!

 

Boa tarde.

A modificação de pedidos funciona parcialmente, ajude-me a descobrir qual é o problema.

Código e log em anexo. Escrevi no registro o que funciona e o que não funciona.....

void AllSellLockBuyModifi()
{
 double sell_sl = 0.0;
 double sell_tp = NormalizeDouble((AllAvP()-TakeProfit*Point),Digits);
 int spread = MarketInfo(Symbol(),MODE_SPREAD);
 double lock_buy_tp = NormalizeDouble((LastSellLockBuyAvP()+TakeProfit*Point),Digits);
 double last_sell_sl = NormalizeDouble((lock_buy_tp+spread*Point),Digits);
 double lock_buy_sl = NormalizeDouble((sell_tp-spread*Point),Digits);     
 Print("AllAvP = ",AllAvP()," sell_tp = ",sell_tp," lock_buy_tp = ",lock_buy_tp," last_sell_sl = ",last_sell_sl," lock_buy_sl = ",lock_buy_sl);
 for (int i = 0; i <= OrdersTotal(); i++)
    {
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);
     if (OrderSymbol()!=Symbol())continue;
     if (OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)
     if (OrderType()==OP_SELL)
       {Print("Find Sell Order");
        if (OrderOpenPrice()==!LastSellPrice()) sell_sl = 0;
        if (OrderOpenPrice()==LastSellPrice()) sell_sl = last_sell_sl;
        Print("Мод-ция ордера SELL № ",OrderTicket());
        OrderModify (OrderTicket(),OrderOpenPrice(),sell_sl,sell_tp,0,CLR_NONE);
        error=GetLastError();
        if (error != 0) Print("Мод-ция ордера SELL № ",OrderTicket()," ошибка № ",error);
       }         
         else 
             { Print("Find BUY Order");       
              if (OrderType()==OP_BUY)
                {
                 Print("Мод-ция ордера LOCK BUY");
                 OrderModify (OrderTicket(),OrderOpenPrice(),lock_buy_sl,lock_buy_tp,0,CLR_NONE);
                 error=GetLastError();
                 if (error != 0) Print("Мод-ция ордера LOCK BUY № ",OrderTicket()," ошибка № ",error);
                }
             }
    }
 return(0);
}
Arquivos anexados:
log.txt  4 kb
 
TEXX:

Boa tarde.

A modificação de pedidos funciona parcialmente, ajude-me a descobrir qual é o problema.

Código e log em anexo. No registro, escrevi o que funciona e o que não funciona.....


Para começar, corrija estas linhas:

for (int i = 0; i <= OrdersTotal(); i++)
    {
     OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

sobre estes:

for (int i = 0; i < OrdersTotal(); i++)
   if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
    {
 
PapaYozh:


Para começar, corrija estas linhas:

a estes:


não ajudou...