For example:
Pair: EURUSD
Filename: EURUSD.txt
1.EA check sell price of EURUSD
2.write it to a txt file
3.repeat from step 1. (real-time = fast response)
In file can not be other as price only. For example "1.3520". No more.
Hi georgo,
Please take a look at this example from the Portuguese forum:
Fórum de negociação, sistemas de negociação automatizados e testes de estratégias de negociação
Metodologia de teste de qualidade de dados
Malacarne, 2013.12.15 15:41
Senhores, obrigado pelas contribuições! Após as sugestões de vocês, vou enviar em anexo o código modificado do script para gravação de ticks.
Entretanto, após analisar o Expert Advisor do Figurelli, tenho algumas críticas a fazer:
1) vi que o mesmo faz a contagem de ticks com plotagem visual das informações, mas não gera logs para futuras comparações; talvez fosse interessante fazer a escrita dos dados recebidos pelo menos a cada um minuto no disco (o que acredito não deva impactar a performance do expert advisor) ou, na pior das hipóteses, ao término do EA.
2) outra crítica que faço é o fato de que o mesmo apenas analisar a quantidade de ticks recebidos, mas não faz uma análise da qualidade dos mesmos; vi que é feito um cálculo de média para os ticks, cuja finalidade para ser sincero ainda não compreendi; lembrando que ao fazer o cálculo da média perde-se muito a qualidade da informação em si...
No mais, o intuito desse post é justamente esse: gerar uma metodologia que tenha um consenso mínimo entre os membros do fórum para que possamos, de forma conjunta, analisar a qualidade dos dados que estamos recebendo e utilizando no terminal MetaTrader.
Segue abaixo o código modificado e o arquivo.
#property version "1.001" #property description "Script usado para gravar ticks de um ativo." //╔══════════════════════════════════════════════════════════════════╗ //║ GLOBAL VARIABLES ----------------------------------------------- ║ //╚══════════════════════════════════════════════════════════════════╝ int filehandle, SystemTime[4], wMilliSec; datetime tick_time; double tick_ask, tick_bid, tick_last; ulong tick_volume; string filename, time_stamp, mls; //╔══════════════════════════════════════════════════════════════════╗ //║ ON INIT -------------------------------------------------------- ║ //╚══════════════════════════════════════════════════════════════════╝ int OnInit() { //--- filename = TimeToString(TimeLocal(),TIME_DATE)+"_"+_Symbol+".txt"; filehandle = FileOpen(filename,FILE_WRITE|FILE_TXT,'\t'); //--- if (filehandle!=INVALID_HANDLE) { FileWrite(filehandle,"Time","Symbol","Ask","Bid","Last","Volume"); Print ("Início da exportação."); } else Print("Erro de gerenciamento de arquivo! Erro = ",GetLastError()); //--- return(0); } //╔══════════════════════════════════════════════════════════════════╗ //║ ON TICK -------------------------------------------------------- ║ //╚══════════════════════════════════════════════════════════════════╝ void OnTick() { MqlTick last_tick; if(SymbolInfoTick(_Symbol,last_tick)) { //--- Definindo os ticks tick_time = last_tick.time; tick_ask = last_tick.ask; tick_bid = last_tick.bid; tick_last = last_tick.last; tick_volume = last_tick.volume; } //--- Gravando os ticks if(filehandle!=INVALID_HANDLE) { //Print(tick_time," ",tick_ask," ",tick_bid," ",tick_last," ",tick_volume); FileWrite(filehandle, tick_time, _Symbol, tick_ask, tick_bid, tick_last, tick_volume); } else Print("Gravação de TXT falhou! Erro = ",GetLastError()); }
the following is my write log function,hope that be helpful
adapt to your requirement:
1.remove baseinfo
2.pass the price as WriteToLogFile's parameters
3.the txt name is something like mylog_2014_06_18.txt ,you can change if you like
void WriteToLogFile(string logstring) { int handle; string filedatestr = "" + TimeYear(TimeCurrent()) + "_" + TimeMonth(TimeCurrent()) + "_" + TimeDay(TimeCurrent()) + ""; handle = FileOpen("mylog_" + filedatestr + ".txt", FILE_READ|FILE_WRITE); string baseinfo = TimeToStr(TimeCurrent(),TIME_DATE|TIME_SECONDS); baseinfo = baseinfo + " Ask:" + Ask + " Bid:" + Bid + " Balance:" + AccountBalance() + " Equity:" + AccountEquity() + "\nMargin:" + AccountMargin() + " FreeMargin:" + AccountFreeMargin() + "\n"; if(handle > 0) { FileSeek(handle, 0, SEEK_END); FileWrite(handle,baseinfo,logstring); FileClose(handle); } }
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
You agree to website policy and terms of use
Please, anybody know write code EA - "write current price to file"?
For example:
Pair: EURUSD
Filename: EURUSD.txt
1.EA check sell price of EURUSD
2.write it to a txt file
3.repeat from step 1. (real-time = fast response)
In file can not be other as price only. For example "1.3520". No more.
THANK YOU! Georgo
(sorry for my english)