75.000 opzioni - 4GB di RAM e 4GB di cache del disco non sono sufficienti??? - pagina 5

 
Non abbiamo una visualizzazione, non ne abbiamo ancora bisogno.
Ma probabilmente lo faremo nella prossima versione.

Vi mostrerò quello che posso.
È impossibile trasferire l'Expert Advisor al 100%,
Faccio un'approssimazione, non si tratta dell'Expert Advisor, ma delle capacità dell'ottimizzatore,
Si tratta delle capacità dell'ottimizzatore, vero?
 
Mak:
Non abbiamo una visualizzazione, non ne abbiamo ancora bisogno.
Ma probabilmente lo faremo nella prossima versione.

Vi mostrerò quello che posso.
È impossibile trasferire l'Expert Advisor al 100%,
Faccio un'approssimazione, non si tratta dell'Expert Advisor, vero?
Si tratta delle capacità dell'ottimizzatore, vero?
Niente affatto. L'intero complesso della mappatura e dell'usabilità ne è l'essenza, il che comporta un grande dispendio di risorse.

Una cosa è costringere i programmatori a spalare tutto il loro codice per incorporare la comunicazione con un ottimizzatore esterno, e poi eseguire l'ottimizzatore che calcola qualcosa lì. E tutto questo a un costo. E un'altra cosa è spuntare la casella "Ottimizzazione genetica" di qualsiasi esperto, selezionare un intervallo normale (non decine di miliardi), ottenere i risultati e guardare immediatamente attraverso i risultati mentre l'ottimizzatore lavora, senza alcun programma aggiuntivo. Ed è gratuito.

Rendiamo costantemente i nostri sistemi il più semplice, comodo e integrale possibile. Qualcuno sostiene che "il mio tester è 10-100 volte più veloce", ma non lo dimostra. Qualcuno parla di compiti fittizi con "un cavallo nel vuoto sferico". Mentre noi realizziamo sistemi funzionanti che funzionano in modo massiccio per centinaia di migliaia di trader che usano MetaTrader. E siamo molto più avanti di qualsiasi concorrente, anche grazie alla nostra ideologia dei sistemi di costruzione.

ps: A proposito, perché il pacchetto di distribuzione del vostro ottimizzatore genetico è più grande di quello di MetaTrader? Non è economico scriverlo?
 
Bene, ecco una corsa.

Non ho valute in Omega, ho corso su ciò che è nella distribuzione
- IBM (D1) per 31 anni (> 11 mila barre).

1000 esecuzioni hanno richiesto ~10 min su Athlon XP 1500+

Ho allargato le gamme dei parametri, perché la volatilità è più alta sulle azioni

TakeProfit = (10, 10000, 1)
TralingStop = (10, 10000, 1)
Lotti = (1, 1000, 1) - il mio numero di azioni è
MACDOpenLevel = (1, 100, 1)
MACDCloseLevel = (1, 100, 1)
MATrendPeriod = (2, 100, 1)

Lo spazio totale dei parametri è ~ 10^14 stati.

Qui sotto c'è il codice in EasyLanguage e ScreenShot.
Ho anche allegato il codice del segnale e i rapporti di Omega nel file Zip.

(incollare il codice non ha funzionato)
========================================================================
Inputs: Gen(1);
Vars: TakeProfit(50),
TralingStop(30),
Lots(0.1),
MACDOpenLevel(3),
MACDCloseLevel(2),
MATrendPeriod(26);

Vars: R(0),K(0);
If CurrentBar = 1 Then Begin
R = TS.GO.Start("MACD");
If Gen = 1 Then Begin
R = TS.GO.Mode(0);
R = TS.GO.Popul(100);
R = TS.GO.Var("Gen");
R = TS.GO.Var("Trades");

R = TS.GO.Method(1);
R = TS.GO.Criterio("NetProfit",1);
R = TS.GO.Criterio("MaxDD",1);
R = TS.GO.Criterio("PF",1);

K = TS.GO.Chrom("Stops");
R = TS.GO.Gen("TakeProfit", K, 10, 10000, 1);
R = TS.GO.Gen("TralingStop", K, 10, 10000, 1);

K = TS.GO.Chrom("Lotti");
R = TS.GO.Gen("Lotti", K, 1, 1000, 1);

K = TS.GO.Chrom("MACD");
R = TS.GO.Gen("MACDOpenLevel", K, 1, 100, 1);
R = TS.GO.Gen("MACDCloseLevel", K, 1, 100, 1);
R = TS.GO.Gen("MATrendPeriod", K, 2, 100, 1);
Fine;

R = TS.GO.Next(Gen);
R = TS.GO.Set("Gen",Gen);
R = TS.GO.ShowViewer;

