Domande da un "manichino" - pagina 29

 
Renat:
Visualisotor, come tutta la piattaforma, è stato in release per molto tempo. Non confondere il processo continuo di rilascio di nuove versioni con lo stato di beta.

Il nostro modo di lavorare è il miglioramento costante con costruzioni frequenti.
Renat, non ho intenzione di discutere, ma se parliamo di visualizzazione - Sì, c'è un rilascio, ma in realtà nemmeno tutte le cose di base funzionano (o funzionano in un modo molto strano), dobbiamo sognare cose più complesse.
 
Interesting:

È logico supporre che venga restituito 0 invece del numero di pixel :)

Mette un controllo sul risultato di questa stringa e gestisce la divisione per 0.

E per quanto riguarda il ritorno di 0 invece di pixel, è diretto alla SD...

Finora ho impostato il controllo con un valore fisso in caso di errore:

   if(width == 0) {  dbl_width = 1000;  } else {  dbl_width = width;  }

Ho fatto in modo che le funzioni relative all'aspetto del grafico funzionino nel tester. Ma ho trovato un altro "bug". Le immagini .bmp sul grafico in modalità di visualizzazione sono visualizzate come niente:

Qualcuno ha incontrato un tale problema?

 
tol64:

Finora ho impostato un test a valore fisso in caso di errore:

Ho fatto in modo che le funzioni relative all'aspetto del grafico funzionino nel tester. Ma ho scoperto un altro "bug? Le immagini .bmp sul grafico in modalità di visualizzazione sono visualizzate come niente:

Qualcuno ha incontrato questo problema?

Pensatelo non come un "bug" ma come un "trucco", secondo il quale tutto sarà così nella versione 500/600/1000...

Anche se bisogna credere come e da dove la grafica si appende al grafico, e i telepati dicono resto al giorno d'oggi. :)

 
Interesting:

Pensatelo non come un 'bug', ma come una 'mossa astuta', secondo la quale tutto sarà così nella versione 500/600/1000...

Anche se devo credere come e da dove il grafico si appende alla carta, e i telepati dicono di avere un riposo al giorno d'oggi. :)

Nella modalità in tempo reale, tutto funziona. E in modalità di visualizzazione, tali spazi vuoti vengono visualizzati.

Questo è il modo in cui specifico da dove provengono i file:

#resource "\\Images\\IP_MQ5_TI.bmp"
#resource "\\Images\\IP_MQ5_MM.bmp"
#resource "\\Images\\IP_MQ5_TS.bmp"

#resource "\\Images\\IP_MQ5_TI_Hide.bmp"
#resource "\\Images\\IP_MQ5_MM_Hide.bmp"
#resource "\\Images\\IP_MQ5_TS_Hide.bmp"

Ecco come li assegno alle variabili globali:

string TI_bmp_nm  = "TI";
string TI_bmp_pth = "::Images\\IP_MQ5_TI.bmp";
string MM_bmp_nm  = "MM";
string MM_bmp_pth = "::Images\\IP_MQ5_MM.bmp";
string TS_bmp_nm  = "TS";
string TS_bmp_pth = "::Images\\IP_MQ5_TS.bmp";

string hd_TI_bmp_nm  = "TI_hide";
string hd_TI_bmp_pth = "::Images\\IP_MQ5_TI_Hide.bmp";
string hd_MM_bmp_nm  = "MM_hide";
string hd_MM_bmp_pth = "::Images\\IP_MQ5_MM_Hide.bmp";
string hd_TS_bmp_nm  = "TS_hide";
string hd_TS_bmp_pth = "::Images\\IP_MQ5_TS_Hide.bmp";

Ecco come ho implementato la funzione di creazione dell'oggetto:

void Create_BMP_Label(long   chart_id,  // id графика
                      string bmp_nm,    // имя объекта
                      string bmp_path,  // путь к обекту
                      long   anchor,    // точка привязки
                      long   corner,    // угол привязки
                      int    x_dist,    // координата по шкале X
                      int    y_dist)    // координата по шкале Y
  {
   ObjectCreate(chart_id,bmp_nm,OBJ_BITMAP_LABEL,0,0,0);          // создание объекта
   ObjectSetString(chart_id,bmp_nm,OBJPROP_BMPFILE,0,bmp_path);   // BMP файл
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_ANCHOR,anchor);       // установка точки привязки
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_CORNER,corner);       // установка угола привязки
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_XDISTANCE,x_dist);    // установка координаты X
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_YDISTANCE,y_dist);    // установка координаты Y
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_SELECTABLE,false);    // нельзя выделить объект, если FALSE
   ObjectSetString(chart_id,bmp_nm,OBJPROP_TOOLTIP,"\n");         // нет всплывающей подсказки, если "\n"
  }

