Buongiorno.
Sono un neofita non sono un programmatore, ho gia scritto per me stesso un EA che elenca gli ordini a mercato e tramite dei pulsanti posso, inviare tutti gli ordini aperti su telegram, chiudere gli ordini, dimezzare le posizioni, il tutto seguito da un invio di messaggio su telegram.
Sto provando adesso a riscriverlo utilizzando le librerie <Controls\Dialog.mqh>, <Controls\Label.mqh>; <Controls\Button.mqh>; etc etc.
Primo ostacolo come dichiarare dinamicamente gli oggetti CLabel.
Ho trovato questo nella documentazione MQL5 (io sto scrivendo in MQL4, ma sono compatibili) : https://www.mql5.com/it/docs/basis/t...bject_pointers.
Allora ho provato a fare un test, ma ottengo in errore in inizializzazione dell'EA , e nessun errore in compilazione. Di seguito riporto il codice:
L'errore ottenuto è :
2023.11.04 13:20:06.525 esercizi BTCUSD.,H1: array out of range in 'esercizi.mq4' (107,26)
quindi in questa riga
va oltre il range dell'array, array dichiarato ad inizio codice
Dove sbaglio?
Grazie a chiunque voglia/possa aiutarmi.
Sono un neofita non sono un programmatore, ho gia scritto per me stesso un EA che elenca gli ordini a mercato e tramite dei pulsanti posso, inviare tutti gli ordini aperti su telegram, chiudere gli ordini, dimezzare le posizioni, il tutto seguito da un invio di messaggio su telegram.
Sto provando adesso a riscriverlo utilizzando le librerie <Controls\Dialog.mqh>, <Controls\Label.mqh>; <Controls\Button.mqh>; etc etc.
Primo ostacolo come dichiarare dinamicamente gli oggetti CLabel.
Ho trovato questo nella documentazione MQL5 (io sto scrivendo in MQL4, ma sono compatibili) : https://www.mql5.com/it/docs/basis/t...bject_pointers.
Allora ho provato a fare un test, ma ottengo in errore in inizializzazione dell'EA , e nessun errore in compilazione. Di seguito riporto il codice:
Code:
//+------------------------------------------------------------------+ //| esercizi.mq4 | //| Copyright 2023, MetaQuotes Ltd. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2023, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #property strict #include <Controls\Dialog.mqh>; CAppDialog m_Pannello; #include <Controls\Label.mqh> CLabel *Testo_oggetti[]; int OrdiniTotali = OrdersTotal(); //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- create timer EventSetTimer(60); Pannello(); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); m_Pannello.Destroy(reason); int size=ArraySize(Testo_oggetti); for(int i=0; i<size; i++) delete(Testo_oggetti[i]); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- m_Pannello.OnEvent(id, lparam, dparam, sparam); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ bool Pannello() { int x1, y1, x2, y2, Errore; //-- Crea Pannello x1 = 0; y1 = 0; x2 = 1000; y2 = 500; string txt = IntegerToString(AccountNumber()) + " - " + AccountName(); if(!m_Pannello.Create(0, "Pannello Controllo - Conto " + txt, 0, x1, y1, x2, y2)) { Errore = GetLastError(); Print("Errore Creazione Pannello ", Errore); return(false); } m_Pannello.Run(); x1 = 0; y1 = 25; x2 = 220; y2 = 235; if(OrdiniTotali > 0) { for(int i = 0 ; i < OrdiniTotali(); i++) { if(OrderSelect(i, SELECT_BY_POS,MODE_TRADES)) { Testo_oggetti[i] = new CLabel(); Testo_oggetti[i].Create(0,"Testo_" + IntegerToString(i), 0, x1, y1, x2, y2); m_Pannello.Add(Testo_oggetti[i]); x1 = 0; y1 = y1 + 50; x2 = 220; y2 = y2 + 50 ; } } } return true; } //+------------------------------------------------------------------+
2023.11.04 13:20:06.525 esercizi BTCUSD.,H1: array out of range in 'esercizi.mq4' (107,26)
quindi in questa riga
Code:
Testo_oggetti[i] = new CLabel();
Code:
CLabel *Testo_oggetti[];
Grazie a chiunque voglia/possa aiutarmi.
Comment