Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 935

 
Ciao, vorrei sapere se esiste uno script normale per scaricare e sincronizzare la cronologia delle quotazioni per MT5.ex5 e tutto andava bene, lo scanner funzionava, dava segnali, tutto funzionava bene, ma ieri dopo pranzo come tagliato, lo scanner ha smesso di vedere la storia e quindi cercare punti di entrata secondo la strategia e dare segnali, ho pensato che la questione è nello scanner, ma Ho avuto alcune versioni di esso e ha smesso di visualizzare i segnali su tutti, ho preso il mio amico e ho cancellato il terminale, era inutile, l'ho cancellato con tutte le informazioni, reinstallato e quando ho iniziato a caricare la storia con lo script, ho aperto la scheda esperti e ho visto che c'erano solo errori quando si carica la storia, ho scritto al supporto del broker, mi hanno detto che recentemente gli ingegneri di MT% avevano aggiornato che e forse l'algoritmo dello script si è confuso ho provato a chiedere qui cosa fare e se ci sono altri script per la cronologia delle quotazioni, dovrei dire subito che ho provato a usare l'intervallo di tempo di un mese per scaricare le quotazioni, è stato inutile, grazie mille in anticipo.
 
82Dmitry82:
Salve, vorrei sapere se esiste uno script normale per il caricamento e la sincronizzazione della cronologia delle quotazioni per MT5.ex5 e tutto andava bene, lo scanner funzionava, dava segnali, tutto funzionava bene, ma ieri dopo pranzo come tagliato, lo scanner ha smesso di vedere la storia e quindi cercare punti di entrata secondo la strategia e dare segnali, ho pensato che la questione è nello scanner, ma Ho alcune versioni di esso e ha smesso di dare segnali per tutti, sia per me che per il mio amico, ho svuotato il terminale, senza risultato, l'ho cancellato con tutte le informazioni, l'ho reinstallato e quando ho iniziato a caricare la storia con lo script, ho aperto la scheda esperti e ho visto che c'erano solo errori durante il caricamento della storia, ho scritto al supporto del broker, hanno risposto che recentemente in MT% che potrebbe essere stato aggiornato e l'algoritmo è confuso nello script, lui dà fuori una tale storia di caricamento,mi scuso per il gran numero di lettere, ho appena cercato di spiegare la situazione in dettaglio, supporto broker rifiutato di aiutare, dicono che non è noi, e metaquotes, non si può scrivere a loro, non hanno alcun feedback, così ho deciso di chiedere qui cosa fare e se ci sono altri script per la storia delle citazioni, devo dire, ho provato a utilizzare il TF mensile per scaricare le citazioni, nessun uso, grazie in anticipo.

Non ho intenzione di dire nulla, ma questa è l'unica azienda in cui ho avuto problemi con i dati storici durante l'esecuzione di uno dei miei ordini - era acceso e spento.

Stavo cercando le ragioni finché non ho detto al cliente di testarlo sulle quotazioni di altri broker. E lì tutto si è rivelato a posto.

Se avete provato a caricare le quotazioni in timeframe mensili, è stato inutile.

 
 
Seric29:
Ragazzi aiutatemi con questo problemahttps://www.mql5.com/ru/forum/160683/page934#comment_12795598

non hai un esempio completo, posta il codice riproducibile, cioè un modello di classe completo e un esempio di codice in cui crei un oggetto usando questo modello, finora solo "telepati in vacanza" .... sospetto che il codice semplicemente non compili, molti punti di contesa nel tuo modello, potrei non vedere la logica in esso

 
Artyom Trishkin:

Non ho intenzione di dire nulla, ma questa è l'unica azienda in cui ho avuto problemi con i dati storici durante l'esecuzione di uno dei miei ordini - era acceso e spento.

Stavo cercando le ragioni finché non ho detto al cliente di testarlo sulle quotazioni di altri broker. E lì tutto si è rivelato a posto.

Il motivo è che è vietato discutere di broker su questa risorsa, lasciamo perdere.

Il fatto è che non hanno avuto un problema in più di mezzo anno. Ho cercato di usarlo per qualche motivo, il nostro utilizza un bargraph makdi, sembra essere il problema, almeno quando volevano ordinare per QuickBooks la risposta era negativa dopo aver esaminato TOR, tutto riposato sulla piattaforma integrata indukes, solo IMb a volte in ibernazione e America dà a lavorare

 
Igor Makanu:

non hai un esempio completo, posta il codice riproducibile, cioè un modello di classe completo e un esempio di codice in cui crei un oggetto usando questo modello, finora solo "telepati in vacanza" .... sospetto che il codice semplicemente non compili, ci sono molti punti discutibili nel tuo modello, forse non vedo la logica in esso

Dovrebbe funzionare così.

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

#define  templ(T)          template<typename T>// задача данного макроса определять int bool double и т.д

//Далее пишем макрос который будет принимать массив и возвращать
//результат с помощью вызова перегружаемой функции которая будет вызываться из класса, но в моём примере вписана простая функция,
// я 3 дня посидел и выяснил что макрос может принимать массивы любой размеренности  в принципе об этом написано в справке что макрос может принимать эл. любого типа
#define  Vosmas(a,b,c,d,e) /*return*/(Fun(a,b,c,d,e))//a- массив, 
                                                    //b- номер строки если нужен
                                                    //c,d- номера измерений если нужны и массив многомерный

