Sergey Efimenko: Dovevo indovinare che c'è un codice diverso? Sopra lo screenshot anche, dove le ultime 100 barre sono state contate, ma in realtà tutte le barre sono state contate, ma solo 100 sono state copiate nel buffer. Sì e perché non postare subito il codice? Non ci sarebbe stata una tale risposta. Avrei risposto in modo sostanziale: non capisco qual è il punto? Si può vedere immediatamente dal codice cosa sta succedendo, cosa conta e se ci sono i difetti di cui sopra. E cosa ti dà lo schermo? Nient'altro che il risultato, e a proposito del risultato già detto, può essere raggiunto in diversi modi, ma non tutti sono accettabili per il compito in questione - ridurre il tempo di calcolo.
Convincente. Deve essere stata la quantità presa prima... Mi dispiace per questo.
int i, limit;
limit = prev_calculated == 0 ? rates_total-1 : rates_total-prev_calculated;
double buffer[]; // это промежуточный буфер для расчётаArraySetAsSeries(buffer, true); // это сам знаешьfor(i = limit; i >= 0; i--)
{
Buffer[i]=open[i]; // в комментарии не нуждается
BufferBMA[i] = NormalizeDouble(iMAOnArray(Buffer, 0, 5, 0, MODE_LWMA, i), _Digits); // Я воспользовался этим буфером чтобы не описывать ещё один
if(rates_total-i >= rates_total-50) // Всё основное действо...
{
ArrayCopy(buffer, Buffer, 0, i, 5); // Копируем в дополнительный буфер часть основного
BufferMA[i] = NormalizeDouble(iMAOnArray(buffer, 0, 5, 0, MODE_LWMA, 0), _Digits); // и вычисляем среднее значение с указанным периодом
}
}
return(rates_total);
Dmitry Fedoseev: Quante di queste sciocchezze puoi sparare?
Ha risposto prima.
Alexey Viktorov:
Sei l'unico che può iniziare una scazzottata. Conta con quanti membri del forum hai interagito con questo tono di voce in questo modo con me ora. Vai via, Satana.
Per il mio bene, mi sto divertendo. Così il mio cervello non si secca, e allo stesso tempo la gente potrebbe beneficiarne. Non fai altro che cagare... Vai via, Satana...
Alexey Viktorov: Per il mio divertimento. Per evitare che il mio cervello si secchi, e allo stesso tempo, forse la gente ne beneficerà. Non fai altro che cagare... Vattene, Satana...
Allora avete sbagliato posto per l'intrattenimento.
Convincente. Deve essere stata la quantità presa prima... Mi dispiace.
Il risultato è nello screenshot qui sopra.
Prova a impostare la modalità SMMA :) Ma anche senza, c'è ancora un'eccessiva copia dell'array, e se si moltiplicano i calcoli per ogni tick, specialmente quando il periodo di smoothing cresce, anche l'array crescerà.
Dovevo indovinare che c'è un codice diverso? Sopra lo screenshot anche, dove le ultime 100 barre sono state contate, ma in realtà tutte le barre sono state contate, ma solo 100 sono state copiate nel buffer. Sì e perché non postare subito il codice? Non ci sarebbe stata una tale risposta. Avrei risposto in modo sostanziale: non capisco qual è il punto? Si può vedere immediatamente dal codice cosa sta succedendo, cosa conta e se ci sono i difetti di cui sopra. E cosa ti dà lo schermo? Nient'altro che il risultato, e a proposito del risultato già detto, può essere raggiunto in diversi modi, ma non tutti sono accettabili per il compito in questione - ridurre il tempo di calcolo.
Convincente. Deve essere stata la quantità presa prima... Mi dispiace per questo.
Il risultato è nello screenshot qui sopra.
Convincente. Deve essere stata la quantità presa prima... Mi dispiace.
Il risultato è nello screenshot qui sopra.
Quante di queste sciocchezze puoi sparare?
Alexey Viktorov:
Sei l'unico che può iniziare una scazzottata. Conta con quanti membri del forum hai interagito con questo tono di voce in questo modo con me ora. Vai via, Satana.
Ha risposto prima.
Quante di queste sciocchezze puoi sparare? Cosa sta cercando di dimostrare?
Niente per te.
E per chi e cosa?
Per il mio divertimento. Per evitare che il mio cervello si secchi, e allo stesso tempo, forse la gente ne beneficerà. Non fai altro che cagare... Vattene, Satana...
Convincente. Deve essere stata la quantità presa prima... Mi dispiace.
Il risultato è nello screenshot qui sopra.
Prova la modalità SMMA :)