TakeProfit = TS.GO.Get("TakeProfit", 0);
TralingStop = TS.GO.Get("TralingStop", 0);
Lots = TS.GO. Get("Lotti", 0);
MACDOpenLevel = TS.GO.Get("MACDOpenLevel",0);
MACDCloseLevel = TS.GO.Get("MACDCloseLevel",0);
MATrendPeriod = TS.GO.Get("MATrendPeriod",0);
Fine;

Vars: MacdCurrent(0), MacdPrevious(0), SignalCurrent(0),
SignalPrevious(0), MaCurrent(0), MaPrevious(0);

MacdCurrent = MACD(Close,12,26);
MacdPrevious = MACD(Close,12,26)[1];
SignalCurrent = XAverage(MacdCurrent,9);
SignalPrevious = XAverage(MacdCurrent,9)[1];
MaCurrent = XAverage(Close,MATrendPeriod);
MaPrevious = XAverage(Close,MATrendPeriod)[1];

Vars: StopLoss(0);
If MarketPosition = 0 Then Begin
If MacdCurrent < 0
and MacdCurrent > SignalCurrent
and MacdPrevious < SignalPrevious
and AbsValue(MacdCurrent) > (MACDOpenLevel Point)
and MaCurrent > MaPrevious
Allora iniziate
Comprate le azioni di questa barra alla chiusura;
fine;

Se MacdCurrent > 0
e MacdCurrent < SignalCurrent
e MacdPrevious > SignalPrevious
e AbsValue(MacdCurrent) > (MACDOpenLevel Point)
e MaCurrent < MaPrevious
Allora inizia
Vendi le azioni di questa barra alla chiusura;
fine;
fine;

Se MarketPosition > 0 Allora inizia
Se MacdCurrent > 0
e MacdCurrent < SignalCurrent
e MacdPrevious > SignalPrevious
e AbsValue(MacdCurrent) > (MACDCloseLevel Point)
Then Begin
ExitLong ("CloseLong") this bar on close;
end;

Se StopLoss = 0 allora StopLoss = EntryPrice - TralingStop Points;
StopLoss = MaxList(StopLoss,High - TralingStop Points);

ExitLong ("TakeLong") Next Bar at EntryPrice + TakeProfit Points Limit;
ExitLong ("StopLong") Next Bar at StopLoss Stop;
end;

If MarketPosition < 0 Then Begin
If MacdCurrent < 0
and MacdCurrent > SignalCurrent
and MacdPrevious < SignalPrevious
and AbsValue(MacdCurrent) > (MACDCloseLevel Point)
Then Begin
ExitShort ("CloseShort") this bar on close;
end;

If StopLoss = 0 Then StopLoss = EntryPrice + TralingStop Points;
StopLoss = MinList(StopLoss,Low + TralingStop Points);

ExitLong ("TakeShort") Next Bar at EntryPrice - TakeProfit Points Limit;
ExitLong ("StopShort") Next Bar at StopLoss Stop;
end;


IF LastBarOnChart Then Begin
R = TS.GO.Set("Trades",TotalTrades);
R = TS.GO.Set("NetProfit",NetProfit);
R = TS.GO.Set("MaxDD",MaxIDDrawDown);
R = TS.GO.Set("PF",GrossProfit/(0.001-GrossLoss));
R = TS.GO.Fitness(0);
End;
========================================================================


File:
macd_test.zip  32 kb
 
Renat:
Mak:
Non abbiamo una visualizzazione, non ne abbiamo ancora bisogno.
Ma probabilmente lo faremo nella prossima versione.

Vi mostrerò quello che posso.
È impossibile trasferire l'Expert Advisor al 100%,
Farò qualcosa di approssimativo, non si tratta dell'Expert Advisor, ma delle capacità dell'ottimizzatore?
Si tratta delle capacità dell'ottimizzatore, vero?
Assolutamente no. Il punto è in tutto il complesso di mappatura e usabilità, che comporta un grande dispendio di risorse.

Una cosa è costringere i programmatori a spalare tutto il loro codice per integrare la comunicazione con un ottimizzatore esterno, e poi eseguire l'ottimizzatore che calcola qualcosa lì. E tutto questo a un costo. E un'altra cosa è spuntare la casella "Ottimizzazione genetica" di qualsiasi esperto, selezionare un intervallo normale (non decine di miliardi), ottenere i risultati e guardare immediatamente attraverso i risultati mentre l'ottimizzatore lavora, senza alcun programma aggiuntivo. Ed è gratuito.

