[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 297

 
Urain >> :
Oppure: Time[0]+(Time[0]-Time[1]) o 2*Time[0]-Time[1].

budello :)

 

I miei saluti ai fratelli scrittori (di codice)!

Capisco che questa domanda dovrebbe dare sui nervi a tutti, ma non ho trovato nulla di utile al riguardo. Quindi sono confuso su qualcosa. Aiuta un nuovo arrivato ad afferrare!

Non ho avuto un'idea originale - in una finestra di indicatore per visualizzare le linee per i timeframe correnti e più grandi (nel mio caso un'ora e un giorno).

Il mio primo pensiero è stato... Tuttavia, non ho avuto tempo - le mie mani hanno fatto tutto da sole:

Buf_1[ i]=iCCI(NULL,1440,14,PRICE_TYPICAL, i);

Il risultato è stato chiaramente sfasato rispetto ai tempi previsti. Beh, è comprensibile - è più facile prendere una barra pronta del timeframe chiamato che crearla dinamicamente. Beh, mangeremo gamberi di fiume se non abbiamo pesce. Ho sincronizzato l'inizio del disegno in base all'ora e ho sostituito i con un id che viene aggiornato ad ogni cambio di giorno. La scala a segmenti orizzontali, passando per ogni ora di un giorno non è un grosso problema, ma almeno è qualcosa. Logicamente i tratti rettilinei avrebbero dovuto piegarsi in tempo reale. L'ha fatto. Ma ci vuole molto tempo per rimanere connessi al server per settimane in nome di un'immagine fattibile, e il visualizzatore del tester simula questo molto reale. Ho eseguito un Expert Advisor vuoto e l'ho lanciato nella finestra di visualizzazione del tester. Dannazione! Non c'è nessuna simulazione! Quando cambio il giorno, ottengo una barra completamente formata dalla storia, che non è ancora formata. L'uscita è la stessa scala. Si scopre che la barra zero nel disegno di cui sopra non è adatto per il lavoro, perché durante il test sarà falso. Il passo successivo è stato fatto per pura testardaggine per assicurarsi che nulla fosse lasciato in sospeso e che le "i" fossero messe a punto. Mi sono rivolto dall'Expert Advisor proprio a questa barra zero attraverso il mio indicatore e ho filtrato le sue (dell'Expert Advisor) azioni in base allo stato del CCI (più o meno del giorno precedente). A giudicare da quella spazzatura nel tester, si sono verificati alcuni cambiamenti nella barra, maero troppo basso per arrivare in fondo. Ancora una volta mi sono rimproverato per la mancanza di debug passo dopo passo del codice con le variabili di controllo. (Certo, potrei registrarlo, ma per i casi più complicati sarebbe un fiasco totale).

Una digressione.

Le immagini della versione 5 mi hanno commosso fino alle lacrime. Strumento molto potente! Il lettore multimediale apparirà probabilmente nella versione 6. )))))))))) Ma perché non dare loro un oggetto come il "bar" con tutti i suoi attributi? Sarebbe un sacco di dolore in un colpo solo, vero?

Torniamo ai sé. Alla fine del tester è stato aperto un indicatore in cui la linea in questione è stata assolutamente dritta per un anno e non ha mostrato niente di niente.

Questo è tutto.

Fuori.

Una stessa costruzione sulla storia, in tempo reale, nella finestra di visualizzazione e nel programma si comporta in modo completamente diverso.

Mi siedo ora e cerco di capire, è un bug questo, o tale chip o armatura è forte e i nostri carri armati sono veloci?

Z.U. No, a causa della mia testardaggine, ho finalmente ottenuto quello che volevo, simulando un pezzo di serie temporale dai dati attuali (si può anche chiedere un minuto per una maggiore certezza) e il calcolo delle proprie forze, ma è troppo fuori dal mio culo, mi dispiace, ottenere. E vorrei capire le regole di riferimento ad altri tempi in tali costruzioni...

 
hot писал(а) >>

