[ARCHIVIO]Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Non posso andare da nessuna parte senza di te - 5. - pagina 271
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Capisco quello che c'è. Ma non è chiaro perché sia implementato in questo modo.
Ogni singola funzione di libreria è parte del tutto, e una singola libreria è parte dell'intero complesso delle mie librerie - senza questa consapevolezza è impossibile capire il codice.
Non puoi comunque usare le tue librerie nella loro forma originale, cioè hai tutto legato lì. Ogni funzione sul pacco degli altri...
Ed è qui che ti sbagli. Avete mai pensato alla struttura di un EA "medio"? Ciò che rende un EA individuale sono le condizioni della strategia (cioè le condizioni di entrata/uscita), e tutto il resto è codice standard. Il modo in cui creo gli EA, compresi quelli basati su ordini: prendo un modello (per esempio, SAR, se è necessario un EA di rete) e vi collego una libreria aggiuntiva in cui sono scritte le condizioni di una nuova strategia (la ricreo).
Non ho voluto controllare in nessun modo. Ancora di più, non c'è dubbio che tutto è scritto in modo molto competente. Solo che non capisco bene tutto, quindi ho detto che non credo. Guardo, penso... Ma non capisco tutto. Ecco perché ho chiesto.
P.S. Con bs_Symbol continuo a non capire.
Amici, ho bisogno di aiuto per mettere a punto un EA.
C'è del codice che apre un ordine sotto certe condizioni if. L'esecuzione della condizione può avvenire ad ogni tick perché è posta nel corpo di int start().
Abbiamo bisogno di:
1. Dopo l'esecuzione della condizione (e l'apertura di un ordine), pausa per l'apertura di nuovi ordini, pausa per n barre. Per esempio, se l'EA è su timeframe M30 e ho bisogno di mettere in pausa per 3 ore, la pausa dovrebbe essere di 6 barre.
2. Questo programma dovrebbe funzionare nel tester di strategia.
Quale codice è necessario? E quale sarebbe il posto giusto dove metterlo.
La funzione iBarShift() vi aiuterà. Per prima cosa, dovete trovare l'ora dell'ultima apertura dell'ordine e passarla a questa funzione, e poi monitorare il valore restituito da questa funzione confrontandolo con un certo numero (nel vostro caso, 6).
Risolviamo la cosa insieme )
Passiamo il tempo dell'ultima apertura dell'ordine a questa funzione e otteniamo il numero restituito. Questo è approssimativamente:
Ok, abbiamo il numero del bar. Ora come facciamo a mettere in pausa gli ordini aperti per 6 barre?
Risolviamo la cosa insieme )
Passiamo il tempo dell'ultima apertura dell'ordine alla funzione, e otteniamo che il numero restituito sia approssimativo:
Ok, abbiamo il numero del bar. Ora come facciamo a mettere in pausa gli ordini aperti per 6 barre?
Questo è un approccio analfabeta:
Ma poiché non è direttamente rilevante per questo caso, non ci concentriamo su di esso. Lo schema si presenta così:
Non ci sono errori evidenti nella logica. Stampa il codice passo dopo passo. La procedura di scambio è legata al valore della variabile ticket. Prima di tutto, traccia i suoi cambiamenti. Fate anche attenzione al valore della variabile globale "TRADECONTEXT" - il suo valore deve essere 0.
Grazie! Non ci capisco niente(((, sono come un gattino cieco in questi codici((((...
Grazie! Ma non capisco niente(((, sono come un gattino cieco in questi codici((((...
Ogni singola funzione di libreria è parte del tutto, e ogni singola libreria è parte dell'intero complesso delle mie librerie - senza questa consapevolezza è impossibile capire il codice.
Sto cercando di capirlo e mi imbatto in ogni sorta di sfumature. È per questo che lo chiedo a te, perché tu lo sai meglio di me. Tu sei l'autore...
Ed è qui che ti sbagli. Avete mai pensato alla struttura di un Expert Advisor "medio"? Ciò che rende un EA individuale sono le sue condizioni di strategia (cioè le condizioni di entrata/uscita), e tutto il resto è codice standard. Il modo in cui creo Expert Advisors, compresi quelli basati su ordini: prendo un modello (per esempio, SAR, se è necessario un EA di rete) e collego ad esso una libreria aggiuntiva in cui sono scritte le condizioni di una nuova strategia (la ricreo).
Lo capisco. Solo che non voglio copiare l'intera libreria. Lei capisce che è più conveniente creare una fondazione, con la quale sarà conveniente lavorare personalmente.
Per capire l'implementazione, è necessario capire i dati iniziali. Le librerie sono state create con la possibilità di lavorare con qualsiasi strumento (Forex) e sia in modalità mono che multicurrency, quindi, è stata introdotta la variabile globale bs_Symbol, che contiene il valore del simbolo corrente.
E dove viene impostata esplicitamente questa variabile, se non è un segreto? :) Vedo nella libreriab-PSI@Base.mqh che è solo dichiarato:
bs_Symbol, // текущий инструмент
Ma non c'è niente di più in effetti. In ogni caso, il valore dello strumento corrente è restituito di default attraverso Symbol(). Allora perché abbiamo bisogno di una variabile qui?
Questo è un approccio analfabeta:
Ma, dato che non è direttamente rilevante per questo caso, non ci concentriamo su di esso. E lo schema si presenta così:
:) Ma se viene introdotto nell'Expert Advisor come è ora, tutto inizia a funzionare in modo errato.
Per quanto ho capito, è dovuto a questa voce:
Cosa c'è che non va?
Ora il nostro codice funziona. Nella mia versione, funziona così:
:) Solo che se viene implementato nell'EA come è ora, allora tutto inizia a funzionare in modo errato.
Capisco grazie a questa voce:
Cosa c'è che non va?
Io ho solo abbozzato uno schema, mentre il vostro compito era quello di pensare alla logica ulteriore: