L'errore appariva quando si calcolava con sicurezza il resto della divisione nel metodo CAxis::Mod.
C'era un metodo numerico implementato lì, senza usare la funzione MathMod, ma il tuo esempio ha mostrato che la precisione di questo metodo non è la migliore in alcuni casi.
Quindi ho dovuto cambiare questo metodo in:
//+------------------------------------------------------------------+//| Calculate the modulus (remainder) in a safe manner so that divide|//| by zero errors are avoided |//+------------------------------------------------------------------+double CAxis::Mod(constdouble x,constdouble y)
{
//--- check if(y==0)
return(0);
//--- calculate modulusreturn (x>0)? MathMod(x,y): MathMod(x,y)+y;
}
poi quando si cambia un parametro esterno, il grafico scompare periodicamente. Non alla prima volta. Puoi cambiare il parametro 3-5 volte e si perde a caso, e non per sempre. Si può trovare attraverso il cambio di timeframes o il trading automatico (abilitato o disabilitato).
Se si crea un grafico in Expert Advisor, per esempio:
poi quando il parametro esterno viene cambiato, il grafico scompare periodicamente. Non dalla prima volta. È possibile cambiare il parametro 3-5 volte e poi si perde casualmente da qualche parte, e non per sempre. Si può trovare cambiando i timeframe o il trading automatico (abilitato - non abilitato).
Come posso evitare che alcune righe siano scritte nella leggenda? Ho solo una linea che sono punti sulla coordinata Y e ho bisogno di fare questi punti in colori diversi, quindi è una linea di colore diverso e mostra le stesse informazioni, anche se è fatta con linee diverse, e ho solo bisogno di mettere informazioni riassuntive su questa linea nella legenda, ci sono molte linee di colore diverso. Come posso fare?
E un'altra domanda, perché specifico un colore "Rosso", ma viene visualizzato sul grafico come blu, mentre il Verde viene visualizzato correttamente?
if(TypeInfo=="TP_FP")
{
graphicP.HistoryNameSize(Point_K);//Устанавливает размер шрифта имени кривой
graphicP.HistorySymbolSize(Point_K);//Получить/установить размер символов условных обозначений
CCurve *A=graphicP.CurveAdd(X,Y,Green,CURVE_POINTS,N_Model+"("+N+")");//Создает и добавляет кривую на график
A.PointsFill(true);//Устанавливает флаг, указывающий, нужно ли выполнять заливку для точек, определяющих кривую при отрисовке точками.
A.PointsType(POINT_VERTICAL_DASH);//Устанавливает флаг, указывающий на тип точек, использующихся при отрисовке кривой точками.
}
if(TypeInfo=="FN")
{
//graphicP.HistoryNameSize(1);//Устанавливает размер шрифта имени кривой//graphicP.HistorySymbolSize(1);//Получить/установить размер символов условных обозначений
CCurve *A=graphicP.CurveAdd(X,Y,Red,CURVE_POINTS,"");//Создает и добавляет кривую на график
A.PointsFill(false);//Устанавливает флаг, указывающий, нужно ли выполнять заливку для точек, определяющих кривую при отрисовке точками.
A.PointsType(POINT_VERTICAL_DASH);//Устанавливает флаг, указывающий на тип точек, использующихся при отрисовке кривой точками.
}
Anatoly, grazie mille! Mi ha aiutato nel punto 1. Sì, ho perso il metodo dell'asseCAxis::MaxGrace(const double value).
Ecco un altro breve esempio:
Applicazione #1827124.
Applicazione #1827124.
Il problema è stato risolto come segue:
Squadra disupporto2018.01.15 14:30
L'errore appariva quando si calcolava con sicurezza il resto della divisione nel metodo CAxis::Mod.
C'era un metodo numerico implementato lì, senza usare la funzione MathMod, ma il tuo esempio ha mostrato che la precisione di questo metodo non è la migliore in alcuni casi.
Quindi ho dovuto cambiare questo metodo in:
//---
Il risultato con gli stessi parametri:
Inizializzazione nell'esperto CGraphic.
Se si crea un grafico in Expert Advisor, per esempio
poi quando si cambia un parametro esterno, il grafico scompare periodicamente. Non alla prima volta. Puoi cambiare il parametro 3-5 volte e si perde a caso, e non per sempre. Si può trovare attraverso il cambio di timeframes o il trading automatico (abilitato o disabilitato).
Possiamo fare in modo che non si perda?
Inizializzazione nell'esperto CGraphic.
Se si crea un grafico in Expert Advisor, per esempio:
poi quando il parametro esterno viene cambiato, il grafico scompare periodicamente. Non dalla prima volta. È possibile cambiare il parametro 3-5 volte e poi si perde casualmente da qualche parte, e non per sempre. Si può trovare cambiando i timeframe o il trading automatico (abilitato - non abilitato).
Puoi fare in modo che non si perda?
Si crea e si distrugge l'oggetto a livello locale nella funzione OnInit.
Crearne uno a livello globale.Il problema è stato risolto reinstallando MT.
Non riesco ad abituarmi al fatto che possa non esserci un errore quando si verifica un errore.
Puoi dirmi come cambiare la larghezza della legenda, o rimuovere del tutto lo spazio ad essa assegnato?
E un'altra domanda, perché specifico un colore "Rosso", ma viene visualizzato sul grafico come blu, mentre il Verde viene visualizzato correttamente?
E un'altra domanda, perché specifico un colore "Rosso", ma viene visualizzato sul grafico in blu, mentre il Verde viene visualizzato correttamente?
Ho capito, il colore deve essere impostato come segue