I miei saluti ai fratelli scrittori (di codice)!

Capisco che questa domanda dovrebbe dare sui nervi a tutti, ma non ho trovato nulla di utile al riguardo. Quindi sono confuso su qualcosa. Aiuta un nuovo arrivato ad afferrare!

Non ho avuto un'idea originale - in una finestra di indicatore per visualizzare le linee per i timeframe correnti e più grandi (nel mio caso un'ora e un giorno).

Il mio primo pensiero è stato... Tuttavia, non ho avuto tempo - le mie mani hanno fatto tutto da sole:

Il risultato è stato chiaramente sfasato rispetto ai tempi previsti. Beh, è comprensibile - è più facile prendere una barra pronta del timeframe chiamato che crearla dinamicamente. Beh, mangeremo gamberi di fiume se non abbiamo pesce. Ho sincronizzato l'inizio del disegno in base all'ora e ho sostituito i con un id che viene aggiornato ad ogni cambio di giorno. La scala a segmenti orizzontali, passando per ogni ora di un giorno non è un grosso problema, ma almeno è qualcosa. Logicamente i tratti rettilinei avrebbero dovuto piegarsi in tempo reale. L'ha fatto. Ma ci vuole molto tempo per rimanere connessi al server per settimane in nome di un'immagine fattibile, e il visualizzatore del tester simula questo molto reale. Ho eseguito un Expert Advisor vuoto e l'ho lanciato attraverso la finestra di visualizzazione di un interstizio. Dannazione! Non c'è nessuna simulazione! Quando cambio il giorno, ottengo una barra completamente formata dalla storia, che non è ancora formata. L'uscita è la stessa scala. Si scopre che la barra zero nel disegno di cui sopra non è adatto per il lavoro, perché durante il test sarà falso. Il passo successivo è stato fatto per pura testardaggine per assicurarsi che nulla fosse lasciato in sospeso e che le "i" fossero messe a punto. Mi sono rivolto dall'Expert Advisor proprio a questa barra zero attraverso il mio indicatore e ho filtrato le sue (dell'Expert Advisor) azioni in base allo stato del CCI (più o meno del giorno precedente). A giudicare da quella spazzatura nel tester, si sono verificati alcuni cambiamenti nella barra, maero troppo basso per arrivare in fondo. Ancora una volta mi sono rimproverato per la mancanza di debug passo dopo passo del codice con le variabili di controllo. (Certo, potrei registrarlo, ma per i casi più complicati sarebbe un fiasco totale).

Una digressione.

Le immagini della versione 5 mi hanno commosso fino alle lacrime. Strumento molto potente! Il lettore multimediale apparirà probabilmente nella versione 6. )))))))))) Ma perché non dare loro un oggetto come il "bar" con tutti i suoi attributi? Sarebbe un sacco di dolore in un colpo solo, vero?

Torniamo ai sé. Alla fine del tester è stato aperto un indicatore in cui la linea in questione è stata assolutamente dritta per un anno e non ha mostrato niente di niente.

Questo è tutto.

Fuori.

Una stessa costruzione sulla storia, in tempo reale, nella finestra di visualizzazione e nel programma si comporta in modo completamente diverso.

Mi siedo ora e cerco di capire, è un bug questo, o tale chip o armatura è forte e i nostri carri armati sono veloci?

Z.U. No, a causa della mia testardaggine, ho finalmente ottenuto quello che volevo, simulando un pezzo di serie temporale dai dati attuali (si può anche chiedere un minuto per una maggiore certezza) e il calcolo delle proprie forze, ma è troppo fuori dal mio culo, mi dispiace, ottenere. E voglio capire le regole di riferimento ad altri tempi in strutture simili...

Scrivimi nel mio personale ...

 
Vinin >> :

>> scrivetemi di persona

Grazie per l'avvertimento, ma ho bisogno della teoria e preferisco occuparmi della pratica da solo. )))))))))))))

 

