You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
...
I think (since I can not see your EA that writes the values to csv file) that you are missing one FileFlush(). In cases when you want to make changes in the file accessible by "others" immediately without closing the file (which implicitly uses flush ) you should always flush the changes to disk
regards
mladen
Hi,
I am writing an EA which is working with CSV-Files.
For testing I put my CSV Files in the following folder:
/tester/files
Here is only a small part from my EA:
int handle = 0;
int Long = 0;
handle=FileOpen("LongMarket.csv",FILE_CSV|FILE_READ,';');
if (handle > 0)
{
Long= FileReadNumber(handle);
FileClose(handle);
}
Print("LongMarket = ", Long);
Print("Long handle = ", handle);In my EA I read the CSV-Files and then I write some integers down.
Now when I do my test and read in the journal the "Print"-messages, I often get old integers which aren't writen in the CSV-Files anymore!!
For example:
First there is written 3 and my EA ist working and writes the 0 into the file,
I can only see the 3 in that CSV-File!!
When I clear that CSV-File and put a new CSV-File with 3 in that " /tester/files"-Folder, I can only read the 0 from the test before!!!! But I can't find, where the EA reads the 0!!!
I am going crazy!!!!!
I hope you can understand my question and give me a tipp!!Someone can help me to add a warning features?
I would like to add an alarm function of this indicator, color alarm. I have tried for a long time, use the "if alarm", but never without success. Someone can help me? Thank you very much! ~ My English is not good so sorry.
#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 ForestGreen
#property indicator_color2 Red
#property indicator_color3 Black
#property indicator_color4 Black
//---- input parameters
extern int FastClosePeriod=13;
extern int FastCloseShift=0;
extern int FastOpenPeriod=34;
extern int FastOpenShift=0;
extern int SlowClosePeriod=34;
extern int SlowCloseShift=0;
extern int SlowOpenPeriod=62;
extern int SlowOpenShift=0;
//---- indicator buffers
double ExtBlueBuffer[];
double ExtRedBuffer[];
double ExtDarkVioletBuffer[];
double ExtBlackBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- line shifts when drawing
SetIndexShift(0,FastCloseShift);
SetIndexShift(1,FastOpenShift);
SetIndexShift(2,SlowCloseShift);
SetIndexShift(3,SlowOpenShift);
//---- first positions skipped when drawing
SetIndexDrawBegin(0,FastCloseShift+FastClosePeriod);
SetIndexDrawBegin(1,FastOpenShift+FastOpenPeriod);
SetIndexDrawBegin(2,SlowCloseShift+SlowClosePeriod);
SetIndexDrawBegin(3,SlowOpenShift+SlowOpenPeriod);
//---- 3 indicator buffers mapping
SetIndexBuffer(0,ExtBlueBuffer);
SetIndexBuffer(1,ExtRedBuffer);
SetIndexBuffer(2,ExtDarkVioletBuffer);
SetIndexBuffer(3,ExtBlackBuffer);
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM,0,2);
SetIndexStyle(1,DRAW_HISTOGRAM,0,2);
SetIndexStyle(2,DRAW_NONE,0,2);
SetIndexStyle(3,DRAW_NONE,0,2);
//---- index labels
SetIndexLabel(0,"FastClose");
SetIndexLabel(1,"FastOpen");
SetIndexLabel(2,"SlowClose");
SetIndexLabel(3,"SlowOpen");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| 9Squared Trader |
//+------------------------------------------------------------------+
int start()
{
int limit;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
//---- main loop
for(int i=0; i<limit; i++)
{
//---- ma_shift set to 0 because SetIndexShift called abowe
ExtBlueBuffer=iMA(NULL,0,FastClosePeriod,0,MODE_EMA,PRICE_CLOSE,i);
ExtRedBuffer=iMA(NULL,0,FastOpenPeriod,0,MODE_EMA,PRICE_OPEN,i);
ExtDarkVioletBuffer=iMA(NULL,0,SlowClosePeriod,0,MODE_EMA,PRICE_OPEN,i);
ExtBlackBuffer=iMA(NULL,0,SlowOpenPeriod,0,MODE_EMA,PRICE_MEDIAN,i);
}
//---- done
return(0);
Here You go. I made this real quick, and yes, it can be done.
Have a look at the attached example.mq4 for coding example.
Also included is a screen shot with comments, so you can see that the RSI values are being saved tick by tick in the array.Hi wolfe,
Thank you veyr much for your timer and efforts. I will try this
regards,
MSV
Bollinger Band
Hi,
Can somebody help me on the Bollinger Band fomula (20period dev 2 on close) into Excel spreadsheet. Thank you in advance.
Hi guys !!
I need to open only "one buy and sell "order "per day" in my EA, please, how is the code to do this?
Hi guys !! I need to open only "one buy and sell "order "per day" in my EA, please, how is the code to do this?
I believe you need to loop through all the closed orders and check each for its symbol and close time...take the one that matches Symbol() and has the latest close time. then add 24 hours and use that in a variable to test current time and open trade when it reaches last order + 24 hours
Or a simpler way to do it would be to just use the TimeDayOfYear function and check the last closed order with matching symbol and magic number. Just make sure it's not the same day of year as today.
Take a look in the help file for definition and use of TimeDayOfYear
Regards
Lux