Leo59: Per favore, spiega come decomprimere i dati da una tabella (*.csv) in un array statico tridimensionale. La prima colonna della tabella contiene l'indice per la prima dimensione dell'array, La seconda colonna contiene l'indice per la seconda dimensione dell'array, La terza e l'ulteriore colonna contengono i valori stessi per la terza dimensione dell'array.
Dimentica quello che hai scritto dopo. Dichiarare un array di tipo appropriato a livello di variabile globale arr[][][3] e definire la seconda dimensione da soli.
void AAA()
{
int Handle; // Файловый описательstring File_Name = "AAA.csv"; // Имя открываемого файлаstring str_1 = ""; // 1 Номер индекса по первому измерениюstring str_2 = ""; // 2 Номер индекса по второму измерениюstring str_3 = ""; // 3 Значениеstring str_4 = ""; // 4 Значениеstring str_5 = ""; // 5 Значение
Handle=FileOpen(File_Name, FILE_READ, ";"); // Открытие файлаwhile(FileIsEnding(Handle)==false) // До тех пор, пока файловый...
{ // ...указатель не в конце файла// Чтение данных из строки до файлового разделителя
str_1 = FileReadString(Handle); // 1 Номер индекса по первому измерению
str_2 = FileReadString(Handle); // 2 Номер индекса по второму измерению
str_3 = FileReadString(Handle); // 3 Значение
str_4 = FileReadString(Handle); // 4 Значение
str_5 = FileReadString(Handle); // 5 Значение
// А здесь заполнение массива
arr[str_1][str_2][0] = str_3;
arr[str_1][str_2][1] = str_3;
arr[str_1][str_2][2] = str_4;
if(FileIsEnding(Handle)==true) // Файловый указатель в конце файлаbreak; // Выход из цикла чтения
????????????????????????????????????????????????????
}
FileClose(Handle); // Закрываем файлreturn; // Выход из функции
}
Beh, è così. E probabilmente avrete bisogno di convertire gli indici delle stringhe in interi.
Dimentica quello che hai scritto dopo. Dichiarare un array di tipo appropriato a livello di variabile globale arr[][][3] e definire la seconda dimensione da soli.
Beh, è così. E probabilmente avrete bisogno di convertire gli indici delle stringhe in interi.
GRAZIE MILLE!!!! Quando il cervello bolle, si diventa "ciechi" e non si vedono le cose semplici e ovvie. La cosa più interessante è che sai che la soluzione è semplice, "come tre copechi", ma, ahimè, è una macchia davanti ai tuoi occhi. Grazie ancora !!!!!
Per il fatto che rimuoverà TUTTI gli oggetti. Anche quelli che NON appartengono all'EA/indicatore. Cosa succede se una persona ha marcato il proprio codice su un grafico per molto tempo? E poi ha eseguito questo codice in un indicatore di terze parti? Come, e cosa direbbe poi dell'autore di questo buon codice?
In realtà tutto è iniziato con il comando: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
e poi un'altra variante ha provato ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Caro signore, leggi l'aiuto :)
Non capisco perché il mio indice con i comandi menzionati funziona correttamente in Alpha-Forex, ma in Saxo Bank gli oggetti non vengono più cancellati.
Poi ho iniziato a sperimentare con lo script e lo script ha smesso di cancellare oggetti in tutti i terminali.
Dopo aver chiuso gli ordini 152, 153, 158 e 159 il profitto non è corretto (come se il tester avesse calcolato male). Gli ordini sono stati "appesi" per diversi mesi come mostrato nella tabella. Inoltre, il drawdown è mostrato correttamente nella tabella ma non è visibile sul grafico per qualche motivo.
In realtà tutto è iniziato con il comando: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
e poi ho provato un'altra variante: ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Caro signore, leggi l'aiuto :)
Non capisco perché il mio indice con i comandi menzionati funziona correttamente in Alpha-Forex, ma in Saxo Bank gli oggetti non vengono più cancellati.
Poi ho iniziato a sperimentare con lo script e lo script ha smesso di cancellare gli oggetti in tutti i terminali.
Il primo guarda nella finestra principale del grafico, il secondo in tutto. Conclusione - 1) Usare l'indice delle finestre per ridurre il numero di oggetti che la funzione attraversa per trovare quelli da cancellare. 2) Se cancelli per nome (parte del nome, perché un programma mql di solito nomina gli oggetti con qualche prefisso personale), allora usa il ciclo di ricerca dall'ultimo (più vecchio per tempo di creazione) oggetto.
Anche se c'è effettivamente un problema con la cancellazione degli oggetti, se ce ne sono molti e si passa da 0 a ObjectTotal()-1, allora alcuni degli oggetti non vengono cancellati. Domanda agli sviluppatori, forse non c'è abbastanza memoria buffer allocata.
Esempio:
void DeleteObjects(int chartID, string prefix_obj_name) {
string obj_nm="";
int obj=ObjectsTotal();
// for(int k=0; k<obj; k++){ // неправильный вариант
for(int k=obj-1; k>=0; k--){
obj_nm = ObjectName(k);
if(StringFind(obj_nm,prefix_obj_name)>=0)
{
ResetLastError();
if(!ObjectDelete(chartID,obj_nm))
{
Print(__FUNCTION__,
": не удалось удалить объект ",obj_nm," Код ошибки = ",GetLastError());
}
}
}
}
// prefix_obj_name = "Obj_MQLname_"; Имена объектов создаваемых программой "Obj_MQLname_Close_"+DoubleToStr(Close[0],Digits), "Obj_MQLname_Open_"+DoubleToStr(Open[0],Digits) и т.д.
Potete dirmi se Win 8 è compatibile con MT 4 e MT 5? Lo chiedo perché ho un mac e mi sto chiedendo con quale sistema operativo comprare un PC. Un tizio mi ha persino mostrato uno screenshot di MT 4 che gira su 8. Ma poiché alcuni compagni sostengono che non c'è piena compatibilità, devo chiarire... Grazie.
Per favore, spiega come decomprimere i dati da una tabella (*.csv) in un array statico tridimensionale.
La prima colonna della tabella contiene l'indice per la prima dimensione dell'array,
La seconda colonna contiene l'indice per la seconda dimensione dell'array,
La terza e l'ulteriore colonna contengono i valori stessi per la terza dimensione dell'array.
Dimentica quello che hai scritto dopo. Dichiarare un array di tipo appropriato a livello di variabile globale arr[][][3] e definire la seconda dimensione da soli.
Beh, è così. E probabilmente avrete bisogno di convertire gli indici delle stringhe in interi.
Dimentica quello che hai scritto dopo. Dichiarare un array di tipo appropriato a livello di variabile globale arr[][][3] e definire la seconda dimensione da soli.
Beh, è così. E probabilmente avrete bisogno di convertire gli indici delle stringhe in interi.
Grazie ancora !!!!!
Non c'è bisogno di dare consigli stupidi. Questo comando rimuoverà tutti gli oggetti dal grafico.
Non sono d'accordo con te!
C'era una domanda:
Come cancellare tutti gli oggetti come OBJ_ARROW_RIGHT_PRICE?
Soluzione:
In che modo la soluzione è stupida?
Non sono d'accordo con te!
C'era una domanda:
Soluzione:
E perché la decisione è stupida?
Come, e cosa dice poi dell'autore di questo buon codice?
Le persone sono gentili. Diranno tutto quello che pensano.
Le persone sono gentili. Diranno quello che pensano.
Non sono d'accordo con te!
C'era una domanda:
Soluzione:
E perché la soluzione è stupida?
In realtà tutto è iniziato con il comando: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
e poi un'altra variante ha provato ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Caro signore, leggi l'aiuto :)
Non capisco perché il mio indice con i comandi menzionati funziona correttamente in Alpha-Forex, ma in Saxo Bank gli oggetti non vengono più cancellati.
Poi ho iniziato a sperimentare con lo script e lo script ha smesso di cancellare oggetti in tutti i terminali.
Salud a tutti!
Si osserva una tale stranezza del tester.
Dopo aver chiuso gli ordini 152, 153, 158 e 159 il profitto non è corretto (come se il tester avesse calcolato male). Gli ordini sono stati "appesi" per diversi mesi come mostrato nella tabella. Inoltre, il drawdown è mostrato correttamente nella tabella ma non è visibile sul grafico per qualche motivo.
Cosa può essere?
EURUSD (Euro contro Dollaro USA)
15 minuti (M15) 2012.01.01 23:00 - 2014.03.07 22:59 (2012.01.01 - 2014.03.08)
1000.00
Spread
Corrente (12)
1418.73
Profitto totale
2045.28
Perdita totale
-626.55
3.26
Payoff previsto
2.41
419.34
Massimo prelievo
834.91 (58.98%)
Prelievo relativo
58.98% (834.91)
№
Tempo
Tipo
Ordina
Volume
Prezzo
S / L
T / P
Profitto
Equilibrio
372
2012.04.30 11:00
comprare
151
0.01
1.32193
0.00000
1.32472
373
2012.05.01 04:45
t/p
151
0.01
1.3247234
0.00000
1.32472
2.75
1402.41
374
2012.05.01 15:00
comprare
152
0.01
1.32262
0.00000
1.32713
375
2012.05.02 07:45
t/p
142
0.01
1.31949
0.00000
1.31949
-4.40
1398.00
376
2012.05.02 07:45
t/p
143
0.01
1.31949
0.00000
1.31949
0.95
1398.96
377
2012.05.02 07:45
t/p
149
0.02
1.31949
0.00000
1.31949
12.49
1411.44
378
2012.05.02 08:45
comprare
153
0.01
1.31711
0.00000
1.32237
379
2012.05.02 08:45
modificare
152
0.01
1.32262
0.00000
1.32237
380
2012.05.02 15:15
vendere
154
0.01
1.31483
0.00000
1.31352
381
2012.05.03 07:00
t/p
154
0.01
1.3135174
0.00000
1.31352
1.18
1412.63
382
2012.05.03 08:45
vendere
155
0.01
1.31454
0.00000
1.31425
383
2012.05.03 09:00
t/p
155
0.01
1.3142483
0.00000
1.31425
0.29
1412.92
384
2012.05.03 13:45
vendere
156
0.01
1.31671
0.00000
1.31256
385
2012.05.04 10:45
t/p
156
0.01
1.3125581
0.00000
1.31256
4.11
1417.02
386
2012.05.04 14:15
vendere
157
0.01
1.31527
0.00000
1.31293
387
2012.05.04 14:45
t/p
157
0.01
1.3129331
0.00000
1.31293
2.34
1419.36
388
2012.05.04 16:15
comprare
158
0.02
1.30997
0.00000
1.31742
389
2012.05.04 16:15
modificare
152
0.01
1.32262
0.00000
1.31742
390
2012.05.04 16:15
modificare
153
0.01
1.31711
0.00000
1.31742
391
2012.05.06 23:15
comprare
159
0.04
1.29845
0.00000
1.30918
392
2012.05.06 23:15
modificare
152
0.01
1.32262
0.00000
1.30918
393
2012.05.06 23:15
modificare
153
0.01
1.31711
0.00000
1.30918
394
2012.05.06 23:15
modificare
158
0.02
1.30997
0.00000
1.30918
395
2012.09.14 10:45
t/p
152
0.01
1.30918
0.00000
1.30918
-18.67
1400.70
396
2012.09.14 10:45
t/p
153
0.01
1.30918
0.00000
1.30918
-13.12
1387.58
397
2012.09.14 10:45
t/p
158
0.02
1.30918
0.00000
1.30918
-11.65
1375.93
398
2012.09.14 10:45
t/p
159
0.04
1.30918
0.00000
1.30918
22.77
1398.70
In realtà tutto è iniziato con il comando: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
e poi ho provato un'altra variante: ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Caro signore, leggi l'aiuto :)
Non capisco perché il mio indice con i comandi menzionati funziona correttamente in Alpha-Forex, ma in Saxo Bank gli oggetti non vengono più cancellati.
Poi ho iniziato a sperimentare con lo script e lo script ha smesso di cancellare gli oggetti in tutti i terminali.
Il primo guarda nella finestra principale del grafico, il secondo in tutto. Conclusione - 1) Usare l'indice delle finestre per ridurre il numero di oggetti che la funzione attraversa per trovare quelli da cancellare. 2) Se cancelli per nome (parte del nome, perché un programma mql di solito nomina gli oggetti con qualche prefisso personale), allora usa il ciclo di ricerca dall'ultimo (più vecchio per tempo di creazione) oggetto.
Anche se c'è effettivamente un problema con la cancellazione degli oggetti, se ce ne sono molti e si passa da 0 a ObjectTotal()-1, allora alcuni degli oggetti non vengono cancellati. Domanda agli sviluppatori, forse non c'è abbastanza memoria buffer allocata.
Esempio: