Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Anche se li rendete virtuali , non sarete in grado di fare il normale sovraccarico senza un accesso completo ai membri della classe CGraphics, quindi dovrebbero essere tutti (la maggior parte) dichiarati come protetti.
e queste funzioni ***Plot sono solo protette
e queste funzioni ***Plot sono altrettanto protette
{
private:
CArrayObj m_arr_curves;
CCanvas m_canvas;
//--- parameters background
int m_height;
int m_width;
//--- parameters work space
int m_left;
int m_right;
int m_up;
int m_down;
//--- default parameters work space
int m_left0;
int m_right0;
int m_up0;
int m_down0;
//--- size of dash on the axes
int m_mark_size;
//--- scaling parameters
double m_dx;
double m_dy;
Stavo parlando dei membri della classe CGraphic, ora sono tutti privati, e senza accesso a m_canvas, m_dx, m_dy e altri membri nella discendenza, l'overloading non funzionerà.
OK, allora tutto è nelle tue mani) Aspetterò.
Finora, l'ho cambiato temporaneamente a livello locale
In alcune funzioni (non ovunque) se c'è una divisione, è senza controllo di 0.
ad esempio
{
...
...
double x_size=(m_x.Max()-m_x.Min());
double xf_size=xf2-xf1;
//--- keep scaling parameters
m_dx=xf_size/x_size;
qui zero_devide si verifica se x.Max() == Min()
anche in Axis::CalcStepSize / CalcBoundedStepSize / SelectAxisScale ecc.
In alcune funzioni (non ovunque) se c'è una divisione, è senza controllo di 0.
per esempio
{
...
...
double x_size=(m_x.Max()-m_x.Min());
double xf_size=xf2-xf1;
//--- keep scaling parameters
m_dx=xf_size/x_size;
zero_devide si verifica se x.Max() == Min()
anche in Axis::CalcStepSize / CalcBoundedStepSize / SelectAxisScale ecc.
Grazie, lo correggerò.
Per non sovraccaricare la libreria con numerosi controlli, ho cercato di prendere in considerazione tutti i casi nel metodo Axis::SelectAxisScal.
1. questo sembra essere il file senza le modifiche di questa mattina su enum ENUM_AXIS_TYPE
---
2. testato ENUM_AXIS_TYPE dalla pagina precedente
dato che state facendo ValuesFunctionFormat in stile funzione callback, dovete restituire qualche parametro void* nella funzione.
in CAxis per aggiungere
void* m_cbdata; // <---
...
// изменить
void ValuesFunctionFormat(DoubleToStringFunction func, void* cbdata) { m_values_func=func; m_cbdata=cbdata; }
// добавить получение этого void*
void* ValuesFunctionFormatCBData(void) const { return m_c bdata; }
in CGraphic::CalculateXAxis
void* cbdata=m_x.ValuesFunctionFormatCBData(); // <---
...
case AXIS_TYPE_CUSTOM:
{
m_xvalues[i]=(xfunc==NULL) ? NULL : xfunc(x, cbdata); // <---
----
Questo parametro di callback è necessario per passare un puntatore a un oggetto che sappia dove si trova l'array arrX.
Poiché la funzione è essenzialmente statica, è impossibile sapere cosa l'ha chiamata esattamente.
ZS.
Ed ecco come appare già il risultato della visualizzazione delle serie temporali (chiederò di più sulle linee con le letture più tardi, c'è un inconveniente di ottenere le coordinate lì :)
E questo è ciò che il risultato della serie temporale appare già in linea di principio (chiederò di più sulle linee con le letture più tardi, c'è l'imbarazzo di ottenere le coordinate lì :)
Si prega di fare un video o un'animazione più lunga dal momento del grafico vuoto. Non lo capisco dalla GIF.
è meglio?
questo esperto lavora su Canvas + CGraphic di Roma
In questo caso sto costruendo un P/L da diversi strumenti su di essoquesto esperto lavora su Roman's Canvas + CGraphic
In questo caso, costruisco il P/L da diversi strumenti su di essoOra è più chiaro. Il crosshair (ed eventualmente altre interattività) è una funzionalità integrata (necessaria) della libreria di Roman, o l'hai ereditata?
Voglio vedere elementi di interattività nella grafica di SB - mirino, zoom (in entrambe le direzioni) ed evidenziazione dei valori del cursore.
Cioè faccio GraphPlot tramite EA/indicator, e ottengo subito tale funzionalità.
Ora per essere più chiari. Il crosshair (e possibilmente altra interattività) è una funzionalità integrata (necessaria) della bibbia di Roman, o l'hai ereditata?
Sì, l'ho ereditato.
Voglio vedere alcuni elementi di interattività nella grafica di SB - mirino, zoom (entrambi i lati) ed evidenziazione dei valori del cursore.
Faremo una chiacchierata con il principale. Anch'io ho bisogno di qualcosa.
- La retroilluminazione (se non è questa, almeno la funzione GetNearY/X) è necessaria. È meglio implementare comunque l'evidenziazione per eredità. È diverso in ognuna delle nostre rappresentazioni)
- non hanno ancora bisogno di crosshair, perché è il risultato di eventi del grafico che non hanno ancora nulla a che fare con la libreria.
- Ottenere i valori di scala - che sono determinati dalla coordinata del pixel - è un must.
- È difficile con Zoomo. Poiché non ci sono barre di scorrimento. E ad essere onesti, non vorrei che fossero implementati in questa classe. Al momento usa solo CCanvas e non chiede nessun altro oggetto. E questo è molto buono.
Ho intenzione di implementare lo zoom in modo indipendente per eredità, mettere le barre di scorrimento e ridimensionare come necessario.