[Qualsiasi domanda da principiante, per non ingombrare il forum. Professionisti, non passate. Non posso andare da nessuna parte senza di te. - pagina 967

 
ikatsko:
Avete bisogno di una funzione "Nuovo ordine" come "Nuovo bar". La funzione dovrebbe avere valore TRUE solo per un tick dopo il momento in cui l'ordine è stato aperto. Cioè, nel momento in cui il numero di ordini aperti è cambiato verso l'alto. Per favore aiutateci a

In questo modo è possibile tracciare i cambiamenti del dealer in StopLevel ad ogni nuovo tick. Usate lo stesso principio per seguire i vostri ordini.

В инит:
//---------------------------------------------------
int init()
{
   Level_old =MarketInfo(Symbol(), MODE_STOPLEVEL);
//.............. дальнейший код инит .................
   return;
}
//---------------------------------------------------
В старт:
//---------------------------------------------------
int start()
{
   Level_new=MarketInfo(Symbol(),MODE_STOPLEVEL );    // Последнее значение уровня установки стопов
   if (Level_old!=Level_new)  {                       // Новое не равно старому, значит изменились условия
      Level_old=Level_new;                            // Новое запишем в "старое" для проверки на след. тике
// ............. действия, если новый уровень .......

   }
//.............. дальнейший код старт.................
   return;
}
 
IgorM:


c'è un tale problema - anch'io ho avuto questo problema, se l'Expert Advisor fa molti scambi all'anno - forse troppi dati sono memorizzati per l'output del risultato finale o forse i buffer degli indicatori mangiano la memoria

Ho visto - non so, abbiate pazienza - per un quadro generale, il test è per 10 anni, ed è meglio ottimizzare per un anno e poi fare una selezione dei migliori parametri

E sulla memoria. La memoria di 4 GB non è sufficiente? Soprattutto quando si testa la strategia - ho guardato - è usato solo 50-60%.
 
volshebnik:
E sulla memoria. 4GB di memoria non sono sufficienti? Soprattutto quando si testa la strategia - ho guardato - è usato solo 50-60%.
Capisco che il codice mostrato prima è una parte di esso, forse ci sono punti lenti anche nell'altra parte
 
volshebnik:
E sulla memoria. 4 GB di memoria non sono sufficienti? Inoltre, quando si testa la strategia - ho guardato - si usa solo il 50-60%.


Beh, non sappiamo quanto MT4 può utilizzare, e 4Gb non può essere affrontato in Win32, avete bisogno di Win64, e per Win64 avete bisogno di applicazioni a 64 bit, MT5 ha un terminale a 64 bit, MT4 non è nemmeno consapevole di esso

SZZ: non ottimizzare troppo - otterrai una fiducia in più nel tuo codice. e non è detto che il mercato voglia adattarsi ai tuoi parametri ottimali ;)

 
Capito... Ho sbagliato con il confronto di tipo reale a valore zero...
 
artmedia70:

In questo modo è possibile tracciare i cambiamenti del dealer in StopLevel ad ogni nuovo tick. Usate lo stesso principio per seguire i vostri ordini.


Grazie per il suggerimento! Infatti le linee:

 if (Level_old!=Level_new)  {                       // Новое не равно старому, значит изменились условия
      Level_old=Level_new;  

formano il "fronte", cioè il cambiamento dello stato attuale rispetto a quello precedente. Il parametro old_order è necessario. Grazie

 
ikatsko:

Grazie per il suggerimento! Infatti le linee:

formano il "fronte", cioè il cambiamento dello stato attuale rispetto a quello precedente. Il parametro old_order è necessario. Grazie

Sei il benvenuto - è stato anche suggerito da CK...
 
Techno:
Ho capito che il codice mostrato prima è una parte di esso, forse ci sono punti lenti anche nell'altra parte
Questa parte conta sulle zecche. Tutti gli altri calcoli sono solo all'inizio di ogni candela oraria. Era molto lento sul grafico e il loop incompiuto menzionato da Igor. Forse ci sono punti lenti, c'è un grafico anche lì - i numeri delle candele sono indicati - questo grafico non è auspicabile da rimuovere - sarà più difficile da analizzare.
 
IgorM:


Beh, non sappiamo quanto MT4 possa usare, e 4Gb non può essere affrontato in Win32, avete bisogno di Win64, e Win64 ha bisogno di applicazioni a 64 bit, MT5 ha un terminale a 64 bit, MT4 non è nemmeno consapevole di esso

ZS: non esagerare con l'ottimizzazione - otterrai ulteriore fiducia nel tuo codice. e non è detto che il mercato voglia adattarsi ai tuoi parametri ottimali ;)

Sì Igor, il sistema operativo a 32 bit usa al massimo 3,14 GB. Sto usando Windows 7 a 64 bit. Il terminale MT4 è un'applicazione a 32 bit, ma il Windows 7 a 64 bit ha la capacità di supportare applicazioni a 32 bit. Eccessiva rassicurazione.... Provando con la rassicurazione ))
 

Si prega di avvisare:

abbiamo trasferito i dati del TF mensile al TF giornaliero

ArrayCopySeries(TimeArray,MODE_TIME ,Symbol(),PERIOD_MN1); 

limit=Bars-counted_bars;

for(i=0,y=0;i<limit;i++)

if (Time[i]<TimeArray[y]) y++; 
{
        Month_P[i] = iMA(NULL, PERIOD_MN1, 3, 0, MODE_SMA, PRICE_TYPICAL, y+1);
}
Come si confrontano i dati del grafico del mese? Suppongo che dovremmo prendere Month_P [i] e Month_P [i+N], dove N è il numero di barre nel timeframe giornaliero che ci porterà sicuramente alla barra mensile precedente. E come determinare esattamente questo numero N?
Motivazione: