Leo59: Favor explicar como desembalar os dados da tabela (*.csv) em uma matriz estática tridimensional. A primeira coluna da tabela contém o índice para a primeira dimensão da matriz, A segunda coluna contém o índice para a segunda dimensão da matriz, A terceira e outras colunas contêm os próprios valores para a terceira dimensão da matriz.
Esqueça o que você escreveu a seguir. Declare um conjunto de tipos apropriados em nível de variável global arr[][][3] e defina a segunda dimensão por você mesmo.
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; // Выход из функции
}
Bem, é assim. E você provavelmente precisará converter os índices de cordas em inteiros.
Esqueça o que você escreveu a seguir. Declare uma série de tipos apropriados em nível de variável global arr[][][3] e defina a segunda dimensão por você mesmo.
Bem, é assim. E você provavelmente precisará converter os índices de cordas em inteiros.
MUITO OBRIGADO!!!! Quando o cérebro ferve, a pessoa se torna "cega" e não consegue ver as coisas simples e óbvias. O mais interessante é que você sabe que a solução é simples, "como três kopecks", mas, infelizmente, é um borrão na frente de seus olhos. Mais uma vez obrigado !!!!!
Pelo fato de que ele removerá TODOS os objetos. Mesmo aqueles que NÃO pertencem ao EA/indicador. E se uma pessoa tiver marcado seu próprio código em um gráfico por um longo tempo? E então, ele correu este código em um indicador de terceiros? Como, e o que ele diria então sobre o autor deste bom código?
Após o fechamento das ordens 152, 153, 158 e 159, o lucro não é correto (como se o testador tivesse calculado incorretamente). Os pedidos têm sido "pendurados" por vários meses, como mostra a tabela. Além disso, o sorteio é mostrado na tabela corretamente, mas não é visível na tabela por algum motivo.
Na verdade, tudo começou com comando: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
e depois tentei outra variante: ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Caro Senhor, leia a ajuda :)
Não entendo porque meu índice com os comandos mencionados funciona corretamente na Alpha-Forex, mas no Saxo Bank os objetos não são mais apagados.
Depois comecei a experimentar o roteiro e o roteiro parou de apagar objetos em todos os terminais.
A primeira vista na janela principal do gráfico, a segunda ao todo. Conclusão - 1) Use o índice da janela para reduzir o número de objetos pelos quais a função passa para encontrar os que devem ser excluídos. 2) Se você apagar pelo nome (parte do nome, porque um programa mql geralmente nomeia objetos com algum prefixo pessoal), então use o laço de busca do último objeto (mais antigo por ocasião da criação).
Embora haja realmente um problema com a eliminação de objetos, se houver um grande número deles e ele passar de 0 para ObjectTotal()-1, então alguns dos objetos não são eliminados. Pergunta aos desenvolvedores, talvez não haja memória tampão suficiente alocada.
Exemplo:
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) и т.д.
Você pode me dizer se o Win 8 é compatível com o MT 4 e MT 5? Estou perguntando porque tenho um Mac e estou me perguntando com qual SO comprar um PC. Uma pessoa até me mostrou uma captura de tela do MT 4 rodando no 8. Mas como alguns camaradas afirmam que não há compatibilidade total, tenho que esclarecer... Obrigado.
Favor explicar como desembalar os dados da tabela (*.csv) em uma matriz estática tridimensional.
A primeira coluna da tabela contém o índice para a primeira dimensão da matriz,
A segunda coluna contém o índice para a segunda dimensão da matriz,
A terceira e outras colunas contêm os próprios valores para a terceira dimensão da matriz.
Esqueça o que você escreveu a seguir. Declare um conjunto de tipos apropriados em nível de variável global arr[][][3] e defina a segunda dimensão por você mesmo.
Bem, é assim. E você provavelmente precisará converter os índices de cordas em inteiros.
Esqueça o que você escreveu a seguir. Declare uma série de tipos apropriados em nível de variável global arr[][][3] e defina a segunda dimensão por você mesmo.
Bem, é assim. E você provavelmente precisará converter os índices de cordas em inteiros.
Mais uma vez obrigado !!!!!
Você não precisa dar conselhos estúpidos. Este comando removerá todos os objetos do gráfico ao todo.
Não estou de acordo com você!
Havia uma pergunta:
Como apagar todos os objetos como OBJ_ARROW_RIGHT_PRICE ?
Solução:
Como a solução é estúpida?
Não estou de acordo com você!
Havia uma pergunta:
Solução:
E por que a decisão é estúpida?
Como, e o que ele então diz sobre o autor deste bom código?
As pessoas são gentis. Eles dirão o que pensarem.
As pessoas são gentis. Eles dirão o que pensam.
Não estou de acordo com você!
Havia uma pergunta:
Solução:
E por que a solução é estúpida?
Na verdade, tudo começou com comando: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
e depois outra variante tentou ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Caro Senhor, leia a ajuda :)
Não entendo porque meu índice com os comandos mencionados funciona corretamente na Alpha-Forex, mas no Saxo Bank os objetos não são mais excluídos.
Depois comecei a experimentar o roteiro e o roteiro parou de apagar objetos em todos os terminais.
Saúde a todos!
Tal estranheza do testador é observada.
Após o fechamento das ordens 152, 153, 158 e 159, o lucro não é correto (como se o testador tivesse calculado incorretamente). Os pedidos têm sido "pendurados" por vários meses, como mostra a tabela. Além disso, o sorteio é mostrado na tabela corretamente, mas não é visível na tabela por algum motivo.
O que pode ser ?
EURUSD (Euro vs Dólar americano)
15 Minutos (M15) 2012.01.01 23:00 - 2014.03.07 22:59 (2012.01.01 - 2014.03.08)
1000.00
Espalhe
Atual (12)
1418.73
Lucro total
2045.28
Perda total
-626.55
3.26
Pagamento previsto
2.41
419.34
Máximo de drawdown
834.91 (58.98%)
Drawdown relativo
58.98% (834.91)
№
Hora
Tipo
Ordem
Volume
Preço
S / L
T / P
Lucro
Balanço
372
2012.04.30 11:00
compre
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
compre
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
compre
153
0.01
1.31711
0.00000
1.32237
379
2012.05.02 08:45
modificar
152
0.01
1.32262
0.00000
1.32237
380
2012.05.02 15:15
vender
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
vender
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
vender
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
vender
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
compre
158
0.02
1.30997
0.00000
1.31742
389
2012.05.04 16:15
modificar
152
0.01
1.32262
0.00000
1.31742
390
2012.05.04 16:15
modificar
153
0.01
1.31711
0.00000
1.31742
391
2012.05.06 23:15
compre
159
0.04
1.29845
0.00000
1.30918
392
2012.05.06 23:15
modificar
152
0.01
1.32262
0.00000
1.30918
393
2012.05.06 23:15
modificar
153
0.01
1.31711
0.00000
1.30918
394
2012.05.06 23:15
modificar
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
Na verdade, tudo começou com comando: ObjectsDeleteAll(0,OBJ_ARROW_RIGHT_PRICE) ;
e depois tentei outra variante: ObjectsDeleteAll(OBJ_ARROW_RIGHT_PRICE);
Caro Senhor, leia a ajuda :)
Não entendo porque meu índice com os comandos mencionados funciona corretamente na Alpha-Forex, mas no Saxo Bank os objetos não são mais apagados.
Depois comecei a experimentar o roteiro e o roteiro parou de apagar objetos em todos os terminais.
A primeira vista na janela principal do gráfico, a segunda ao todo. Conclusão - 1) Use o índice da janela para reduzir o número de objetos pelos quais a função passa para encontrar os que devem ser excluídos. 2) Se você apagar pelo nome (parte do nome, porque um programa mql geralmente nomeia objetos com algum prefixo pessoal), então use o laço de busca do último objeto (mais antigo por ocasião da criação).
Embora haja realmente um problema com a eliminação de objetos, se houver um grande número deles e ele passar de 0 para ObjectTotal()-1, então alguns dos objetos não são eliminados. Pergunta aos desenvolvedores, talvez não haja memória tampão suficiente alocada.
Exemplo: