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

 
Igor Makanu:

L'ho visto, dubito che sarà in grado di disimpostare tutto da solo, ecco perché ho suggerito di usare il metodo collaudato di chiudere un ordine selezionato tramite OrderSelect() con ClosePosBySelect() - lui può farlo, almeno l'ho visto costruire codici per se stesso con il costruttore ))))

ZZY: ho un altro sospetto che chiude un ordine due volte, ma la funzione f di Kim si stampa nel log, non come dei cicli separati da chiudere sulla 2a condizione

:-) Sì.

Artyom Trishkin:

È chiaro che le funzioni di Igor faranno tutto per l'utente (e anche così, alcuni utenti riescono a sbagliare anche con loro). Ma allora lui stesso non imparerà a fare nulla. Anche se, naturalmente, è una loro scelta.

Signori - scriverò qui stasera...

Sembra che la durata di vita dell'account sia scaduta. Non è il solito errore...

Lo screenshot è proprio questo.

P.S. Posso e sono addestrato a programmare, semmai! :-) è alla questione della raccolta del codice costruttore!!!!!!!!!!!!!!! :-)

PPS non sollevare la bestia in me, per favore, il cretino... :-)

SONO BRAVO NEL CODICE E NON SOLO, SONO BRAVO ANCHE A FARE OFFERTE!

 
Roman Shiredchenko:

:-) Sì.

Signori - posterò qui stasera...

Sembra che la durata di vita dell'account sia scaduta lì. Non è il solito errore...

Lo screenshot è proprio questo.

P.S. Posso e sono addestrato a programmare, semmai! :-) è alla questione della raccolta del codice costruttore!!!!!!!!!!!!!!! :-)

PPS non far crescere la bestia che è in me, per favore, il cretino... :-)

SONO UNA MERDA NEL CODICE E NON SOLO, ANCHE NELLE OFFERTE!

Un sacco di lettere. Qual è il punto? Non c'è nessun controllo per ottenere un prezzo. E l'errore di chiudere le posizioni a prezzi zero.

Questo è il problema del "capace e addestrato".

 
Artyom Trishkin:

Hauna chiusura a prezzo zero lì.

Di conseguenza, devo monitorare ciò che MarketInfo-function ha restituito, ma non c'è controllo. Tuttavia, come al solito sul quattro, alcune persone sono abituate a scrivere - qualcosa ricevuto, cosa - non hanno controllato, ma inviato l'argomento.

. L'ho visto.

Sembra che la durata dell'account sia scaduta lì...

Quando ho provato a chiuderlo manualmente - ha restituito "GENERAL ERROR" sullo schermo.

Prima - sembra che la funzione abbia funzionato, solo che non ho avuto il tempo di controllarla.

La funzione è scritta correttamente. Sì - slittamento negli spreads, e allora?

Posterò i TOTALI qui stasera.

Ricaricato le transazioni in un nuovo conto.

 
Roman Shiredchenko:

Signori - posterò qui stasera...

Sembra che la vita dell'account sia scaduta. È solo un errore non abituale...

quello sbagliato! perché dovrei indovinare qual è l'errore se l'hai stampato? - O la domanda era originariamente destinata ai telepati... no, ai tushka? )))


Roman Shiredchenko:

Quando si cerca di chiudere manualmente - è tornato sullo schermo nella casella - "GENERAL ERROR".

Forse il flusso di trading è occupato, forse ti riquotano, ecco perché l'errore generale può significare quello che vuoi - lo stesso "cappello" era a Insta l'anno scorso - gli ordini erano chiusi esattamente 5 minuti ciascuno - e il codice come dovrebbe essere con tutti i controlli e le stampanti ;)

 
Artyom Trishkin:

Un sacco di lettere. Qual è il punto? Non c'è un controllo della ricevuta del prezzo. E non c'è errore nel chiudere le posizioni a prezzo zero.

Questa è la cosa del "posso fare e imparare".

Sì perché sto già scrivendo da un foglio di carta in Word - gud. subito. NON HO ACCESSO AL TERMINALE.

Accesso al terminale - no. Sarà in serata a Mosca - scriverò qui.

 
Igor Makanu:

quella sbagliata! perché dovrei indovinare qual è l'errore se l'hai stampata in stampa? - o la domanda era originariamente posta ai telepati... no, ai tushka? )))

О! Così va meglio - più sorrisi... :-)

Sì, le stampe non sono state stampate dalla scheda "ESPERTI"... giusto. C'erano un sacco di cose da fare... non avevo tempo.

 
Igor Makanu:

sbagliato! perché dovrei indovinare qual è l'errore se l'hai stampato a caratteri cubitali? - o la domanda era originariamente destinata ai telepati... no, ai tushkas? )))


può essere un flusso occupato, requotes, quindi devi indovinare - l'errore comune potrebbe significare qualsiasi cosa - a insta l'anno scorso lo stesso "cappello" era lì, gli ordini hanno preso 5 minuti per chiudere - e il codice dovrebbe essere stampato con tutti i controlli e stampanti ;)

Ok. :-)

