Errori, bug, domande - pagina 973

 
voix_kas:

...

Cosa posso dire? Una Bitmap funziona (!) un ordine di grandezza più lento di 26 etichette regolari. Ho cercato di escludere da OnTick() l'operazione di copia del modello nella tela di lavoro (array uint 250*410), cioè l'operazione su una tela. Il guadagno si sente solo in tempo reale. Nel tester è lo stesso, con una degradazione assoluta della produttività. È stata usata la modalitàCOLOR_FORMAT_ARGB_NORMALIZE, poiché le altre danno un aspetto meno estetico. Andando avanti, dovrei dire che lavorare su una tela è difficile perché bisogna tenere traccia della sovrapposizione delle sovrapposizioni precedenti (aree chiare).

...

Avete oggetti come OBJ_BITMAP_LABEL visualizzati in modalità visualizzazione nel tester?
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
tol64:

Grazie, lo so. vdv2001 ha qualche problema:

//---

Voleva vedere come fa per scoprire che ha un bug.


Poi un'altra citazione dall'aiuto

SCORRIMENTO DEL MOUSE NEL GRAFICO

Scorri il grafico con il tasto sinistro del mouse in senso orizzontale. Lo scorrimento verticale è anche disponibile se una delle tre proprietà è impostata a true: CHART_SCALEFIX, CHART_SCALEFIX_11 o CHART_SCALE_PT_PER_BAR

bool

 
Ah, ho capito cos'è. ))
vdv2001:

Sì, l'oggetto è selezionato, ma non può essere spostato con il mouse (come nel terminale 4).

O ora spostando tutti gli oggetti creati da Expert Advisor devono essere gestiti da eventi.

In MT5, devo posizionare con precisione il cursore del mouse sul punto di ancoraggio di un oggetto selezionato. In MT4 è fatto automaticamente. Personalmente preferisco spostare gli oggetti senza selezione attraverso gli eventi. Sopra Rosh ha mostrato la proprietà per abilitare/disabilitare lo scorrimento del grafico, in modo che non interferisca con gli oggetti in movimento.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Свойства объектов - Документация по MQL5
 
tol64:
Ah, ho capito cos'è. )) In MT5, devo posizionare precisamente il mio cursore del mouse su un punto di ancoraggio, quando un oggetto è selezionato. In MT4 è automatico. Personalmente preferisco spostare gli oggetti senza selezione attraverso gli eventi. Sopra Rosh ha mostrato la proprietà per abilitare/disabilitare lo scorrimento del grafico, in modo che non interferisca con gli oggetti in movimento.

Aumentato il grafico al massimo, impostato il mouse sul punto di ancoraggio dell'oggetto selezionato "premuto" il pulsante sinistro del mouse al pavimento, applicato il massimo sforzo e ...

L'oggetto è rimasto al suo posto.

Ripetere questo processo non è difficile, creare un oggetto CChartObjectTrend, impostare le sue proprietà e provare a spostarlo. Non ci sono riuscito.

CHART_MOUSE_SCROLL Ho provato e il grafico smette di muoversi, ma l'oggetto non si è spostato.

P.S.

Anche se, se si gestisce il movimento di un oggetto attraverso gli eventi, è corretto (conosco la vecchia coordinata). Lo farò attraverso gli eventi. Grazie, la domanda è chiusa.

 
vdv2001:

Aumentato il grafico al massimo, impostato il mouse sul punto di ancoraggio dell'oggetto selezionato "premuto" il pulsante sinistro del mouse al pavimento, applicato il massimo sforzo e ...

L'oggetto è rimasto al suo posto.

Non è difficile ripetere questo processo, creare un oggetto CChartObjectTrend, impostare le sue proprietà e provare a spostarlo. Non ha funzionato per me.

...

È così che funziona, semmai:

void OnStart()
  {
   double low[];
   datetime time[];
   string name_object="Trend_Test";
//---
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(time,true);
//---
   CopyLow(_Symbol,_Period,0,50,low);
   CopyTime(_Symbol,_Period,0,50,time);
//---
   if(ObjectCreate(0,name_object,OBJ_TREND,0,time[0],low[0],time[49],low[49]))
      ObjectSetInteger(0,name_object,OBJPROP_SELECTABLE,true);
  }
 

