Buon pomeriggio, per favore consigliatemi... Dopo l'aggiornamento all'ultima build, gli errori in "SmoothAlgorithms" hanno iniziato a comparire. E sma, lwma, parma, vidya media ha smesso di funzionare. Sta imprecando a questa linea: "array out of range in 'SmoothAlgorithms.mqh' (3394,9)". Come devo risolvere il problema? Grazie!
007yurik: Buon pomeriggio, per favore consigliatemi... Dopo l'aggiornamento all'ultima build, gli errori in "SmoothAlgorithms" hanno iniziato a volare fuori. E sma, lwma, parma, vidya media ha smesso di funzionare. Sta imprecando a questa linea: "array out of range in 'SmoothAlgorithms.mqh' (3394,9)". Come devo risolvere il problema? Grazie!
Scrivi all'autore nella pagina di discussione della sua biblioteca:
C'è un modo per impostare programmaticamente una lista di parametri da ottimizzare?
Il fatto è che ho molti parametri. Migliaia. Li ho messi in un programma separato. EA che li carica durante l'inizializzazione attraverso un file esterno. Quindi il mio compito è quello di ottimizzare questi parametri ora.
Questo è per esempio un elenco di parametri ottimizzabili con valori e intervalli in un file. Leggi da lì e scrivi il risultato anche lì.
Sto scrivendo una funzione per chiudere i grafici senza EA o script. Ottengo il nome dell'Expert Advisor e dello script sul grafico usando la funzione ChartGetString. Se entrambi sono vuoti, li chiudo. Il problema è nella linea con la chiusura del grafico secondo la condizione. La condizione non è mai soddisfatta. Ecco il codice.
Buon pomeriggio, ho fatto .mqh per l'elaborazione e la memorizzazione dei dati nella risorsa. Tutto funziona, ma c'è una sfumatura, se compilo l'indicatore, il .mqh viene resettato e rifà il processo di peso per la memorizzazione. Obiettivo - finché ci sonodati nella risorsa non viene resettato. Dov'è l'errore, come risolverlo?
// Сохранение данных#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166#include <GlobalVariables.mqh>
const RESOURCEDATA<MqlTick>m_Resource("::"+__FILE__); // Ресурс для передали данных (тики)//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+class CMyTicks
{
protected:
public:
//+------------------------------------------------------------------+//| Constructor. |//+------------------------------------------------------------------+ void CMyTicks()
{
_GlobalVariableSet("ResourceName",m_Resource.GetFullName()); // Записали в глобальную переменную полное имя ресурса (read-only)
}
//+------------------------------------------------------------------+//| Destructor. |//+------------------------------------------------------------------+ void ~CMyTicks()
{
//_GlobalVariableDel("ResourceName");
}
//+------------------------------------------------------------------+ void CollectTicks()
{
MqlTick m_Ticks[];
CopyTicks(_Symbol,m_Ticks,COPY_TICKS_ALL,0,5); // Сформировали данные
m_Resource=m_Ticks; // Записали данные
}
};
//+------------------------------------------------------------------+
// Получение данных#property indicator_chart_window#property indicator_plots0#include <Test_Keep_Info_13.mqh>
CMyTicks Test;
#include <fxsaber\TradeTransactions\ResourceData.mqh> // https://www.mql5.com/ru/code/22166#include <GlobalVariables.mqh>
staticconst RESOURCEDATA<MqlTick>Resource(_GlobalVariableGet<string>("ResourceName")); // Создали ресурс на основе переданного в глобальной переменной полного имени MqlTick Ticks[];
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,constint prev_calculated,constint,constdouble &[])
{
if(prev_calculated==0)
{
Resource.Get(Ticks); // Считали данные из ресурса.ArrayPrint(Ticks); // Распечатали полученные данныеif(ArraySize(Ticks)<1)
{
Test.CollectTicks();
Print(" SAVE TICKS ");
}
Resource.Get(Ticks); // Считали данные из ресурса.ArrayPrint(Ticks); // Распечатали полученные данные
}
return(rates_total);
}
//+------------------------------------------------------------------+
Buon pomeriggio, per favore consigliatemi... Dopo l'aggiornamento all'ultima build, gli errori in "SmoothAlgorithms" hanno iniziato a volare fuori. E sma, lwma, parma, vidya media ha smesso di funzionare. Sta imprecando a questa linea: "array out of range in 'SmoothAlgorithms.mqh' (3394,9)". Come devo risolvere il problema? Grazie!
Scrivete all'autore sulla pagina di discussione della sua biblioteca:
C'è la necessità di usare valori numerici come elementi di enumerazione.
enum ENUM_HOURS { 0, 1, .., 23 };Questo non è permesso. Identificatore di errore di compilazione previsto. C'è un modo per aggirarlo (lasciando solo valori numerici)?
C'è la necessità di usare valori numerici come elementi di enumerazione.
Questo non è permesso. Identificatore di errore di compilazione previsto. C'è un modo per aggirarlo (lasciando solo valori numerici)?
Puoi darmi un link alla documentazione di cosa significano questi simboli <>?
C'è un modo per impostare programmaticamente una lista di parametri da ottimizzare?
Il fatto è che ho molti parametri. Migliaia. Li ho messi in un programma separato. EA che li carica durante l'inizializzazione attraverso un file esterno. Quindi il mio compito è quello di ottimizzare questi parametri ora.
Questo è per esempio un elenco di parametri ottimizzabili con valori e intervalli in un file. Leggi da lì e scrivi il risultato anche lì.
Sto scrivendo una funzione per chiudere i grafici senza EA o script. Ottengo il nome dell'Expert Advisor e dello script sul grafico usando la funzione ChartGetString. Se entrambi sono vuoti, li chiudo. Il problema è nella linea con la chiusura del grafico secondo la condizione. La condizione non è mai soddisfatta. Ecco il codice.
Ecco cosa mostra Print
Capisco che possiamo cambiare la condizione nel seguente modo
Beh, in che altro modo dovremmo confrontare la variabile stringa con una stringa vuota?
Buon pomeriggio, ho fatto .mqh per l'elaborazione e la memorizzazione dei dati nella risorsa. Tutto funziona, ma c'è una sfumatura, se compilo l'indicatore, il .mqh viene resettato e rifà il processo di peso per la memorizzazione. Obiettivo - finché ci sonodati nella risorsa non viene resettato. Dov'è l'errore, come risolverlo?
Come faccio a confrontare correttamente una stringa variabile con una stringa vuota?
Ci sono due normali stringhe vuote - "" e NULL. E ci possono essere anche stringhe vuote personalizzate.