int Mas[2],Mas2[2][2],Mas3[2][2][2];//объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)

int OnInit()
{int Perem=0;
//макрос должен вызвать функцию из класса и сделать следующее/ в моём примере будет простая функция
 Perem=Vosmas(Mas,0,0,0,3);
 Print("Vosmas: ",Perem);//результат 3
return(INIT_SUCCEEDED);}

templ(T)class CData{
public:CData(){};~CData(){};
       //перегружаемая функция Total() с наращиваемым количеством аргументов, не знаю будет ли оно наращивать аргументы вроде записывается но когда дойдёт до расчётов увидим
       //хотелось бы с этим разобраться 
       //а также делать такую перегрузку 
       T Total(T &mas[]    ,int y1=0 ...){return(mas[y1]);}  //y2 весит в холостую  
       T Total(T &mas[][]  ,int y1=0 ...){return(mas[y1][y2]);}
       T Total(T &mas[][][],int y1=0 ...){return(mas[y1][y2][y3]);}};
       
         
templ(T) T Fun(T &a[],int b,int c,int d,int e){a[b]=e; return (a[b]);}// оставшиеся аргументы будут висеть в холостую

In generale voglio ottenere questo effetto, ma non ho esperienza nel campo delle classi. Il codice si compila e funziona

 
Seric29:

Dovrebbe funzionare così.

Purtroppo non capisco la logica di questo codice, non riesco nemmeno a immaginare perché si dovrebbero dichiarare le parole chiave del linguaggio tramite la sostituzione di macro,

E per logica, dubito che si ottenga l'accesso a un array multidimensionale in questo modo, penso che il tuo esempio non abbia semplicemente compilato un modello e quindi non hai ottenuto un errore di compilazione,

Non sono molto d'aiuto, forse qualcun altro può capire il tuo esempio

 
Igor Makanu:

Purtroppo non capisco la logica di questo codice, non riesco nemmeno a immaginare perché si dovrebbe usare la sostituzione di macro per dichiarare le parole chiave del linguaggio,

E per logica, dubito che si ottenga l'accesso a un array multidimensionale in questo modo, penso che il tuo esempio non abbia semplicemente compilato un modello e quindi non hai ottenuto un errore di compilazione,

Non sono di grande aiuto, forse qualcun altro può capire il tuo esempio.

Il codice si compila ma non è finito, il punto è ottenere questo risultato

return(mas[y1]);

Ho bisogno di chiamare una funzione dalla classe e ottenere questo valore.

 
Seric29:

Il codice si compila, ma non è finito.

Ancora: solo perché non hai avuto un errore di compilazione non significa che la tua classe template sia stata inclusa - dov'è l'oggetto della classe CData? - Vedo una dichiarazione di template, dov'è la variabile? - oggetto?

se hai "vitale bisogno" di risolvere la questione, allora fai del codice completamente riproducibile - completamente senza ..... commenti a tua discrezione e di nuovo, non capisco la logica di usare la sostituzione delle macro

#define  templ(T)          template<typename T>

forse questo è il "succo", io uso raramente le macro, almeno se uso una macro capisco cosa fa alla fine, nel tuo esempio è un mistero per me

 
Igor Makanu:

Ancora: solo perché non hai avuto un errore di compilazione non significa che la tua classe template sia stata inclusa - dov'è l'oggetto classe CData? - Vedo una dichiarazione di template, ma dove si trova tale variabile? - oggetto?

se hai "vitale bisogno" di risolvere la questione, allora fai del codice completamente riproducibile - completamente senza ..... commenti a tua discrezione e di nuovo, non capisco la logica di usare la sostituzione delle macro

forse è questo il punto, io uso raramente le macro, almeno se uso una macro capisco cosa fa alla fine, nel tuo esempio è un mistero per me

Il compito della macro chiama una funzione dalla classe e passa il valore alla funzione e poiché la macro può prendere un array di qualsiasi dimensione sto cercando di fare un tale schema. Naturalmente un sacco di gemme, ma ho bisogno di chiamare la funzione dalla classe e non so come chiamare una semplice funzione della classe (nel mio caso, il metodo Total non ha descrizione) non è scritto in aiuto, ci sono esempi complessi di trasferimento.

#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict

#define  templ(T)          template<typename T>// задача данного макроса определять int bool double и т.д

#define  Vosmas(a,b,c,d,e)  5

int Mas[2],Mas2[2][2],Mas3[2][2][2];//объявил массивы которые будут хранить информацию// обработка с помощью классов должна быть любого типа templ(T)

int OnInit()
{int Perem=0;
Perem=Vosmas(Mas,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas2,0,0,0,0);
Print("Vosmas: ",Perem);
Perem=Vosmas(Mas3,0,0,0,0);
Print("Vosmas: ",Perem);//во всех случаях результат 5
return(INIT_SUCCEEDED);}

Ecco un esempio: una macro prende una matrice di qualsiasi dimensione, è brutto che gli sviluppatori abbiano tagliato queste funzioni normali per lavorare con elementi complessi

Puoi farlo senza un modello, ma è meglio con un modello.