[ARCHIVIO] Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 3. - pagina 564

 

Vi ho già dato il codice per rimuovere l'exp dal grafico. Dato che ce ne può essere solo uno (per grafico), chiamando questa funzione con il proprio handle, l'exp si cancellerà da solo

 
FAQ:


...per dare un ordine a se stesso di essere rimosso


Grazie, funziona.

P.S..

#include <WinUser32.mqh>
 
Non c'è bisogno di dirlo. Quando lavorate con le funzioni importate, ricordatevi di collegare le esportazioni dalle relative applicazioni.
 
Aiuto, perché non funziona?

Grazie.

//-----
  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:

Chiudi la tua finestra, datti un comando per cancellare...

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

Quindi, MQL4 non fornisce un modo standard per terminare l'Expert Advisor. Solo con l'uso diretto di Win32 API.

Capito, grazie.

 
takeda:

Quindi, MQL4 non fornisce un modo standard per terminare un Expert Advisor. Solo con l'uso diretto di Win32 API.

Capisco, grazie.

Biblioteca. Molte funzioni utili per la gestione di MT4. Compresa la rimozione dell'Expert Advisor.
 
Zhunko:
Biblioteca. Molte funzioni utili per la gestione di MT4. Compresa la rimozione di Expert Advisor.

Ho dato un'occhiata (finora in modo sommario). Biblioteca meravigliosa!

Grazie!

 

Buon pomeriggio.

La modifica dell'ordine funziona parzialmente, aiutatemi a capire qual è il problema.

Codice e registro allegati. Ho scritto nel registro cosa funziona e cosa no.....

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);
}
File:
log.txt  4 kb
 
TEXX:

Buon pomeriggio.

La modifica dell'ordine funziona parzialmente, aiutatemi a capire qual è il problema.

Codice e registro allegati. Nel log ho scritto cosa funziona e cosa no.....


Per cominciare, correggete queste righe:

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

su questi:

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


Per cominciare, correggete queste righe:

a questi:


non ha aiutato...