Hallo Andreas,
diesen Code habe ich aus dem Netz .Stammt nicht aus meiner Feder.
PHP-Code:
//------------------------------------------------------------------
#property copyright "www.forex-tsd.com"
#property link "www.forex-tsd.com"
//------------------------------------------------------------------
#property indicator_chart_window
//
//
//
//
//
extern string FileName = "Ticks.csv";
extern bool SaveVolume = false;
int fileHandle;
//+------------------------------------------------------------------+
//| |
//+------------------------------------------------------------------+
//
//
int OnInit() { fileHandle = FileOpen(Symbol()+" - "+FileName,FILE_WRITE|FILE_SHARE_READ|FILE_ANSI|FILE_CSV); return(0); }
void OnDeinit(const int reason) { FileClose(fileHandle);}
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &Time[],
const double &Open[], const double &High[], const double &Low[], const double &Close[],
const long &TickVolume[], const long &Volume[], const int &Spread[])
{
if (fileHandle <0)
{
static bool alerted = false; //<--------- Welchen Sinn das haben
if (!alerted) //<-------- soll ist mir aber schleierhaft
{
Alert("File : "+Symbol()+" - "+FileName+" could not be opened"); alerted = true;
}
return(0);
}
if (FileSize(fileHandle) == 0)
FileWriteString(fileHandle,"date and time,bid,ask,volume\n");
if (SaveVolume)
FileWriteString(fileHandle,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)+","+DoubleToString(TickVolume[rates_total-1],0)+"\n");
else FileWriteString(fileHandle,TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)+","+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)+"\n");
FileFlush(fileHandle);
return(0);
}
Du müsstest dann nur noch den Spread berechnen mit:
PHP-Code:
(ask - bid) / Point
Gruß Christian