PS Pubblicherò il risultato qui stasera.

 
 #property  indicator_chart_window
#property  indicator_buffers 1
#property  indicator_plots 1
#include  "Includes//Symbol.mqh"
enum price_types
  {
   Bid,
   Ask
  };
input datetime start_date = D'2019.10.07 00:00:00' ;
input int Chops = 10 ;
input price_types applied_price= 0 ; //Price
int data_filled = 0 ;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
string symbol_custom= StringFormat ( "%s_%dsec" , _Symbol ,Chops);
long chart_id = 0 ;
datetime start;
void OnInit ()
  {
//CustomSymbolDelete(symbol_custom);
   start=start_date- 60 ;
   Print ( "Ticks History Deleted : " , CustomTicksDelete (symbol_custom, 0 , LONG_MAX ));
   data_filled = 0 ;

   const SYMBOL SYMB(symbol_custom);
   SYMB.CloneProperties( _Symbol );
   SYMB.On();
   MqlTick ticks_add[];
   int len = CopyTicksRange ( _Symbol ,ticks_add, COPY_TICKS_INFO , ulong (start_date)* 1000 , ulong ( TimeCurrent ())* 1000 );
   Print ( "Ticks: " ,len);
   start = start - (len* 60 );
   Print ( "Start Date : " ,start);
   for ( int i= 0 ; i<len && ! IsStopped (); i++)
     {
       if (data_filled%Chops== 0 )
        {
         start = start+ 60 ;
         start = datetime ( TimeToString (start, TIME_DATE )+ " " + TimeToString (start, TIME_MINUTES )+ ":00" );
        }
       else
        {
         start++;
        }
      ticks_add[i].time = start;
      ticks_add[i].time_msc = long (ticks_add[i].time)* 1000 ;
      data_filled++;
     }
//Print(SYMB.CloneTicks(ticks_add));
   Print ( CustomTicksAdd (symbol_custom,ticks_add));
   chart_id = ChartOpen (symbol_custom, _Period );
   Print ( GetLastError ());
  }
void OnDeinit ( const int r)
  {
   if (chart_id != 0 )
     {
       ChartClose (chart_id);
     }
   return ;
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate ( const int rates_total,
                 const int prev_calculated,
                 const datetime &time[],
                 const double &open[],
                 const double &high[],
                 const double &low[],
                 const double &close[],
                 const long &tick_volume[],
                 const long &volume[],
                 const int &spread[])
  {
   if (rates_total <= 0 )
       return 0 ;
   MqlTick ticks[ 1 ];
   CopyTicks ( _Symbol ,ticks, COPY_TICKS_INFO , ulong ( TimeCurrent ())* 1000 , 1 );
   if (data_filled%Chops== 0 )
     {
      start = start+ 60 ;
      start = datetime ( TimeToString (start, TIME_DATE )+ " " + TimeToString (start, TIME_MINUTES )+ ":00" );
     }
   else
     {
      start++;
     }
   Print (start);
   ticks[ 0 ].time = start;
   ticks[ 0 ].time_msc = long (start)* 1000 ;
   data_filled++;

   Print ( CustomTicksAdd (symbol_custom,ticks));
   Print ( GetLastError ());

   return (rates_total);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+

Perché le zecche non vengono aggiunte al mio personaggio personalizzato?

File:
Symbol.mqh  7 kb
 
Igor Makanu:

Qual è l'errore? schermo sbagliato

in teoria dovrebbe funzionare, ma non ho visto una chiusura così sofisticata che tenga conto dello spread e lo aggiunga come slippage - imho, se si decide di chiudere, allora lo slippage non è la cosa più importante da controllare, gli errori di chiusura sono più importanti, poi le requote, poi la connessione viene persa completamente


Togliete OrderClose(....) e sostituitelo con ClosePosBySelect() di Kimhttps://www.mql5.com/ru/forum/131859/page2#comment_3359664

usarlo, allora vedrete chiaramente dove si sta rompendo - o nelle vostre condizioni di chiusura, o il server ha qualche tipo di trucco

Artyom Trishkin:

Ha un prezzo vicino allo zero. Rispettivamente, dovremmo controllare ciò che è stato restituito dalla funzione MarketInfo, ma non abbiamo alcun controllo. Tuttavia, come al solito sul quattro alcune persone sono abituate a scrivere - qualcosa ricevuto, cosa - non ha controllato, ma ha inviato un argomento.

Colleghi, grazie dal profondo del mio cuore per l'aiuto tempestivo nel codice, nessuno scherzo qui, mi avete sempre aiutato prima e aiuto.

Tutti i fi ioni dall'ultima pagina sulla chiusura delle transazioni funzionano bene. C'è stato un problema con la fine del periodo del conto demo qui, ecco perché non c'era nessuna chiusura sulle condizioni, compresi i prezzi zero...

Ho aggiornato l'account e sto continuando i test.

 
jaffer wilson :

Perché le zecche non vengono aggiunte al mio personaggio personalizzato?

@ Artyom Trishkin

Per favore, puoi rispondere alla mia domanda? Credo che non interessi a nessuno.