Ciao, ho questa domanda:

Come posso forzare l'EA a fare solo un trade in un determinato momento? Cioè, per esempio, ogni giorno di trading per fare un solo ordine di acquisto esattamente alle ore 15? Ho provato a farlo in questo modo:

int ct = Hour();
int cm = Minute();
int sd = Seconds();

if(ct == 15 && cm == 0 && sd == 0)
{
int tick = OrderSend(Symbol(),OP_BUY,A_lot,Ask,5,Ask-A_sl*Point,Ask+A_tp*Point,"Покупка.",3,0,CLR_NONE);
}

Funziona in linea di principio, ma solo l'EA fa molti acquisti in una volta, poiché il primo secondo della 16a ora arriva con diversi tick (dipende anche dal deposito e dal lotto).

Ho provato a controllare in base al caricatore e al giorno della transazione, ma mi ritrovo ancora con un casino:

int ct = Hour();
int cm = Minute();
int sd = Seconds();

if(ct == 15 && cm == 0 && sd == 0)
{
for (int i=1; i<=OrdersTotal(); i++)
{
if(OrderSelect(i-1, SELECT_BY_POS, MODE_TRADES)==true)
{
if(OrderMagicNumber() == 3 && OrderOpenTime() == Day())
{
bool A_order = true; break;
}
A_order = false;

}
}

if(A_order == false)
int tick = OrderSend(Symbol(),OP_BUY,A_lot,Ask,5,Ask-A_sl*Point,Ask+A_tp*Point,"Покупка.",3,0,CLR_NONE);
}

Se qualcuno lo sa, per favore consigliatelo! Proverò a controllare il numero magico allo stesso modo, ma lascia comunque un casino.

 
JackaLrus >> :

Ciao, ho questa domanda:

Come posso forzare l'EA a fare solo un trade in un determinato momento? Cioè, per esempio, ogni giorno di trading per fare un solo ordine di acquisto esattamente alle ore 15? Ho cercato di farlo in questo modo:


Se qualcuno lo sa, per favore consigliatelo! Grazie!

Prova a guardare nel thread di I. Kim -

Funzione isTradeToDay(). Pagina 21

Questa funzione restituisce la bandiera commerciale per oggi. La bandiera è alzata - Vero - le posizioni sono state aperte oggi. Flag down - Falso - nessuna posizione aperta oggi

https://www.mql5.com/ru/forum/107476/page21

//-

Con questa funzione potete creare facilmente una condizione di apertura:

