Tramite un timer viene aggiornato ogni secondo, il problema stà nel fatto che crea un fastidioso sfarfallio, è possibile in qualche maniera eliminarlo ?
- Codice: Seleziona tutto
Public Sub GRAFICO_SMILE()
Dim GRAFPOSCALAX(), LINEA_ZERO(), SMILECALL(), PUNTOSMILECALLBS(), PUNTOSMILECALL(), SMILEPUT(), PUNTOSMILEPUTBS(), PUNTOSMILEPUT()
ReDim GRAFPOSCALAX(MSFlexGrid1.Rows), LINEA_ZERO(MSFlexGrid1.Rows)
ReDim SMILECALL(MSFlexGrid1.Rows), PUNTOSMILECALLBS(MSFlexGrid1.Rows), PUNTOSMILECALL(MSFlexGrid1.Rows)
ReDim SMILEPUT(MSFlexGrid1.Rows), PUNTOSMILEPUTBS(MSFlexGrid1.Rows), PUNTOSMILEPUT(MSFlexGrid1.Rows)
'CARICA MATRICI DATI E LINEA DELLO ZERO
For I = 1 To MSFlexGrid1.Rows - 1
GRAFPOSCALAX(I) = CStr(MSFlexGrid1.TextMatrix(I, 13)) 'ASSE X
LINEA_ZERO(I) = 0 'LINEA DELLO ZERO
If MSFlexGrid1.TextMatrix(I, 1) <> "" Then
SMILECALL(I) = Val(Replace(Replace(MSFlexGrid1.TextMatrix(I, 8), " %", ""), ",", ".")) / 100 'LINEA VOLA CALL
If MSFlexGrid1.TextMatrix(I, 5) = "BS" Then
PUNTOSMILECALLBS(I) = SMILECALL(I) 'MARCATORE PUNTO SMILE BS CALL
PUNTOSMILECALL(I) = 1.23456789123457E+17
Else
PUNTOSMILECALL(I) = SMILECALL(I) 'MARCATORE PUNTO SMILE CALL
PUNTOSMILECALLBS(I) = 1.23456789123457E+17
End If
End If
If MSFlexGrid1.TextMatrix(I, 15) <> "" Then
SMILEPUT(I) = Val(Replace(Replace(MSFlexGrid1.TextMatrix(I, 21), " %", ""), ",", ".")) / 100 'LINEA VOLA PUT
If MSFlexGrid1.TextMatrix(I, 18) = "BS" Then
PUNTOSMILEPUTBS(I) = SMILEPUT(I) 'MARCATORE PUNTO SMILE BS PUT
PUNTOSMILEPUT(I) = 1.23456789123457E+17
Else
PUNTOSMILEPUT(I) = SMILEPUT(I) 'MARCATORE PUNTO SMILE PUT
PUNTOSMILEPUTBS(I) = 1.23456789123457E+17
End If
End If
Next I
'AZZERA GRAFICO
ChartSpace1.Clear 'CANCELLA CONTENUTO DEL GRAFICO
ChartSpace1.Refresh
'CREA GRAFICO
Set ChartObj = ChartSpace1 'INIZIALIZZA GRAFICO
Set ChartConsts = ChartObj.Constants
Set NewChart = ChartObj.Charts.Add
'TIPO DI GRAFICO
NewChart.Type = 6
'CREAZIONE DELLE SERIE
Set Serie = NewChart.SeriesCollection.Add 'ASSE X
Set Serie1 = NewChart.SeriesCollection.Add 'LINEA DELLO ZERO
Set Serie2 = NewChart.SeriesCollection.Add 'MARCATORE PUNTO SMILE BS CALL
Set Serie3 = NewChart.SeriesCollection.Add 'MARCATORE PUNTO SMILE CALL
Set Serie4 = NewChart.SeriesCollection.Add 'LINEA SMILE CALL
Set Serie5 = NewChart.SeriesCollection.Add 'MARCATORE PUNTO SMILE BS PUT
Set Serie6 = NewChart.SeriesCollection.Add 'MARCATORE PUNTO SMILE PUT
Set Serie7 = NewChart.SeriesCollection.Add 'LINEA SMILE PUT
'CARICA DATI NEL GRAFICO
Serie.SetData ChartConsts.chDimCategories, ChartConsts.chDataLiteral, GRAFPOSCALAX 'CARICA ASSE X
Serie2.SetData ChartConsts.chDimValues, ChartConsts.chDataLiteral, PUNTOSMILECALLBS 'MARCATORE PUNTO SMILE BS CALL
Serie3.SetData ChartConsts.chDimValues, ChartConsts.chDataLiteral, PUNTOSMILECALL 'MARCATORE PUNTO SMILE CALL
Serie5.SetData ChartConsts.chDimValues, ChartConsts.chDataLiteral, PUNTOSMILEPUTBS 'MARCATORE PUNTO SMILE BS PUT
Serie6.SetData ChartConsts.chDimValues, ChartConsts.chDataLiteral, PUNTOSMILEPUT 'MARCATORE PUNTO SMILE PUT
Serie1.SetData ChartConsts.chDimValues, ChartConsts.chDataLiteral, LINEA_ZERO 'LINEA DELLO ZERO
Serie4.SetData ChartConsts.chDimValues, ChartConsts.chDataLiteral, SMILECALL 'LINEA SMILE CALL
Serie7.SetData ChartConsts.chDimValues, ChartConsts.chDataLiteral, SMILEPUT 'LINEA SMILE PUT
'COLORE SFONDO
NewChart.PlotArea.Interior.Color = COL_GRAFICO_SFONDO 'COLORA SFONDO INTERNO
NewChart.Border.Color = COL_GRAFICO_BORDO 'COLORA BORDO
NewChart.Interior.Color = COL_GRAFICO_SFONDO 'QUESTA RIGA MESSA DOPO BORDER.COLOR, COLORA INTERNO DEL BORDO
NewChart.Border.Weight = 1 'SPESSORE BORDO
'SPESSORE LINEA
NewChart.SeriesCollection(2).Line.Weight = 0 'MARCATORE PUNTO SMILE BS CALL
NewChart.SeriesCollection(3).Line.Weight = 0 'MARCATORE PUNTO SMILE CALL
NewChart.SeriesCollection(5).Line.Weight = 0 'MARCATORE PUNTO SMILE BS PUT
NewChart.SeriesCollection(6).Line.Weight = 0 'MARCATORE PUNTO SMILE PUT
NewChart.SeriesCollection(1).Line.Weight = 1 'LINEA DELLO ZERO
'COLORE LINEE
NewChart.SeriesCollection(2).Line.Color = vbYellow 'MARCATORE PUNTO SMILE BS CALL
NewChart.SeriesCollection(3).Line.Color = vbWhite 'MARCATORE PUNTO SMILE CALL
NewChart.SeriesCollection(5).Line.Color = vbYellow 'MARCATORE PUNTO SMILE BS PUT
NewChart.SeriesCollection(6).Line.Color = vbWhite 'MARCATORE PUNTO SMILE PUT
NewChart.SeriesCollection(1).Line.Color = vbBlue 'LINEA DELLO ZERO
NewChart.SeriesCollection(4).Line.Color = vbGreen 'LINEA SMILE CALL
NewChart.SeriesCollection(7).Line.Color = vbRed 'LINEA SMILE PUT
'MARCATORE CALL
NewChart.SeriesCollection(2).Marker.Style = 8 'MARCATORE PUNTO SMILE BS CALL
NewChart.SeriesCollection(2).Marker.Size = 11 'MARCATORE PUNTO SMILE BS CALL
NewChart.SeriesCollection(2).Interior.Color = vbYellow 'MARCATORE PUNTO SMILE BS CALL
NewChart.SeriesCollection(3).Marker.Style = 8 'MARCATORE PUNTO SMILE CALL
NewChart.SeriesCollection(3).Marker.Size = 11 'MARCATORE PUNTO SMILE CALL
NewChart.SeriesCollection(3).Interior.Color = vbWhite 'MARCATORE PUNTO SMILE CALL
'MARCATORE PUT
NewChart.SeriesCollection(5).Marker.Style = 8 'MARCATORE PUNTO SMILE BS PUT
NewChart.SeriesCollection(5).Marker.Size = 11 'MARCATORE PUNTO SMILE BS PUT
NewChart.SeriesCollection(5).Interior.Color = vbYellow 'MARCATORE PUNTO SMILE BS PUT
NewChart.SeriesCollection(6).Marker.Style = 8 'MARCATORE PUNTO SMILE PUT
NewChart.SeriesCollection(6).Marker.Size = 11 'MARCATORE PUNTO SMILE PUT
NewChart.SeriesCollection(6).Interior.Color = vbWhite 'MARCATORE PUNTO SMILE PUT
'ASSE Y
Set OAxis1 = NewChart.Axes(ChartConsts.chAxisPositionLeft) 'SCALA Y
OAxis1.Scaling.Maximum = 1.5
OAxis1.Scaling.Minimum = 0
OAxis1.MajorUnit = 0.1 'UNITA' DIVISIONE
OAxis1.NumberFormat = "0.0 %"
OAxis1.Font.Name = "arial" 'TIPO DI STILE E COLORE ASSE Y
OAxis1.Font.Bold = False
OAxis1.Font.Size = 7
OAxis1.Font.Color = COL_GRAFICO_TESTO
OAxis1.HasMajorGridlines = True 'VISUALIZZA GRIGLIA ASSE Y
OAxis1.MajorGridlines.Line.Color = COL_GRAFICO_GRIGLIA 'COLORA LINEE
OAxis1.MajorGridlines.Line.Weight = 1 'SPESSORE
'ASSE X
Set oAxis2 = NewChart.Axes(ChartConsts.chAxisPositionBottom) 'SCALA X
oAxis2.MajorUnit = 4
oAxis2.TickLabelSpacing = 4
oAxis2.HasMajorGridlines = True
oAxis2.MajorGridlines.Line.Color = RGB(86, 89, 89) 'COLORA LINEE
oAxis2.Font.Name = "arial" 'TIPO STILE COLORE CARATTERE ASSE X
oAxis2.Font.Bold = False
oAxis2.Font.Size = 7
oAxis2.Font.Color = &HE0E0E0
End Sub