Qualcuno è riuscito a ripetere l'impresa divoix_kas?

voix_kas:
...
Что могу сказать? Один Bitmap работает (!)на порядок медленнее, чем 26 обычных меток. Пробывал исключить из OnTick() операцию копирования шаблона в рабочую канву (массив uint 250*410), т.е. работа на одной канве. Выигрыш чувствуется только в реал-тайме. В тестере всё также - абсолютная просадка по производительности. Использовался режим COLOR_FORMAT_ARGB_NORMALIZE, т.к. остальные дают менее эстетический вид. Забегая вперед, надо сказать, что работать на одной канве сложно, так как придётся отслеживать наложение предыдущих надписей (очищать области).

...


Avete oggetti di tipo OBJ_BITMAP_LABEL visualizzati in modalità visualizzazione nel vostro tester?

//---

O è un errore di battitura? )))

 
Per il calcolo delle prestazioni della bitmap, si consiglia di guardare il codice. Forse ci sono operazioni di ridisegno extra.
 
tol64:

È così che funziona, semmai:

Giusto, ho capito perché non mi muovevo, ho impostato la proprietà dell'oggettoOBJPROP_TIMEFRAMES dopo la quale l'oggetto smette di muoversi.

Per esempio, per il grafico a minuti ho impostato la proprietà

obj.Timeframes(OBJ_PERIOD_M1);

e l'oggetto smette di muoversi, sembra essere un glitch.

Tutto inizia a funzionare normalmente dopo aver cambiato il periodo del grafico, come passare a M2 e poi a M1 e tutto è ok.

 

voix_kas:

Cosa posso dire? Una Bitmap funziona (!) un ordine di grandezza più lento di 26 etichette regolari. Ho cercato di escludere da OnTick() l'operazione di copia del modello nella tela di lavoro (array uint 250*410), cioè l'operazione su una tela. Il guadagno si sente solo in tempo reale. Nel tester è lo stesso, con una degradazione assoluta della produttività. È stata usata la modalitàCOLOR_FORMAT_ARGB_NORMALIZE, poiché le altre danno un aspetto meno estetico. Guardando avanti, dovrei dire che lavorare su una sola tela è difficile perché bisogna seguire la sovrapposizione delle iscrizioni precedenti (aree pulite).


1. Come si misura la velocità?

2. Puoi allegare la fonte (in un messaggio privato o in un CD)?

 
alexvd:


1. Come si misura la velocità?

2. Puoi allegare il codice sorgente (in un messaggio privato o in un CD)?

Purtroppo non ho salvato il codice per mancanza di interesse. Intermini generali:

OnInit():

1. Crea una Bitmap sul grafico.

2. Vengono create due tele(uint 250*410): un modello e una di lavoro. Sul modello sono applicate 13 etichette con il nome dei parametri statistici (TextOut).

OnTick():

1. Il modello viene copiato nell'area di lavoro.

2. Le 13 etichette con i valori corrispondenti dei parametri statistici sono applicate (TextOut) alla tela di lavoro.

3. Crea una risorsa.

4. la tela di lavoro viene aggiornata.

Non ho preso nessun tempo particolare, perché è ovvio che la velocità è diminuita di un ordine di grandezza. Che cosa nel tester, così come in tempo reale (quando lo scorrimento del grafico è abbastanza evidente si blocca / scatti).

Ho provato a rimuovere il punto 1. da OnTick(). In tempo reale, diventa tollerabile, ma il tester striscia a malapena. Di nuovo, questo non può essere fatto in tempo reale, dato che non è stata fatta alcuna pulizia nelle posizioni dei segni precedenti sulla tela di lavoro.

Di nuovo, ho usato la modalitàCOLOR_FORMAT_ARGB_NORMALIZE, perché le etichette(TextOut) sembrano antiestetichesenza canale alfa.