Discussione sull’articolo "Sviluppare un Expert Advisor per il trading da zero (Parte 11): Sistema di ordini incrociati"

 

Il nuovo articolo Sviluppare un Expert Advisor per il trading da zero (Parte 11): Sistema di ordini incrociati è stato pubblicato:

In questo articolo creeremo un sistema di ordini incrociati. C'è un tipo di asset che rende la vita dei trader molto difficile — i contratti future. Ma perché rendono la vita difficile?

L'immagine a sinistra rappresenta un tipico contratto future, in questo caso il MINI DOLLAR FUTURE, che è iniziato pochi giorni fa, come si può vedere dal grafico. Il grafico a destra mostra lo stesso contratto e contiene dati aggiuntivi che rappresentano effettivamente i valori dei contratti scaduti, quindi il grafico a destra è un grafico storico. Il grafico a destra è più adatto per analizzare i vecchi livelli di supporto e resistenza. Ma sorge un problema se abbiamo bisogno di tradarlo. Ed è mostrato di seguito:

          

Autore: Daniel Jose

 

Congratulazioni per questo eccellente articolo Daniel.


Penso che l'unico problema si presenterà a cavallo dell'anno, quando la funzione "CurrentSymbol" dovrà cercare il nome del simbolo del prossimo anno. Mi sembra che il valore di i1 restituisca sempre il numero dell'anno in corso (22), ma a dicembre iniziamo già a usare il simbolo che termina con 23.


 
Guilherme Mendonca nome del simbolo del prossimo anno. Mi sembra che il valore di i1 restituisca sempre il numero dell'anno in corso (22), ma a dicembre iniziamo già a usare il simbolo che termina con 23.


In realtà, questo problema non si verificherà e il motivo è quello che fa terminare il loop.....

                                for (int i0 = 0, i1 = mdt1.year - 2000;;)
                                {
                                        m_Infos.szSymbol = StringFormat("%s%s%d", sz0, StringSubstr(sz1, i0, 1), i1);
                                        m_Infos.szFullSymbol = StringFormat("%s%s%d", sz2, StringSubstr(sz1, i0, 1), i1);
                                        if (i0 < StringLen(sz1)) i0++; else
                                        {
                                                i0 = 0;
                                                i1++;
                                        }
                                        if (macroGetDate(dt) < macroGetDate(SymbolInfoInteger(m_Infos.szSymbol, SYMBOL_EXPIRATION_TIME))) break;
                                }

Solo quando questa condizione è soddisfatta, il ciclo termina e il valore di i1 viene sempre incrementato... così quando l'anno viene cambiato, l'attività verrà modificata automaticamente ....

 
Daniel Jose #:

Infatti, questo problema non si verificherà e il motivo è quello che fa terminare il TIE.....

Solo quando viene raggiunta questa condizione evidenziata, il ciclo termina e il valore di i1 verrà sempre incrementato... così quando l'anno viene cambiato, l'asset viene modificato automaticamente ....

Hai ragione.

Non avevo prestato attenzione alla riga che incrementa il valore di i1.