In OnInit(), la funzione viene chiamata anche in OnTick(), sempre che l'oggetto non venga trovato.

In OnTick() ora ho messo il controllo degli errori e il tester mi ha mostrato l'errore:

E questo significa che l'ordine non è stato trovato - ERR_TRADE_ORDER_NOT_FOUND. Non ho ancora usato le funzioni commerciali nell'Expert Advisor e non ci possono essere ordini)))

Gli oggetti di tipo OBJ_LABEL vengono visualizzati correttamente. Il "bug" si riferisce solo alle immagini .bmp nella modalità di visualizzazione nel tester.

In tempo reale, tutto va bene:

E nella modalità di visualizzazione è così:

Per me è importante sapere da che parte sta l'insetto. Perché se è dalla parte della piattaforma di trading, lascerò questo problema a trattare con altri temporaneamente.

 

tol64:

Gli oggetti di tipo OBJ_LABEL vengono visualizzati correttamente. "Bug" si applica solo alle immagini .bmp in modalità di visualizzazione nel tester.

In tempo reale tutto è a posto:

Alcuni oggetti non vengono visualizzati nella modalità di visualizzazione, o vengono visualizzati in modo errato.

Questo vale anche per le immagini, apparentemente gli sviluppatori non hanno fatto il giro di questa funzionalità (hanno altri problemi, e non solo con il tester).

A proposito, il modello con il nome di esperto "cerca di ripetere" tutto ciò che è disponibile in modalità reale, questo può essere usato per identificare quegli oggetti che non sono ancora visualizzati in modalità di visualizzazione.

 
tol64:

In modalità tempo reale, tutto funziona. Ma in modalità di visualizzazione, tali spazi vuoti vengono visualizzati.

Non è chiaro perché funzioni.

void Create_BMP_Label(long   chart_id,  // id графика 0 если текущий
                      string bmp_nm,    // имя объекта
                      string bmp_path,  // путь к обекту
                      long   anchor,    // точка привязки          от
                      long   corner,    // угол привязки
                      int    x_dist,    // координата по шкале X
                      int    y_dist)    // координата по шкале Y   до - значение не присвоено
  {
   ObjectCreate(chart_id,bmp_nm,OBJ_BITMAP_LABEL,0,0,0);          // создание объекта
   ObjectSetString(chart_id,bmp_nm,OBJPROP_BMPFILE,0,bmp_path);   // BMP файл
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_ANCHOR,anchor);       // установка точки привязки
   // ObjectSetInteger(chart_id,bmp_nm,OBJPROP_CORNER,corner);       // установка угола привязки зачем?
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_XDISTANCE,x_dist);    // установка координаты X
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_YDISTANCE,y_dist);    // установка координаты Y
   ObjectSetInteger(chart_id,bmp_nm,OBJPROP_SELECTABLE,false);    // нельзя выделить объект, если FALSE
   ObjectSetString(chart_id,bmp_nm,OBJPROP_TOOLTIP,"\n");         // нет всплывающей подсказки, если "\n"
  }

L'esempio corretto è in fondo alla pagina

C'è anche una ricerca prima, e il ridisegno - ho visto da qualche parte che è meglio essere salvaguardati.

// Per favore non picchiatemi, lo sto imparando da solo.

 
MetaDriver:
Quando sarà il prossimo?

Nel prossimo giorno o due.

La build 480 è in fase di test ora, la rilasceremo pubblicamente dopo i test interni.

 
Renat:

Nel prossimo giorno o due.

La build 480 è ora in fase di test, dopo i test interni la rilasceremo pubblicamente.

Grazie!
 
Silent:

Non è chiaro perché funzioni.

L'esempio corretto è in fondo alla pagina

C'è anche una ricerca prima, e il ridisegno - ho visto da qualche parte che è meglio andare sul sicuro.

// Non colpire troppo forte, sto imparando io stesso.

Non ho capito cosa volevi dire. Hai appena evidenziato qualcosa in rosso... )) Sei riuscito a far apparire gli oggetti BMP(OBJ_BITMAP_LABEL) nel tester in modalità visualizzazione?
 
tol64:
Non ho capito cosa volevi dire. Hai segnato qualcosa in rosso... )) Sei riuscito a far apparire gli oggetti BMP(OBJ_BITMAP_LABEL) nel tester in modalità visualizzazione?

Non li ho ancora provati.

Ho evidenziato gli errori, che dovrebbero far sì che il codice non funzioni. Confrontate il vostro codice con quello dell'esempio sul link.