This is an Indicator that looks at the trend direction, now I want it to post the results to a .csv file. It manages to create a .csv file but does not post the data , can anyone see the problem here. The Indicator is working perfectly its probably something to do with the write function , I have marked all this codeing in orange.
Thanks in advance !!
#property copyright "Xlr8er"
#property link ""
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 Red
//---- input parameters
extern int CountBars=400;
extern int SSP=7;
extern double Kmin=1.6;
extern double Kmax=50.6;
extern bool gAlert=True; // Switch to allow alerts
extern string ONE = "";
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
bool gSellAlertGiven=false; // Used to stop constant alerts
bool gBuyAlertGiven=false; // Used to stop constant alerts
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_LINE,0,1,DarkOrange);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE,0,1,Red);
SetIndexBuffer(1,ExtMapBuffer2);
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int Handle, // File descriptor
Qnt_Symb; // Number of recorded symbols
string File_Name="EURUSD.csv"; // File name
string Erray[1,1];
Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//File opening
if(Handle==-1) // File opening fails
{
Alert("An error while opening the file. ",// Error message
"May be the file is busy by the other applictiom");
PlaySound("Bzrrr.wav"); // Sound accompaniment
return; // Exir start()
}
//--------------------------------------------------------------- 6 --
for(int c=0; c<=4; c++) // Cycle throughout the array
{
if(StringLen(Erray[c,0])== 0 || // If the value of the first or..
StringLen(Erray[c,1])== 0) // ..second variable is not entered
break; // .. then exit the cycle
Qnt_Symb=FileWrite(Handle,Erray[c,0],Erray[c,1]);//Writing to the file
if(Qnt_Symb < 0) // If failed
{
Alert("Error writing to the file",GetLastError());// Message
PlaySound("Bzrrr.wav"); // Sound accompaniment
FileClose( Handle ); // File closing
return; // Exit start()
}
}
//--------------------------------------------------------------- 7 --
FileClose( Handle ); // File closing
Alert("The ",File_Name," file created.");// Message
PlaySound("Bulk.wav"); // Sound accompaniment
//---------------------------------------------------------------
int i,
i2,
loopbegin,
counted_bars=IndicatorCounted();
double SsMax,
SsMin,
K,
val1,
val2,
smin,
smax,
price;
if (CountBars>=Bars){
CountBars=Bars;
}
SetIndexDrawBegin(0,Bars-CountBars+SSP);
SetIndexDrawBegin(1,Bars-CountBars+SSP);
if(Bars<=SSP+1){
return(0);
}
if(Bars<=SSP+1){
return(0);
}
//---- initial zero
if(counted_bars<SSP+1){
for(i=1;i<=SSP;i++) ExtMapBuffer1[CountBars-i]=0.0;
for(i=1;i<=SSP;i++) ExtMapBuffer2[CountBars-i]=0.0;
}
//+++++++-SSP
for(i=CountBars-SSP;i>=0;i--) {
SsMax = High[Highest(NULL,0,MODE_HIGH,SSP,i-SSP+1)];
SsMin = Low[Lowest(NULL,0,MODE_LOW,SSP,i-SSP+1)];
smin = SsMin-(SsMax-SsMin)*Kmin/100;
smax = SsMax-(SsMax-SsMin)*Kmax/100;
ExtMapBuffer1[i-SSP+6]=smax;
ExtMapBuffer2[i-SSP-1]=smax;
val1 = ExtMapBuffer1[0];
val2 = ExtMapBuffer2[0];
if (val1 > val2){
ONE = "buy";
Print (ONE);
Comment("buy",val1);
if( gAlert==true && gBuyAlertGiven==false){
PlaySound("alert.wav");
Alert("Buy signal at " + DoubleToStr(val1, 4) + " on " + Period() + " minute chart");
gBuyAlertGiven=true;
gSellAlertGiven=false;
Erray[0,0] = ONE ;
Qnt_Symb=FileWrite(Handle,Erray[0,0]);
}
}
if (val1 < val2){
ONE = "sell";
Print (ONE);
Comment("sell",val2);
if(gAlert==true && gSellAlertGiven==false){
PlaySound("alert.wav");
Alert("Sell signal at " + DoubleToStr(val2, 4) + " on " + Period()+ " minute chart");
gBuyAlertGiven=false;
gSellAlertGiven=true;
Erray[0,0] = ONE ;
Qnt_Symb=FileWrite(Handle,Erray[0,0]);
}
}
}
return(0);
}
Thanks again.
Thanks in advance !!
#property copyright "Xlr8er"
#property link ""
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Yellow
#property indicator_color2 Red
//---- input parameters
extern int CountBars=400;
extern int SSP=7;
extern double Kmin=1.6;
extern double Kmax=50.6;
extern bool gAlert=True; // Switch to allow alerts
extern string ONE = "";
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
bool gSellAlertGiven=false; // Used to stop constant alerts
bool gBuyAlertGiven=false; // Used to stop constant alerts
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_LINE,0,1,DarkOrange);
SetIndexBuffer(0,ExtMapBuffer1);
SetIndexStyle(1,DRAW_LINE,0,1,Red);
SetIndexBuffer(1,ExtMapBuffer2);
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
int Handle, // File descriptor
Qnt_Symb; // Number of recorded symbols
string File_Name="EURUSD.csv"; // File name
string Erray[1,1];
Handle=FileOpen(File_Name,FILE_CSV|FILE_WRITE,";");//File opening
if(Handle==-1) // File opening fails
{
Alert("An error while opening the file. ",// Error message
"May be the file is busy by the other applictiom");
PlaySound("Bzrrr.wav"); // Sound accompaniment
return; // Exir start()
}
//--------------------------------------------------------------- 6 --
for(int c=0; c<=4; c++) // Cycle throughout the array
{
if(StringLen(Erray[c,0])== 0 || // If the value of the first or..
StringLen(Erray[c,1])== 0) // ..second variable is not entered
break; // .. then exit the cycle
Qnt_Symb=FileWrite(Handle,Erray[c,0],Erray[c,1]);//Writing to the file
if(Qnt_Symb < 0) // If failed
{
Alert("Error writing to the file",GetLastError());// Message
PlaySound("Bzrrr.wav"); // Sound accompaniment
FileClose( Handle ); // File closing
return; // Exit start()
}
}
//--------------------------------------------------------------- 7 --
FileClose( Handle ); // File closing
Alert("The ",File_Name," file created.");// Message
PlaySound("Bulk.wav"); // Sound accompaniment
//---------------------------------------------------------------
int i,
i2,
loopbegin,
counted_bars=IndicatorCounted();
double SsMax,
SsMin,
K,
val1,
val2,
smin,
smax,
price;
if (CountBars>=Bars){
CountBars=Bars;
}
SetIndexDrawBegin(0,Bars-CountBars+SSP);
SetIndexDrawBegin(1,Bars-CountBars+SSP);
if(Bars<=SSP+1){
return(0);
}
if(Bars<=SSP+1){
return(0);
}
//---- initial zero
if(counted_bars<SSP+1){
for(i=1;i<=SSP;i++) ExtMapBuffer1[CountBars-i]=0.0;
for(i=1;i<=SSP;i++) ExtMapBuffer2[CountBars-i]=0.0;
}
//+++++++-SSP
for(i=CountBars-SSP;i>=0;i--) {
SsMax = High[Highest(NULL,0,MODE_HIGH,SSP,i-SSP+1)];
SsMin = Low[Lowest(NULL,0,MODE_LOW,SSP,i-SSP+1)];
smin = SsMin-(SsMax-SsMin)*Kmin/100;
smax = SsMax-(SsMax-SsMin)*Kmax/100;
ExtMapBuffer1[i-SSP+6]=smax;
ExtMapBuffer2[i-SSP-1]=smax;
val1 = ExtMapBuffer1[0];
val2 = ExtMapBuffer2[0];
if (val1 > val2){
ONE = "buy";
Print (ONE);
Comment("buy",val1);
if( gAlert==true && gBuyAlertGiven==false){
PlaySound("alert.wav");
Alert("Buy signal at " + DoubleToStr(val1, 4) + " on " + Period() + " minute chart");
gBuyAlertGiven=true;
gSellAlertGiven=false;
Erray[0,0] = ONE ;
Qnt_Symb=FileWrite(Handle,Erray[0,0]);
}
}
if (val1 < val2){
ONE = "sell";
Print (ONE);
Comment("sell",val2);
if(gAlert==true && gSellAlertGiven==false){
PlaySound("alert.wav");
Alert("Sell signal at " + DoubleToStr(val2, 4) + " on " + Period()+ " minute chart");
gBuyAlertGiven=false;
gSellAlertGiven=true;
Erray[0,0] = ONE ;
Qnt_Symb=FileWrite(Handle,Erray[0,0]);
}
}
}
return(0);
}
Thanks again.