if (isTradeToDay(NULL,-1,Magic)<1 ) {//  если сегодня не было сделок
//- то торговля разрешена

E il tempo di apertura è molto facile da impostare.

Inoltre, Igor ha funzioni temporali simili lì.

 

Grazie per il link! L'ho capito!

Devi usare TimeDay(OrderOpenTime())==Day() nel confronto, poi tutto funziona come dovrebbe!

 

Bisogno di aiuto. Sto cambiando l'inclusione del criterio MACD_Simple dalla documentazione dei criteri di trading (usando la regola delle 4 settimane, cercando i minimi e i massimi di 20 e 10 giorni - dettagli nel codice commentato) ma quando lo eseguo sulla storia nel tester, l'Expert Advisor non apre ordini.

Capisco che sono perso in tre alberi, tuttavia, se hai tempo e opportunità - dimmi...

//--------------------------------------------------------------------
// Criterion.mqh
// Правило 4-х недель
//--------------------------------------------------------------- 1 --
// Функция вычисления торговых критериев.
// Возвращаемые значения:
// 10 - открытие Buy  цена закрытия выше максим-ой за последние 20 дней
// 20 - открытие Sell цена закрытия ниже минимальной за последние 20 дней 
// 11 - закрытие Buy  цена закр ниже минимальной за последние 10 дней
// 21 - закрытие Sell цена закрытия выше максимальной за последние 10 дней
// 0  - значимых критериев нет
// -1 - используется другой финансовый инструмент
//--------------------------------------------------------------- 2 --
// Внешние переменные:
extern int                                 
       Counted_bars1=20,                         // Количество просчитанных баров 
       Counted_bars2=10;                         // Количество просчитанных баров 
       




//--------------------------------------------------------------- 3 --
int Criterion()                                                   // Пользовательская функция
  {
   double
        Max_20 = High [1], Min_20 = Low [1],                      // Присваиваем значения максимуму и  
        Max_10 = High [1], Min_10 = Low [1];                      // минимуму на 1-ом баре
   int i=0;                                                       // Индекс бара  
          
   
   //--------------------------------------------------------------- 4 --
   // Параметры торговых критериев:
   
  for( i = 2; i <= Counted_bars1+1; i++)                             // цикл для 20 дней 
         {                                        
         if (Low[ i] <  Min_20)                               // Если текущее значение < известного   
               Min_20 = Low[ i];                              // то оно и будет минимум   
         
         if (High[ i] > Max_20)                               // Если > известного    
               Max_20 = High[ i];                             // то оно и будет максимум  
           }   
  
  for( i = 2;  i <= Counted_bars2+1; i++)                     // цикл для 10 дней 
         {                                        
         if (Low[ i]< Min_10)                                 // Если текущее значение < известного   
               Min_10=Low[ i];                                // то оно и будет мин   
               
         if (High[ i] > Max_10)                                   // Если > известного    
               Max_10=High[ i];                                   // то оно и будет макс  
           }   

   
    //--------------------------------------------------------------- 5 --
   
    // Вычисление торговых критериев
    
   if(Close[0]> Max_20)
   return(10);                                           // Открытие Buy    
   
     
   if (Close[0]< Min_20)  
   return(20);                                           // Открытие Sell
     
   if(Close[0]< Min_10)
   return(11);                                           // Закрытие Buy    
  
   
   if(Close[0]> Max_10)
   return(21);                                           // Закрытие Sell    
   
     
   
  
      
       
//--------------------------------------------------------------- 6 --
   return(0);                          // Выход из пользов. функции
  }
//--------------------------------------------------------------- 7 --
 

Ciao membri del forum, ho iniziato a studiare TS abbastanza recentemente e ho una domanda per voi. Ho visto un Expert Advisor chiamato EURONIS su un noto sito web. Ho cercato su Google e ho trovato diverse recensioni positive e nessuna negativa. Nello stesso Google aveva un link a questo forum con argomento in discussione per questo consigliere, che ha espresso opinioni scettiche, ma l'argomento è stato apparentemente cancellato (ora la ricerca sul sito non ha prodotto nulla).

Ecco perché voglio sapere cos'è questo EA? Porta profitti stabili? C'è qualcuno di voi che l'ha scambiato su un conto reale? Aspetto i vostri commenti.

Aspetto i vostri commenti, grazie in anticipo.

 
Roman. >> :

Bisogno di aiuto. Sto cambiando l'inclusione del criterio MACD_Simple dalla documentazione dei criteri di trading (usando la regola delle 4 settimane, cercando i minimi e i massimi di 20 e 10 giorni - dettagli nel codice commentato) ma quando lo eseguo sulla storia nel tester, l'Expert Advisor non apre ordini.

Capisco che sono perso in tre pini, tuttavia, se hai tempo e opportunità - dimmi...

Aggiungi il codice completo, se non vuoi mostrare la tua idea, cambia il criterio, per esempio:

if(Close[0]>Open[1])
   return(10);                                           // Открытие Buy    
   
     
   if (Close[0]<Open[1])  
   return(20);                                           // Открытие Sell
     
   if(Close[0]<Open[1])
   return(11);                                           // Закрытие Buy    
  
   
   if(Close[0]> Open[1])
   return(21);                                           // Закрытие Sell    

Ma senza vedere l'intero quadro è impossibile dire dove l'artista ha sbagliato.