L'iscrizione a OnBookEvent a volte cade - esiste una cosa del genere? - pagina 8

 
fxsaber:

E puoi anche automatizzare lo sventramento dei prodotti Market a pagamento - in modalità demo gratuita strappa tutte le risorse (icone, cursori, ecc.). Con canali alfa e altre cose.

È possibile. E puoi anche smettere di dare di matto e pensare: perché un evento deve avere un finale.

 
A100:

Non ci credo! - È scritto che tutto nel Mercato è sicuro

Ho il sospetto che sia importato internamente)

 
A100:

Non ci credo! - È scritto che tutto è protetto in modo sicuro nel Mercato

Non riesco a capire se questo è serio o sarcasmo. Se seriamente, ResourceSave è il capo di tutto.

Ma si può fare in questo modo.

Forum sul trading, sistemi di trading automatico e test di strategie di trading

Caratteristiche del linguaggio mql5, sottigliezze e trucchi

fxsaber, 2017.10.31 08:11

// Сохранение Bitmap-объекта в bmp/gif/png-файле (прозрачность не учитывается)
bool BitmapObjectToFile( const long chartID, const string ObjName, const string FileName, const bool FullImage = false )
{  
  const ENUM_OBJECT Type = (ENUM_OBJECT)ObjectGetInteger(chartID, ObjName, OBJPROP_TYPE);  
  bool Res = (Type == OBJ_BITMAP_LABEL) || (Type == OBJ_BITMAP);
             
  if (Res)
  {
    const string Name = __FUNCTION__ + (string)MathRand();

    ObjectCreate(chartID, Name, OBJ_CHART, 0, 0, 0);
    ObjectSetInteger(chartID, Name, OBJPROP_XDISTANCE, -1 e3);
    
    const long chart = ObjectGetInteger(chartID, Name, OBJPROP_CHART_ID);
        
    Res = ChartSetInteger(chart, CHART_SHOW, false) && ObjectCreate(chart, Name, OBJ_BITMAP_LABEL, 0, 0, 0) &&
          ObjectSetString(chart, Name, OBJPROP_BMPFILE, ObjectGetString(chartID, ObjName, OBJPROP_BMPFILE)) &&
          (FullImage || (ObjectSetInteger(chart, Name, OBJPROP_XSIZE, ObjectGetInteger(chartID, ObjName, OBJPROP_XSIZE)) &&
                         ObjectSetInteger(chart, Name, OBJPROP_YSIZE, ObjectGetInteger(chartID, ObjName, OBJPROP_YSIZE)) &&
                         ObjectSetInteger(chart, Name, OBJPROP_XOFFSET, ObjectGetInteger(chartID, ObjName, OBJPROP_XOFFSET)) &&
                         ObjectSetInteger(chart, Name, OBJPROP_YOFFSET, ObjectGetInteger(chartID, ObjName, OBJPROP_YOFFSET)))) &&
                         ChartScreenShot(chart, FileName, (int)ObjectGetInteger(chart, Name, OBJPROP_XSIZE),
                                                          (int)ObjectGetInteger(chart, Name, OBJPROP_YSIZE));
    ObjectDelete(chartID, Name);
  }                    

  return(Res);
}


Applicazione

// Сохраняет в png-файлах все Bitmap-объекты текущего чарта
void OnStart()
{  
  for (int i = ObjectsTotal(0) - 1; i >= 0; i--)
  {
    const string Name = ObjectName(0, i);
    
    BitmapObjectToFile(0, Name, (string)ChartID() + "\\" + Name + ".png");    
  }      
}


ZZY È stato implementato anche un convertitore di file BMP->GIF/PNG.

 
A100:

Dove si fanno i cambiamenti? In MetaTrader o nella documentazione... ad esempio

Per gli eventi ampi OnChartEvent è scritto in modo più specifico: inviare messaggi di eventi a tutti i programmi mql5 sul grafico (cioè l'unità di sottoscrizione è il grafico)

Che in effetti è quello che succede

Forse aggiungeranno la funzione CheckBookEventCount()

Significa che se il contatore è superiore a 1, non chiamiamo unsubscribe

 
prostotrader:

Forse aggiungere la funzione CheckBookEventCount()

Cioè se il conteggio è maggiore di 1, non chiamiamo la cancellazione dell'abbonamento

Perché no?

Restano però delle domande:

  • Quale funzione diminuirà il contatore?
  • Quale chiuderà la coppa?

Se mettiamo tutto su MarketBookRelease allora perché CheckBookEventCount e perché noi con il nostro controcontrollo?

 

In generale, se l'unità di sottoscrizione a banda larga è un grafico, allora non si potrebbe fare nulla organizzando una sottoscrizione interprogramma counter\subscription basata su una variabile globale con un nome come questo:

string GVName( string symbol ) { return IntegerToString(ChartID()) + ":" + symbol; }

per tacito accordo

 
A100:
nella tua sandbox, sì. qualsiasi codice esterno legato al vetro è probabile che ti rompa.
 
prostotrader:

Beh, come previsto, ti sbagli.

Posso sbagliarmi, ma non in questo caso. Vorrei che tu leggessi con più attenzione i post degli altri. È stato ripetuto più volte qual è il problema, e senza risultato...

 
fxsaber:

Init e Deinit non fanno parte dell'abbonamento. Forse questa circostanza aiuterà.

No, non ha importanza. Anche se ci riferiamo al problema della sequenza imprevedibile di chiamate OnInit/OnDeinit al ricaricamento degli indicatori, non andrà da nessuna parte se ci basiamo sulla creazione/distruzione di oggetti - c'è lo stesso paradosso.

Ma ancora una volta, questa sequenza (negli indicatori) non è la fonte dell'errore.

 
Stanislav Korotky:

Posso sbagliarmi, ma non in questo caso. Vorrei che tu leggessi con più attenzione i post degli altri. È stato ripetuto più volte qual è il problema, e senza risultato...

Giusto, è una buona idea leggere tutti i post.

https://www.mql5.com/ru/forum/267154/page7#comment_8170755
Подписка на OnBookEvent иногда отваливается - есть такое?
Подписка на OnBookEvent иногда отваливается - есть такое?
  • 2018.07.24
  • www.mql5.com
После того как поплотнее занялся стаканом и повесил на чарты несколько экспертов и индикаторов, подписанных на OnBookEvent, обнаружил, что некоторы...
Motivazione: