cioè se il file è già aperto in MT4, il flag Shaare permetterà di aprirlo da MT5 senza problemi. Si scopre che MT4 funziona come al solito, mentre MT5 può consentire ad altri programmi di utilizzare un file già aperto da esso, o aprire un file che è aperto da qualcun altro senza la bandiera di shahre.
La sezione di aiuto nella descrizione del tipo di dati dice:
<br / translate="no">
Per questo motivo, è categoricamente sconsigliato confrontare due numeri reali tra loro per l'uguaglianza, poiché tale confronto non è corretto.
E viene suggerito un metodo di confronto speciale.
Se hai ancora bisogno di confrontare due numeri reali per l'uguaglianza, puoi...
Ma poi segue una conclusione logica che non è raccomandabile confrontare i numeri reali anche per mezzo di operazioni maggiore/peggiore perché tale operazione, nel senso di quanto detto sopra, è corretta solo quando un metodo speciale stabilisce prima correttamente che i valori controllati non sono uguali in termini di zero macchina.
Cioè si scopre che anche gli operatori > e < per i numeri reali non possono essere usati in forma pura. Ho capito bene, e se sì, perché non aggiungo un commento corrispondente all'aiuto?
Ma, se l'operatore, per esempio, >, può essere usato solo dopo un controllo corretto della disuguaglianza, allora come possiamo organizzare il controllo di >=? È necessario complicare ancora di più l'algoritmo, cioè controllare l'uguaglianza prima con una funzione speciale, e poi con una funzione speciale per la disuguaglianza (prima di usare >)?
Forse qualcuno ha già sviluppato una libreria per tutti i casi di confronto per i tipi doppio e float? Ho abbozzato qualcosa per il tipo doppio - non so se è corretto:
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++// Функция проверки на равенство двух вещественных чисел типа doublebool EqualDoubles(constdouble d1, constdouble d2)
{
constdouble epsilon=2.2204460492503131 e-016;//DBL_EPSILONif(d1-d2>epsilon) returnfalse;
if(d1-d2<-epsilon) returnfalse;
returntrue;
}
// Конец функции проверки на равенство двух вещественных чисел типа double//+++++++++++++++++++++++++++++++++++++++++++++++++// Функция проверки на неравенство двух вещественных чисел типа doublebool NotEqualDoubles(constdouble d1, constdouble d2)
{
return !EqualDoubles(d1, d2);
}
// Конец функции проверки на неравенство двух вещественных чисел типа double//+++++++++++++++++++++++++++++++++++++++++++++++++// Функция проверки на меньшинство первого из двух вещественных чисел типа doublebool LessDoubles(constdouble d1, constdouble d2)
{
if (NotEqualDoubles(d1, d2)&&(d1<d2))
{
returntrue;
}
returnfalse;
}
// Конец функции проверки на меньшинство первого из двух вещественных чисел типа double//+++++++++++++++++++++++++++++++++++++++++++++++++// Функция проверки на большинство первого из двух вещественных чисел типа doublebool GreaterDoubles(constdouble d1, constdouble d2)
{
if (NotEqualDoubles(d1, d2)&&(d1>d2))
{
returntrue;
}
returnfalse;
}
// Конец функции проверки на большинство первого из двух вещественных чисел типа double//+++++++++++++++++++++++++++++++++++++++++++++++++// Функция проверки на меньшинство первого или равенство двух вещественных чисел типа doublebool LessEqualDoubles(constdouble d1, constdouble d2)
{
if (LessDoubles(d1, d2)||EqualDoubles(d1, d2))
{
returntrue;
}
returnfalse;
}
// Конец функции проверки на меньшинство первого или равенство двух вещественных чисел типа double//+++++++++++++++++++++++++++++++++++++++++++++++++// Функция проверки на большинство первого или равенство двух вещественных чисел типа doublebool GreaterEqualDoubles(constdouble d1, constdouble d2)
{
if (GreaterDoubles(d1, d2)||EqualDoubles(d1,d2))
{
returntrue;
}
returnfalse;
}
// Конец функции проверки на большинство первого или равенство двух вещественных чисел типа double
P.S. Se prevcalculated==0 funziona di nuovo come al solito. Insetto galleggiante?
Per questo, per quanto ho capito, ho bisogno di aggiungere un puntatore a questo oggetto indicatore in "collection of indicators(timeseries?)" come si fa nell'esempio:
indicators.Add(GetPointer(m_MA)))
dove m_MA è un oggetto della classe CiMA.
Le funzioni iCustom e IndicatorCreate restituiscono il valore intero di un handle dell'indicatore creato, ma io ho bisogno di un oggetto di questo indicatore, come lo capisco.
Per favore, consigliate come uscire da questa situazione?
Я не буду перечислять все новые возможности и особенности нового терминала и языка. Их действительно много, и некоторые новинки вполне достойны освещения в отдельной статье. Вы не увидите здесь кода, написанного по принципам объектно-ориентированного программирования — это слишком серьезная тема для того, чтобы просто быть упомянутой в контексте как дополнительная вкусность для кодописателей. В этой статье остановимся подробней на индикаторах, их строении, отображении, видах, а также особенностях их написания по сравнению с MQL4.
Per questo, per quanto ho capito, ho bisogno di aggiungere un puntatore a questo oggetto indicatore in "collection of indicators(timeseries?)" come si fa nell'esempio:
dove m_MA è un oggetto della classe CiMA.
Le funzioni iCustom e IndicatorCreate restituiscono il valore intero di un handle dell'indicatore creato, ma io ho bisogno di un oggetto di questo indicatore, come lo capisco.
Per favore, consigliate come uscire da questa situazione?
Per quanto ho capito, dovrei scrivere il mio oggetto indicatore basato su CiCustom (simile a come è scritto CiMA).
Non posso consigliare nei dettagli, perché non ho lavorato con induks, ma penso che capirete o la gente vi dirà la giusta realizzazione.
PS
A proposito, sviluppatori, aggiungete esempi alla sezione CiCustom...
E viene suggerito un metodo di confronto speciale.
Ma poi segue logicamente che non è raccomandabile confrontare i numeri reali anche per mezzo di operazioni di maggiore/peggiore, perché una tale operazione, nel senso di cui sopra, è corretta solo se prima si stabilisce correttamente, con un metodo speciale, che i valori da controllare non sono uguali nel senso della macchina zero.
Forse non ho capito bene il punto, ma se si confrontano due numeri reali, diciamo, con l'aiuto dell'operazione "<" e i numeri reali controllati sono "uguali nel senso della macchina zero", l'operazione "<" restituirà semplicemente falso. Che significa "il primo numero reale non è inferiore al secondo numero reale".
Per questo, per quanto ho capito, ho bisogno di aggiungere un puntatore a questo oggetto indicatore in "collection of indicators(timeseries?)" come si fa nell'esempio:
dove m_MA è un oggetto della classe CiMA.
Le funzioni iCustom e IndicatorCreate restituiscono il valore intero di un handle dell'indicatore creato, ma io ho bisogno di un oggetto di questo indicatore, come lo capisco.
Potreste consigliarmi come uscire da questa situazione?
Per ora, prendete questo file come esempio.
La classe CSignalCustomMACD è assolutamente identica a CSignalMACD, eccetto per il fatto che è basata sulla versione "personalizzata" dell'indicatore dalla consegna standard.
Non dimenticate di aggiungere una linea nel codice sorgente dell'Expert Advisor:
#property tester_indicator "Examples\MACD.ex5"
altrimenti non funzionerà nel tester.
Se non c'è un file MACD.ex5 nella cartella Indicators\Examples, l'indicatore deve essere compilato.
Un esempio nell'aiuto sarà aggiunto nel prossimo futuro.
Yedelkin: Forse non capisco bene il problema, ma se due numeri reali vengono confrontati usando, per esempio, l'operazione "<", e i numeri reali controllati sono "uguali nel senso della macchina zero", allora l'operazione "<" restituirà semplicemente falso, e basta. Che significherebbe "il primo numero reale non è inferiore al secondo numero reale".
Questo sarebbe logico, ma ora l'operazione ">" ("<" non ha controllato) può restituire vero per tali numeri "uguali nel senso della macchina zero". L'effetto è stato rilevato perché il risultato del calcolo numerico era più grande di quello teoricamente possibile a causa di questo effetto, ma dopo aver usato le funzioni speciali di cui sopra è diventato vero. Ecco perché propongo un'aggiunta all'aiuto.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
No.
è per questo che l'accesso simultaneo non può essere organizzato:((((.
È possibile, il file aperto in MT5 con il flag di condivisione sarà anche disponibile per qualsiasi altro programma, compreso MT4.
Guarda come si fa qui.
cioè se il file è già aperto in MT4, il flag Shaare permetterà di aprirlo da MT5 senza problemi. Si scopre che MT4 funziona come al solito, mentre MT5 può consentire ad altri programmi di utilizzare un file già aperto da esso, o aprire un file che è aperto da qualcun altro senza la bandiera di shahre.
È possibile, il file aperto in MT5 con il flag di condivisione sarà anche disponibile per qualsiasi altro programma, compreso MT4.
Guarda come si fa qui.
Grazie, ora darò un'occhiata...
Per questo motivo, è categoricamente sconsigliato confrontare due numeri reali tra loro per l'uguaglianza, poiché tale confronto non è corretto.
E viene suggerito un metodo di confronto speciale.
Se hai ancora bisogno di confrontare due numeri reali per l'uguaglianza, puoi...
Ma poi segue una conclusione logica che non è raccomandabile confrontare i numeri reali anche per mezzo di operazioni maggiore/peggiore perché tale operazione, nel senso di quanto detto sopra, è corretta solo quando un metodo speciale stabilisce prima correttamente che i valori controllati non sono uguali in termini di zero macchina.
Cioè si scopre che anche gli operatori > e < per i numeri reali non possono essere usati in forma pura. Ho capito bene, e se sì, perché non aggiungo un commento corrispondente all'aiuto?
Ma, se l'operatore, per esempio, >, può essere usato solo dopo un controllo corretto della disuguaglianza, allora come possiamo organizzare il controllo di >=? È necessario complicare ancora di più l'algoritmo, cioè controllare l'uguaglianza prima con una funzione speciale, e poi con una funzione speciale per la disuguaglianza (prima di usare >)?
Forse qualcuno ha già sviluppato una libreria per tutti i casi di confronto per i tipi doppio e float? Ho abbozzato qualcosa per il tipo doppio - non so se è corretto:
P.S. Se prevcalculated==0 funziona di nuovo come al solito. Insetto galleggiante?
Buon pomeriggio!
Ho bisogno di usare un indicatore personalizzato nel modulo dei segnali di trading.
Per questo, per quanto ho capito, ho bisogno di aggiungere un puntatore a questo oggetto indicatore in "collection of indicators(timeseries?)" come si fa nell'esempio:
indicators.Add(GetPointer(m_MA)))dove m_MA è un oggetto della classe CiMA.
Le funzioni iCustom e IndicatorCreate restituiscono il valore intero di un handle dell'indicatore creato, ma io ho bisogno di un oggetto di questo indicatore, come lo capisco.
Per favore, consigliate come uscire da questa situazione?
Buon pomeriggio!
Ho bisogno di usare un indicatore personalizzato nel modulo dei segnali di trading.
Per questo, per quanto ho capito, ho bisogno di aggiungere un puntatore a questo oggetto indicatore in "collection of indicators(timeseries?)" come si fa nell'esempio:
dove m_MA è un oggetto della classe CiMA.
Le funzioni iCustom e IndicatorCreate restituiscono il valore intero di un handle dell'indicatore creato, ma io ho bisogno di un oggetto di questo indicatore, come lo capisco.
Per favore, consigliate come uscire da questa situazione?
Per quanto ho capito, dovrei scrivere il mio oggetto indicatore basato su CiCustom (simile a come è scritto CiMA).
Non posso consigliare nei dettagli, perché non ho lavorato con induks, ma penso che capirete o la gente vi dirà la giusta realizzazione.
PS
A proposito, sviluppatori, aggiungete esempi alla sezione CiCustom...
E viene suggerito un metodo di confronto speciale.
Ma poi segue logicamente che non è raccomandabile confrontare i numeri reali anche per mezzo di operazioni di maggiore/peggiore, perché una tale operazione, nel senso di cui sopra, è corretta solo se prima si stabilisce correttamente, con un metodo speciale, che i valori da controllare non sono uguali nel senso della macchina zero.
Buon pomeriggio!
Ho bisogno di usare un indicatore personalizzato nel modulo dei segnali di trading.
Per questo, per quanto ho capito, ho bisogno di aggiungere un puntatore a questo oggetto indicatore in "collection of indicators(timeseries?)" come si fa nell'esempio:
dove m_MA è un oggetto della classe CiMA.
Le funzioni iCustom e IndicatorCreate restituiscono il valore intero di un handle dell'indicatore creato, ma io ho bisogno di un oggetto di questo indicatore, come lo capisco.
Potreste consigliarmi come uscire da questa situazione?
Per ora, prendete questo file come esempio.
La classe CSignalCustomMACD è assolutamente identica a CSignalMACD, eccetto per il fatto che è basata sulla versione "personalizzata" dell'indicatore dalla consegna standard.
Non dimenticate di aggiungere una linea nel codice sorgente dell'Expert Advisor:
#property tester_indicator "Examples\MACD.ex5"altrimenti non funzionerà nel tester.
Se non c'è un file MACD.ex5 nella cartella Indicators\Examples, l'indicatore deve essere compilato.
Un esempio nell'aiuto sarà aggiunto nel prossimo futuro.
Forse non capisco bene il problema, ma se due numeri reali vengono confrontati usando, per esempio, l'operazione "<", e i numeri reali controllati sono "uguali nel senso della macchina zero", allora l'operazione "<" restituirà semplicemente falso, e basta. Che significherebbe "il primo numero reale non è inferiore al secondo numero reale".