Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1749

 
makssub #:
Pomeriggio. Uso questo codice per chiudere tutti gli ordini. Ma ho notato che se ce ne sono molti, non tutti sono chiusi. Cosa posso aggiungere per chiuderli tutti, anche se non la prima volta. Se possibile, ci faccia un esempio.

https://www.mql5.com/ru/docs/common/sleep

   if(AccountInfoDouble(ACCOUNT_EQUITY)<=TargetLoss || AccountInfoDouble(ACCOUNT_EQUITY)>=TargetProfit)
     {
      AllClose();
      Sleep(1000);
      AllClose();
      ExpertRemove();
     }
//---
Документация по MQL5: Общие функции / Sleep
Документация по MQL5: Общие функции / Sleep
  • www.mql5.com
Sleep - Общие функции - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Ultima domanda )

Chiunque abbia portato il suo EA dalla piattaforma mql a windows o linux. Lasciatemi spiegare, una volta molto tempo fa ha scritto script per il mu online, che il gioco stesso ha pompato l'eroe, mentre si dorme. Quindi la domanda è: forse chi ha trasferito il consulente, al di fuori della piattaforma? Un po' come scambiare una persona, non un robot.

Scusa se non mi sono spiegato bene)

 
makssub #:

Ultima domanda )

Chiunque abbia portato il suo EA dalla piattaforma mql a windows o linux. Lasciatemi spiegare, una volta molto tempo fa ha scritto script per il mu online, che il gioco stesso ha pompato l'eroe, mentre si dorme. Quindi la domanda è: forse chi ha trasferito il consulente, al di fuori della piattaforma? Un po' come scambiare una persona, non un robot.

Se questo non è stato spiegato correttamente, scusate )

su un server Windows (VDS o VPS) è collocato MetaTrader, in esso è in esecuzione l'Expert Advisor. Questo è tutto: il soldato dorme, il servizio va :-)

La piattaforma di trading è algoritmica e progettata per la partecipazione attiva del robot, se non interamente da un robot.

Anche se, i clicker (software che "clicca" nei pulsanti emulando un umano) qualcuno usa. E i freelance sono periodicamente richiesti e ci sono quelli in vendita su Internet.

 

Ciao!

Qualcuno può incontrare un EA o un pezzo di codice (da includere nel codice del gufo), per cambiare il TP SL per il prossimo ordine?

Diciamo che l'ordine è stato aperto con 0,01 SL= 30 TP=100

l'ordine successivo è stato aperto con 0,02SL= 30 TP=95

ecc.

Quale funzione dovrei usare per descrivere questo?

Questo è il modo in cui il mioSL TP è attualmente assegnato:

