Tive uma idéia para tirar um indicador dos dados do arquivo.
Eu peguei um exemplo do livro didático. Reformulei o roteiro para adequá-lo às minhas necessidades:
int start() // Спец. функция start
{
//--------------------------------------------------------------- 2 --int Handle, // Файловый описатель
shift,Text; // Стиль вертикальной линииstring File_Name="News.csv", // Имя файла
Obj_Name, // Bмя объекта
Instr, // Название валюты
One,Two, // 1я и 2я чать названия инстр.
Str_DtTm; // Дата и время события(строка)datetime Dat_DtTm; // Дата и время события(дата)//--------------------------------------------------------------- 3 --
Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файлаif(Handle<0) // Неудача при открытии файла
{
if(GetLastError()==4103) // Если файла не существует,..Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера else// При любой другой ошибке..Alert("Ошибка при открытии файла ",File_Name);//..такое сообщPlaySound("Bzrrr.wav"); // Звуковое сопровождениеreturn(0); // Выход из start()
}
//--------------------------------------------------------------- 4 --while(FileIsEnding(Handle)==false)// До тех пор, пока файловый ..
{ // ..указатель не в конце файла//--------------------------------------------------------- 5 --
Str_DtTm =FileReadString(Handle);// Дата и время события(дата)
Text =FileReadString(Handle);// Текст описания события//--------------------------------------------------------- 6 --
Dat_DtTm =StrToTime(Str_DtTm); // Преобразование типа данных//--------------------------------------------------------- 7 --
shift=iBarShift(NULL,0,Dat_DtTm);
Alert("Время=",TimeToString(Time[shift]),"Text=",Text);
if(FileIsEnding(Handle)==true) // Файловый указатель в концеbreak; // Выход из чтения и рисования
}
//--------------------------------------------------------------- 8 --FileClose( Handle ); // Закрываем файлreturn(0); // Выход из start()
}
//--------------------------------------------------------------- 9 --
Há um grande arquivo com datas neste formulário "20141231". Para converter a string para o formato dedata e hora, você precisa de pontos"YYYY.MM.DD" entre o ano, mês e número.
Obrigado, eu já resolvi isso. Converteu o arquivo onde ele foi originalmente separado por vírgulas. Mudou as vírgulas para pontos e depois acrescentou uma segunda coluna, todas com "uniCSVed".
Agora vou saber como fazê-lo de forma programática.
Agora me deparo com outra tarefa titânica: como cumprir o indicador com estes dados? Fiz um roteiro que funciona corretamente.
Mas no indicador, para não ter freios, preciso lembrar de alguma forma a linha em que na última iteração dos dados foi obtida.
Obrigado, eu já resolvi isso. Converteu o arquivo onde ele foi originalmente separado por vírgulas. Mudou as vírgulas para pontos e depois acrescentou uma segunda coluna, todas com "uniCSVed".
Agora vou saber como fazê-lo de forma programática.
Agora me deparo com outra tarefa titânica: como cumprir o indicador com estes dados? Fiz um roteiro que funciona corretamente.
Mas no indicador, para não ter freios, preciso lembrar de alguma forma a linha em que na última iteração dos dados foi obtida.
Provavelmente, isso é possível com FileTell(Retorna a posição atual do ponteiro de arquivo do arquivo aberto correspondente) e FileSeek(Move a posição do ponteiro de arquivo por número especificado de bytes relativamente à posição especificada).
evillive: É provavelmente possível com FileTell (Retorna a posição atual do ponteiro de arquivo do arquivo aberto correspondente) e FileSeek (Move a posição do ponteiro de arquivo pelo número especificado de bytes em relação à posição especificada).
Obrigado! Eu também prestei atenção a estas funções. Hátambém oFileIsLineEnding. Pensarei mais sobre como fazer isso.
Como este é um tópico para perguntas de principiantes, vou perguntar o meu...
1. Existe um software API para download de cotações? O ideal é um pedido get/post.
2. Se não existe tal coisa para acesso amplo, quais são as plataformas mais fáceis de analisar e podem fornecer acesso em tempo real a citações uma vez por segundo.
3. Você pode escrever automação em qualquer coisa, é claro. Mas eu ainda gostaria de saber quais idiomas e ferramentas são os mais convenientes e populares?
Por exemplo, aqui https://iqoption.com/us/options/turbo (se alguém estiver logado ali) é um gráfico em tempo real muito bom. Idealmente eu gostaria de analisá-lo, mas o FireBug não mostra onde o roteiro vai para obter as citações. Há um ponto no gráfico a cada segundo.
Você pode ler a ajuda, está tudo aí, com exemplos.
Tive uma idéia para tirar um indicador dos dados do arquivo.
Eu peguei um exemplo do livro didático. Reformulei o roteiro para adequá-lo às minhas necessidades:
A linha"Alerta" pode ser removida.
A lógica é obter a data no indicador e compará-la com o arquivo e atribuir o valor ao buffer em caso de coincidência.
Mas acho que se começarmos a procurar cada barra desde o início do arquivo, onde os dados já são levados em conta, será bastante caro.
A questão é como fixar as linhas de arquivo processadas no indicador e começar a procurar por elas?
Há um grande arquivo com datas neste formulário "20141231". Para converter a string para o formato dedata e hora, você precisa de pontos"YYYY.MM.DD" entre o ano, mês e número.
Como isso pode ser feito?
Obrigado, eu já resolvi isso. Converteu o arquivo onde ele foi originalmente separado por vírgulas. Mudou as vírgulas para pontos e depois acrescentou uma segunda coluna, todas com "uniCSVed".
Agora vou saber como fazê-lo de forma programática.
Agora me deparo com outra tarefa titânica: como cumprir o indicador com estes dados? Fiz um roteiro que funciona corretamente.
Mas no indicador, para não ter freios, preciso lembrar de alguma forma a linha em que na última iteração dos dados foi obtida.
Obrigado, eu já resolvi isso. Converteu o arquivo onde ele foi originalmente separado por vírgulas. Mudou as vírgulas para pontos e depois acrescentou uma segunda coluna, todas com "uniCSVed".
Agora vou saber como fazê-lo de forma programática.
Agora me deparo com outra tarefa titânica: como cumprir o indicador com estes dados? Fiz um roteiro que funciona corretamente.
Mas no indicador, para não ter freios, preciso lembrar de alguma forma a linha em que na última iteração dos dados foi obtida.
É provavelmente possível com FileTell (Retorna a posição atual do ponteiro de arquivo do arquivo aberto correspondente) e FileSeek (Move a posição do ponteiro de arquivo pelo número especificado de bytes em relação à posição especificada).
Obrigado! Eu também prestei atenção a estas funções. Hátambém oFileIsLineEnding. Pensarei mais sobre como fazer isso.
Como definimos Ticket_first_order?
Atribuir o valor de OrderTicket() a uma variável. Por exemplo: int Ticket= OrderTicket(). E depois use este valor na OrderSelect.
OrderSelect(Ticket,SELECT_BY_TICKET); .
Podemos fazer isso de outra forma. Não vamos definir o bilhete, apenas encontramos o pedido tentando (SELECT_BY_POS).
Nós o obteremos:
string Symb=Symbol();
for(i=0;i<=OrdersTotal() ;i++)
{
if(OrderSelect(i,SELECT_BY_POS)==true)
{
if(OrderSymbol()!=Symb)continue;
if(OrderType()==OP_BUY)
{
break;
}
}
}
if(OrderOpenPrice()+10*Point<=Ask)
OrderSend(Symbol(),OP_BUY,Lot,Ask,10,Ask-SL*Point,Ask+TP*Point,NULL,Magic,0,Green);
Atribuir o valor de OrderTicket() a uma variável. Por exemplo: int Ticket= OrderTicket(). E depois use este valor na OrderSelect.
OrderSelect(Ticket,SELECT_BY_TICKET); .
Podemos fazer isso de outra forma. Não vamos definir um bilhete, mas apenas encontrar o pedido tentando (SELECT_BY_POS).
Isso vai dar certo:
Como este é um tópico para perguntas de principiantes, vou perguntar o meu...
1. Existe um software API para download de cotações? O ideal é um pedido get/post.
2. Se não existe tal coisa para acesso amplo, quais são as plataformas mais fáceis de analisar e podem fornecer acesso em tempo real a citações uma vez por segundo.
3. Você pode escrever automação em qualquer coisa, é claro. Mas eu ainda gostaria de saber quais idiomas e ferramentas são os mais convenientes e populares?