Rendiamo costantemente i nostri sistemi il più semplice, comodo e integrale possibile. Qualcuno sostiene che "il mio tester è 10-100 volte più veloce", ma non lo dimostra. Qualcuno parla di compiti fittizi con "un cavallo nel vuoto sferico". Mentre noi realizziamo sistemi funzionanti che funzionano in modo massiccio per centinaia di migliaia di trader che usano MetaTrader. E siamo molto più avanti di qualsiasi concorrente, anche grazie alla nostra ideologia dei sistemi di costruzione.

ps: A proposito, perché il pacchetto di distribuzione del vostro ottimizzatore genetico è più grande di quello di MetaTrader? Non è economico scriverlo?

Renat, tu stesso mi hai richiesto di mostrarti questo.
Ti ho chiesto ripetutamente che cos'è QUESTO ....
Se avessi scritto un post precedente quando te l'ho chiesto,
la conversazione sarebbe andata diversamente e non avrei avuto bisogno di riscrivere questo MACD per Omega.
Ho dovuto mettere da parte altre cose per darmi da fare per dimostrare che "non sono un cammello".

Linea di fondo.
Tu dici che cosa buona che hai fatto e gratis ...
Stavo discutendo con te di questo (non stavo discutendo con te di niente)?

Ho solo fatto notare che il vostro ottimizzatore consuma troppa memoria.
Penso che questo sia un retaggio di una vecchia versione del vostro ottimizzatore, quando non avevate ancora CS.
Questo è facile da risolvere e renderà il vostro ottimizzatore ancora migliore.

Nota: nessuna critica da parte mia.
Volevo solo aiutarti.
 
È ben diverso quando si difende la propria posizione con i dettagli. Davvero, perché ci sono solo 1.000 overshoots in uno spazio così grande? Questo è un modo molto rozzo di vedere la cosa. Ho eseguito questo EA in MT4 su 1,5 B di valori e ha portato a 4400 rimbalzi netti in 4 minuti su 18000 barre di storia EURUSD H1.

Questo compito è ovviamente il regno del cavallo sferico nel vuoto e noi in MT4 stiamo infatti cercando erroneamente di riservare una certa quantità di memoria a causa dell'enorme area di valori possibili (l'eredità dei meccanismi di attacco brute force). Questo punto sarà corretto.

Grazie per la vostra perseveranza - ci avete costretti a scavare più a fondo nel tester.
 
Renat писал (а):

.... Ma perché ci sono solo 1000 rimbalzi in uno spazio così grande? È molto rozzo. Ho eseguito questo Expert Advisor in MT4 su un'area di 1,5 miliardi di valori e ho ottenuto 4400 overshoots netti in 4 minuti su 18000 barre EURUSD H1 della storia. ....
La velocità di ricerca nella genetica è indipendente dalla dimensione dello spazio dei parametri.
Dipende dalla qualità della funzione obiettivo (fitness).

Inoltre, usiamo l'algoritmo originale che è un ordine di grandezza più veloce di altri algoritmi conosciuti.
1000 corse è un po' troppo, di solito uso 100-200 corse (per qualsiasi numero di parametri) per valutare una soluzione.
 
Renat писал (а):
Sì, infatti questo EA nel test consuma troppa memoria e va giù. Ci occuperemo della questione.
Grazie per il codice fornito.


Renat, ancora nessuna notizia?
 

sano di mente, ci sono novità. Hanno trovato una perdita di memoria. Il compilatore non ha inserito il comando di rilascio della linea nel posto giusto.

 
stringo писал (а):

sano di mente, ci sono novità. Hanno trovato una perdita di memoria. Il compilatore non ha inserito il comando di rilascio della linea nel posto giusto.


Ok, stiamo aspettando la nuova costruzione.
 
sane:
stringo:

sano di mente, ci sono novità. Hanno trovato una perdita di memoria. Il compilatore non ha inserito il comando di rilascio della linea nel posto giusto.


Ok, in attesa della nuova costruzione.

Ho eseguito il tuo esempio sulla nuova build di 198 EA:







Niente più consumo eccessivo di memoria, con l'ottimizzazione genetica abilitata ci sono state 1088 ricerche su 21600 e il calcolo ha richiesto 8 minuti e 31 secondi.

Per quanto riguarda l'Expert Advisor stesso - non dovrebbe assolutamente essere usato a causa di gravi errori:
  • Livelli di arresto errati e tutti i registri sono disseminati di messaggi al riguardo
  • per la funzione SetOrder si può ottenere un severo divieto di trading con Expert Advisors dal proprio broker

    Questa funzione cerca di negoziare a prezzi obsoleti per cinque volte, l'autore dell'Expert Advisor non capisce cosa sta facendo (cerca di usare RefreshRates, ma dà comunque un prezzo obsoleto). E non c'è alcuna gestione significativa degli errori.