[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 4. - pagina 220
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
Nella mia esperienza, il modo più efficace per trovare gli errori è quello di visualizzare un messaggio nei commenti con il numero di errore seguito da un'esecuzione visiva dell'EA. All'inizio ci vuole molto tempo, ma poi si impara rapidamente a farlo senza errori. Potete anche escludere parti di codice con /* ... */ è possibile determinare come cambia il comportamento dell'EA.
Hai capito bene. Inoltre, quando prendiamo un valore dalla scatola, questo è di tipo double, ma se viene dato il comando di scrivere il risultato in una variabile di tipo int, il compilatore farà automaticamente tutti i passi necessari per mettere il valore in una nuova scatola.
Per essere finalmente sicuro di aver capito bene, controlla i miei pensieri sul tuo ultimo paragrafo... Perciò, facciamo in modo che l'esperto di cui sopra sia presente:
Poi nella stringa:
Mettiamo una variabile di tipo intero Experts nella casella "GV-variable" per la memorizzazione (convertendola al tipo double). Allora se (ipotesi ipotetica) ci fosse una stringa nell'Expert Advisor
int New_Experts=Experts;
vorrebbe dire che c'è un comando per scrivere il risultato in una variabile di tipo int. In questo caso il compilatore:
* prenderebbe il valore della variabile di tipo double fuori dalla scatola,
* apportare le modifiche necessarie al valore della variabile Experts,
* assegnare questo valore alla variabile New_Experts e...
* mettere il valore della variabile New_Experts in una casella "int".
Quindi il tipo di variabile non è altro che un wrapper/pacchetto esterno di qualche valore? e quindi le variabili GV non possono essere di tipo stringa, poiché il downgrade è permesso solo per i valori numerici, e le stringhe non vengono convertite in numeri.
Giusto?
Grazie in anticipo per la vostra risposta.
cosa non così per (f=1;f<Bars;f++)
{
Price1 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,f)) / MarketInfo(Symbol_1, MODE_POINT)
Prezzo2 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,f)) / MarketInfo(Symbol_2, MODE_POINT);
Spread = Prezzo1 - Prezzo2;
Stampa ("Prezzo1="+Prezzo1, " Prezzo2="+Prezzo2);
if (Spread==0){t=f; break;}
}
Prezzo12 = (iClose(Symbol_1,0,0) - iClose(Symbol_1,0,t)) / MarketInfo(Symbol_1, MODE_POINT);
Prezzo22 = K*(iClose(Symbol_2,0,0) - iClose(Symbol_2,0,t)) / MarketInfo(Symbol_2, MODE_POINT);
Spread2 = Prezzo12 - Prezzo22;
se (MathAbs(Spread2) >= razdvizka && Spread2 < 0) { aprire il trade }
vuole fissare la barra in cui lo spread era uguale a zero e controllare lo spread a partire da essa
se(MathAbs(Spread)<eps) { ........ } e hai ancora bisogno di controllare il risultato - se il punto che soddisfa la condizione viene trovato o meno. IMHO è meglio creare una funzione separata, per esempio, come questa:
Salve.
Sapete se c'è una #proprietà negli indicatori che permette all'indicatore di mostrare sempre lo stesso periodo, per esempio d1?
e non cambia anche se si cambia timeframes in MetaTrader?
grazie
------------------------------------------
oh... quanti pros.....
aiuto!!!!
come chiamare l'indicatore dallo script, ho davvero bisogno che venga visualizzato in una finestra
Buona sera, per favore aiutatemi a fare delle modifiche al codice dell'EA:
1. Quando si testa tutto va bene - ma quando si fa trading il primo trade deve essere aperto manualmente, stop e take anche. Vorrei che l'EA iniziasse a negoziare automaticamente quando il prezzo arriva a un nuovo tick.
2. Poiché nel caso di uno stop loss innescato, la posizione successiva viene aperta con il doppio del lotto precedente, il lotto può teoricamente aumentare all'infinito (nel mio caso, fino a 51,2), vorrei limitarlo (ad esempio 0,8) con la possibilità di cambiare la soglia. Quando la soglia viene raggiunta e viene attivato uno stop, l'EA non si disconnette, ma riparte da 0,1.
Aiuto, per favore. Ho lottato tutto il giorno senza alcun aiuto.
L'ordine è sul ritiro (Main BAY, in attesa di sellsstop come rete di sicurezza).
Alla chiusura sellsstop nel no-loss, rimandato di nuovo nello stesso posto.
Per essere finalmente sicuro di aver capito bene, controlla i miei pensieri sul tuo ultimo paragrafo... Perciò, facciamo in modo che l'esperto di cui sopra sia presente:
Poi nella stringa:
Mettiamo una variabile di tipo intero Experts nella casella "GV-variable" per la memorizzazione (convertendola al tipo double). Allora se (ipotesi ipotetica) ci fosse una stringa nell'Expert Advisor
vorrebbe dire che c'è un comando per scrivere il risultato in una variabile di tipo int. In questo caso il compilatore:
* prenderebbe il valore della variabile di tipo double fuori dalla scatola,
* apportare le modifiche necessarie al valore della variabile Experts,
* assegnare questo valore alla variabile New_Experts e...
* mettere il valore della variabile New_Experts in una casella "int".
Quindi il tipo di variabile non è altro che un wrapper/pacchetto esterno di qualche valore? e quindi le variabili GV non possono essere di tipo stringa, poiché il downgrade è permesso solo per i valori numerici, e le stringhe non vengono convertite in numeri.
Giusto?
Grazie in anticipo per la risposta.
Non esattamente. Il punto è che la variabile Experts ha già il tipo int, quindi la conversione di tipo deve avvenire PRIMA di assegnarle un valore, cioè il compilatore
* ha preso fuori dalla scatola un valore di tipo double (non ha nome nel vostro programma, ed è scritto semplicemente a qualche indirizzo noto al compilatore nella memoria principale o nel registro della CPU)
* ha fatto tutte le modifiche necessarie al valore della variabile di cui sopra e ha scritto un nuovo valore (di tipo int!) nella variabile Experts,
* ha assegnato questo valore (di tipo int!) alla variabile New_Experts. Hanno lo stesso tipo, quindi si tratta solo di copiare un valore da una posizione di memoria all'altra.
P.S. È bello vedere che ci sono persone che comprendono le loro azioni in modo così dettagliato. Infatti, non scherziamo. Tenetevi in contatto.
Buona sera, per favore aiutatemi a fare delle modifiche al codice dell'EA:
1. Quando si testa tutto va bene - ma quando si fa trading il primo trade deve essere aperto manualmente, stop e take anche. Vorrei che l'EA iniziasse a negoziare automaticamente quando il prezzo raggiunge un nuovo tick.
Poiché nel caso di uno stop loss innescato, la posizione successiva viene aperta con il doppio del lotto precedente, il lotto può teoricamente aumentare all'infinito (nel mio caso, fino a 51,2), vorrei limitarlo (ad esempio 0,8) con la possibilità di cambiare la soglia. Quando la soglia viene raggiunta e viene attivato uno stop, l'EA non si disconnette, ma riparte da 0,1.
Provate: