Qualquer pergunta de novato, de modo a não desorganizar o fórum. Profissionais, não passem por aqui. Em nenhum lugar sem você - 6. - página 1117
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Era uma vez mencionado no fórum que o MT5 adicionaria a capacidade de importar dados históricos personalizados, isso foi implementado?
string path=InpDirectoryName+"//"+InpFileName;
//--- откроем файл
ResetLastError();
int file_handle=FileOpen(path,FILE_READ|FILE_BIN);
if(file_handle!=INVALID_HANDLE)
{
//--- прочитаем все данные из файла в массив
FileReadArray(file_handle,arr);
//--- получим размер массива
int size=ArraySize(arr);
//--- распечатаем данные из массива
Print(" = ",arr[0][0]," = ",arr[1][1]," = ",arr[2][2]);
Print("Total data = ",size);
//--- закрываем файл
FileClose(file_handle);
}
else
Print("File open failed, error ",GetLastError());
2017.01.09 17:20:40.609 TorFid_v02 (EURUSD,H1) Total data = 1020100
Entendo o que falta, a conversão inversa para uma matriz 2D, mas não entendo como
A menos, é claro, que eu o tenha guardado corretamente.
{
for(int q=1; q<ARRAY_SIZE_X-1; q++) // Перебор по периоду, колонка X
{
arr[q][z]=NormalizeDouble(sm.d[q+1].m[nBar-z],5); // M(I) SMA
}
}
WriteData(1000);
//| Запись n элементов массива в файл |
//+------------------------------------------------------------------+
void WriteData(const int n)
{
//--- откроем файл
ResetLastError();
int handle=FileOpen(path,FILE_READ|FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arr,0,n);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
}
Espero que essas linhas também estejam presentes.
input string InpFileName="data.bin";
input string InpDirectoryName="SomeFolder";
Comece com uma fácil. Escreva tudo isso em roteiros. Um para escrever o arquivo e outro para ler e imprimir o que você lê. Para escrever, faça uma simples matriz 2x2
void OnStart()
{
int z = 0;
for(int i = 0; i < 2; i++)
{
arr[i][z] = i+z+1;
z++;
}
WriteData();
}
e remova o número de elementos que você deseja escrever. Desta forma, o arquivo inteiro será escrito do início ao fim. Verifique se o arquivo aparece no caminho dado.
FileWriteArray(handle,arr); // и здесь
Aqui está o que você recebe.
Escreva o código do roteiro.
//| WriteArray.mq5 |
//| Viktorov |
//| v4forex@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Viktorov"
#property link "v4forex@yandex.ru"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
string InpFileName = "data.bin";
string InpDirectoryName = "SomeFolder";
string path=InpDirectoryName+"//"+InpFileName;
int arr[3][3];
int handle;
void OnStart()
{
int i = 0, z = 0;
for(i = 0; i < 3; i++)
{
for(z = 0; z < 3; z++)
{
arr[i][z] = i*z+1;
}
}
WriteData();
}
//+------------------------------------------------------------------+
void WriteData()
{
//--- откроем файл
ResetLastError();
handle=FileOpen(path, FILE_READ|FILE_WRITE|FILE_BIN);
if(handle!=INVALID_HANDLE)
{
//--- запишем данные массива в конец файла
FileSeek(handle,0,SEEK_END);
FileWriteArray(handle,arr);
//--- закрываем файл
FileClose(handle);
}
else
Print("Failed to open the file, error ",GetLastError());
}
Leia o código do roteiro.
//| ReadArray.mq5 |
//| Viktorov |
//| v4forex@yandex.ru |
//+------------------------------------------------------------------+
#property copyright "Viktorov"
#property link "v4forex@yandex.ru"
#property version "1.00"
//+------------------------------------------------------------------+
//| Script program start function |
//+------------------------------------------------------------------+
string InpFileName = "data.bin";
string InpDirectoryName = "SomeFolder";
string path=InpDirectoryName+"//"+InpFileName;
int handle;
void OnStart()
{
int arr[3][3];
int i = 0, z = 0;
handle = FileOpen(path, FILE_READ|FILE_WRITE|FILE_BIN);
FileReadArray(handle, arr);
for(i = 0; i < 3; i++)
{
for(z = 0; z < 3; z++)
{
Print("arr[", i, "][", z, "]", arr[i][z]);
}
}
}
//+------------------------------------------------------------------+
e isto é o que está impresso.
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[0][1]1
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[0][2]1
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[1][0]1
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[1][1]2
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[1][2]3
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[2][0]1
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[2][1]3
2017.01.09 12:46:22.979 ReadArray (EURUSD,M1) arr[2][2]5
Portanto, você não precisa de nenhum artifício de conversão. Você só precisa definir as mesmas matrizes desde o início.
Não se importe que seja mql5, da mesma forma que funcionaria em mql4.
Em seguida, leia e imprima o que você tem. Se você vir 1 e 3, significa que o problema está no preenchimento da matriz.
Honestamente nem sei o que aconteceu, mas tudo funcionou, só tenho que acrescentar uma linha a cada nova barra, espero que não haja dúvidas))))
Obrigado!
Olá a todos!!! Por favor, me avise, eu quero baixar um MT4 limpo, mas não consigo encontrar em nenhum lugar, a partir das bombas fora do local apenas o MT5. Por favor, me dê a última construção. Muito obrigado!!!
Olá a todos!!! Por favor, me avise, eu quero baixar um MT4 limpo, mas não consigo encontrar em nenhum lugar, a partir das bombas fora do local apenas o MT5. Por favor, me dê a última construção. Muito obrigado!!!
Sua única diferença é o logotipo no atalho.
Abrir uma conta em outra empresa de corretagem. Ou outro tipo de conta. Se um mercado está ou não disponível depende inteiramente da conta
Abrir uma conta em outra empresa de corretagem. Ou outro tipo de conta. Se o mercado não funciona, depende da conta.
Tentei três CDs e diferentes contas, o mercado ainda não funciona(