//+-----------------------------------------------------------------------------------------------+
//|                                                                    Функция модификации ордера |
//+-----------------------------------------------------------------------------------------------+
void vOrderModify(int iOTi)
  {
   int    iOTy = -1;    // Тип ордера
   double dOOP = 0;     // Цена открытия ордера
   double dOSL = 0;     // Стоп Лосс
   int    iMag = 0;     // Идентификатор советника
   double dSL  = 0;     // Уровень убытка
   double dTP  = 0;     // Уровень прибыли

// Выберем по тикету открытый ордер, получим некоторые значения
   if(OrderSelect(iOTi, SELECT_BY_TICKET, MODE_TRADES))
     {
      iOTy = OrderType();
      dOOP = OrderOpenPrice();
      dOSL = OrderStopLoss();
      iMag = OrderMagicNumber();
     }

// Если ордер открыл данный советник, то входим в условие
   if(OrderSymbol() == Symbol() && OrderMagicNumber() == iMag)
     {
// Если Стоп Лосс текущего ордера равен нулю, то модифицируем ордер
      if(dOSL == 0)
        {
         if(iOTy == OP_BUY)
           {
            dSL = NormalizeDouble(dOOP - StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP + TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }

         if(iOTy == OP_SELL)
           {
            dSL = NormalizeDouble(dOOP + StopLoss * Point, Digits);
            dTP = NormalizeDouble(dOOP - TakeProfit * Point, Digits);

            bool bOM = OrderModify(iOTi, dOOP, dSL, dTP, 0, clrNONE);
           }
        }
     }
  }
 

Signori professionisti, ditemi, non mi viene in mente niente (ho appena iniziato a imparare la programmazione).

Ecco una parte di un Expert Advisor, non importa quale. Nella funzione OnInit() ci sono due operatori di ritorno.

Non riesco ad avere i numeri -1 e 0 tra parentesi, da dove vengono e dove ritorna il programma interrotto?

//| Funzione di inizializzazione dell'esperto |

//+------------------------------------------------------------------+
int OnInit()
{
*******************************************
if(********* || *********)
{
Alert("***************",******(),"!!");
ritorno(-1);
}


**** = *******;
*** = *********;
if(_******** || _********)
{
************;
************;
}
ritorno(0);
}
//+------------------------------------------------------------------+
//| Funzione di deinizializzazione esperto |
 
vladeimirami #:

Non riesco ad avere i numeri -1 e 0 tra parentesi, da dove vengono e dove ritorna il programma interrotto?

https://www.mql5.com/ru/docs/event_handlers/oninit

Continua a leggere. Zero è un successo e il programma continuerà a funzionare. Gli altri numeri sono la fine del lavoro.

Документация по MQL5: Обработка событий / OnInit
Документация по MQL5: Обработка событий / OnInit
  • www.mql5.com
OnInit - Обработка событий - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Aleksei Stepanenko #:

https://www.mql5.com/ru/docs/event_handlers/oninit

Continua a leggere. Zero è un successo e il programma continua. Gli altri numeri sono la fine del lavoro.

Merda. Capito. Non ha letto attentamente l'enumerazioneENUM_INIT_RETCODE. Grazie. Comunque, quando l'inizializzazione fallisce, usciamo con qualsiasi numero diverso da zero. Almeno si è mosso dal punto morto. Grazie!
Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Функции обработки событий - Функции - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 

Il compito di controllare i grafici dei simboli per le barre mancanti

Non riesco a trovare una soluzione a questo problema

Ho bisogno di scrivere lo script secondo il seguente principio: Print(date), Print(date), Print(date) se c'è un gap di barra

Per esempio, lo script dovrebbe essere 48 barre sul grafico M30 ePrint(date) se c'è un gap di 47 barre.

Come scriverlo? Una soluzione multipiattaforma è auspicabile.

P.S. Questo dovrebbe essere fatto su tutta la storia disponibile.

 

Vitaly, come valuti il passaggio del bar? 48 barrette al giorno? A volte il lavoro si ferma alle 11 di sera, a volte inizia alle 2. Se guardate il rublo, non ci sono scambi di notte.

Se è strettamente 24 ore 5 giorni alla settimana, allora proveremo ogni barra in ordine con controllo della sequenza. Ma poi ci saranno segnali di barre mancanti, che non dovrebbero esistere.

 
Vitaly Muzichenko Print(date), Print(date) se c'è un gap di barra

Per esempio, lo script dovrebbe essere 48 barre sul grafico M30 ePrint(date) se c'è un gap di 47 barre.

Come scriverlo? Una soluzione multipiattaforma è auspicabile.

P.S. Questo dovrebbe essere fatto su tutta la storia disponibile.

C'è un compito simile - fare un timeframe con barre mancanti. Cioè, per esempio, avere esattamente 1440 minuti in un giorno. Non importa se alcuni di essi sono vuoti.

niente di veloce, ordinato e bello è venuto fuori con :-( Solo per formare un array all'inizio del giorno, contare i minuti trascorsi da 0:00 e riempire in questo modo.

E il fatto dei minuti mancanti può essere controllato confrontando iBars(current_time,0:01 del giorno corrente) e (current_time_beginning of day)/PERIOD_SECONDS...