Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate oltre. Da nessuna parte senza di te - 6. - pagina 614
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
Grazie per aver risposto. Se non ti dispiace, mandami l'EA di cui parli (o una parte di esso, che è con il canale) - sarebbe interessante vedere un'altra implementazione.
Non riesco a dare un senso a qualcosa che ho fatto qualche anno fa. Non funziona per qualche motivo, anche se ricordo che prima funzionava e commerciava. Lasciatemi prima sistemare il codice, sistemarlo e poi postarlo. Forse domani. Non voglio mettermi in imbarazzo se ci sono degli errori infantili.
L'idea generale, naturalmente, è questa. E come si determina la larghezza del canale (gamma nel vostro caso)? Lo faccio attraverso la dimensione della candela media e in più è tutto legato alla lunghezza del canale, perché la presenza del canale non viene controllata su un numero rigido di barre, ma, per esempio, su una lunghezza da 10 a 30 barre.
Quello che mi interessa è la questione di selezionare la larghezza dalla lunghezza...
Si possono fare diversi parametri esterni per la larghezza del canale in un indicatore. E fare calcoli separati per ogni parametro.
Per la lunghezza, lo stesso vale.
Salve. Il basket Expert Advisor dovrebbe chiudere tutti gli ordini quando arriva la condizione, ma prima chiude l'ordine, poi prova a chiuderlo di nuovo (il server ci dà un errore dicendo "Invalid ticket") e solo allora va avanti. Ecco un codice di esempio e l'EA stesso.
Nella vostra funzione CloseOrders(), se l'ordine viene chiuso, il ciclo while(cnt<=5 ) invierà ancora una volta il codice per chiudere l'ordine, e si verificherà un errore, ovviamente, quindi uscire attraverso if(). pausa;
Nella funzione ProtectionClose(), avete già aggiunto delle linee con il corretto while exit.
Prova a scavare qui.Nella vostra funzione CloseOrders(), se l'ordine viene chiuso, il ciclo while(cnt<=5) invierà ancora una volta il codice per chiudere l'ordine, e si verificherà un errore, ovviamente, quindi uscire attraverso if(). pausa;
Nella funzione ProtectionClose(), avete già aggiunto delle linee con la corretta uscitawhile
Prova a fare qualche ricerca qui.Ma nel caso che ho descritto, è la funzione ProtectionClose() che chiude l'ordine. Correggerò questo errore.
Tuttavia, è la funzione ProtectionClose() che chiude gli ordini nel caso che ho descritto. Correggerò questo errore.
Non ho scavato a fondo nel codice, non ho potuto eseguirlo in tester, non c'è nessun indicatore.
Ma, per esempio, le vostre funzioni OpenUsdbuy(); OpenSellusd() sono consecutive.
OpenSellusd() apre GBPUSD, EURUSD, AUDUSD, NZDUSD, ecc. Sarai il primo a chiuderli nell'ordine inverso di NZDUSD, AUDUSD, ecc.
Solo tre coppie nella funzione ProtectionClose() hanno un while exit in due varianti: USDCAD, USDCHF e USDJPY.
In altre valute, si può uscire da while() solo con un errore if(!Result[...]).
È possibile fare diversi parametri esterni per la larghezza del canale in un indicatore. E fare calcoli separati per ogni parametro.
Il punto è che non voglio impostare forzatamente la larghezza del canale - l'Expert Advisor/indicatore deve rilevare la presenza del canale indipendentemente dalla coppia di valute e/o dalla volatilità corrente. Di conseguenza, ho impostato la lunghezza minima e massima del canale da parametri esterni, e questo solo nel processo di debug dell'algoritmo - dopo questi parametri saranno cuciti in esso. In questa fase, ci sono alcune lamentele. Anche se posso prendere i canali in generale (l'immagine è stata presa dal codice funzionante), mi piacerebbe vedere altre soluzioni di questo problema.
Non ho scavato a fondo nel codice, non ho potuto eseguirlo in tester, non c'è nessun indicatore.
Ma, per esempio, le vostre funzioni OpenUsdbuy(); OpenSellusd() sono consecutive.
OpenSellusd() apre GBPUSD, EURUSD, AUDUSD, NZDUSD, ecc. Sarai il primo a chiuderli nell'ordine inverso di NZDUSD, AUDUSD, ecc.
Solo tre coppie nella funzione ProtectionClose() hanno un while exit in due varianti: USDCAD, USDCHF e USDJPY.
In altre valute si può uscire da while() solo con un errore if(!Result[...])
Grazie per il suggerimento, ho dimenticato di lasciare il ciclo in questo caso, ora dovrebbe funzionare. Se vuoi posso incollare l'indicatore come ringraziamento.
L'idea generale, naturalmente, è questa. E come si determina la larghezza del canale (gamma nel vostro caso)? Lo faccio attraverso la dimensione della candela media e in più è tutto legato alla lunghezza del canale, perché la presenza del canale non viene controllata su un numero rigido di barre, ma, per esempio, su una lunghezza da 10 a 30 barre.
Quello che mi interessa è la questione di scegliere la larghezza dalla lunghezza...
Bene, nel mio caso, ho suggerito un'opzione più leggera della lanterna per assegnare l'altezza del canale e anche il numero minimo di barre.
Il punto è che non voglio impostare forzatamente la larghezza del canale - l'Expert Advisor/indicatore deve rilevare la presenza del canale indipendentemente dalla coppia di valute e/o dalla volatilità corrente. Di conseguenza, ho impostato solo la lunghezza minima e massima del canale da parametri esterni, e questo solo nel processo di debug dell'algoritmo - dopo questi parametri saranno cuciti in esso. In questa fase, ci sono alcune lamentele. Anche se posso prendere i canali in generale (l'immagine è stata presa dal codice funzionante), mi piacerebbe vedere altre soluzioni di questo problema.
Il punto è che non voglio impostare forzatamente la larghezza del canale - l'Expert Advisor/indicatore deve rilevare la presenza del canale, indipendentemente dalla coppia di valute e/o dalla volatilità corrente. Di conseguenza, ho impostato solo la lunghezza minima e massima del canale da parametri esterni, e questo solo nel processo di debug dell'algoritmo - dopo questi parametri saranno cuciti in esso. In questa fase, ci sono alcune lamentele. Anche se, nel complesso, i canali sono presi (l'immagine era solo dal codice funzionante), mi piacerebbe vedere altre soluzioni per questo problema.
Bene, c'è un'idea per catturare 2 frattali top consecutivi o 2 iHighest composti da, diciamo, 5-10 candele. Prendiamo questo caso entro un certo intervallo di lunghezza. Se i valori di questi picchi sono vicini tra loro, tra questi due picchi troveremo iLowest.
Allo stesso modo, cerca prima i due picchi inferiori e poi il picco superiore tra di essi.
Poi danzeremo su quelle cime ritrovate. Per prima cosa, disegniamo dei livelli da loro. Poi insegniamo al codice a pensare ulteriormente.
Questa opzione eliminerà il parametro esterno come Channel_width.
In qualsiasi modo la si guardi, penso che abbiamo bisogno almeno di alcuni parametri per la lunghezza.