chv:
Очень признателен, за быстрый ответ.Когда открываете FileOpen, указывайте тип файла: бинари или текстовый.
int handle; handle=FileOpen("my_data.csv",FILE_CSV|FILE_READ,';'); if(handle<1) { Print("Файл my_data.dat не обнаружен, последняя ошибка ", GetLastError()); return(false); }
Но и теперь данные не выводятся в файл, файл просто не появляется. ..
Может быть я где-то в самой програме допустил "смысловую" ошибку?
Какие ошибки выводятся в лог эксперта. Что говорит GetLastError?
Где это можно посмотреть?
stringo:
15:43:44 Script 2564 USDCAD,H1: loaded successfully
Лог выводится в файл terminal_direxpertslogsYYYYMMDD.log и во вкладку Experts терминала
GetLastError вызывается после вызова функции, чью работу Вы хотите проконтролировать
15:43:44 Script 2564 USDCAD,H1: removed
extern datetime BeginDate = D'2005.11.11'; extern datetime EndDate = D'2005.12.21'; #property indicator_buffers 2 double ExtMapBuffer1[]; double ExtMapBuffer2[]; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ void start() { int i, b=0, bb=0, eb; string comm, st; double cc8, cc14, cc80, cc140, Del, Del0, Sum; int M, N; ///переменные могут принимать только целые значения cc8=0; cc14=0; cc80=0; cc140=0; Del=0; Del0=0; Sum=0; string fn="Verojatnost"+Symbol()+Period()+" "+ TimeToStr(BeginDate, TIME_DATE)+"-"+ TimeToStr(EndDate, TIME_DATE)+".csv"; for (i=Bars; i>0; i--) { if (Time[i]>=BeginDate && Time[i]<=EndDate) { if (bb==0) bb=i; // фиксируем номер первого бара cc8=iMA(NULL,0,8,0,MODE_SMMA,PRICE_CLOSE,i); cc14=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,i); cc80=iMA(NULL,0,8,-5,MODE_SMMA,PRICE_CLOSE,i); cc140=iMA(NULL,0,14,-5,MODE_SMMA,PRICE_CLOSE,i); Del=cc8-cc14; Del0=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,i-5)-cc140; if(Del<0.00005 && Del>-0.00005 && Del0>0) /// Если скользящая средняя 8-ми пересикает /// 14-ти и точка пересечения скользящих со смещением ниже { if(Open[i+1]-Close[i+1]<Open[i]-Close[i]) /// проверяем следующая свеча после пересечения /// белая или черная (должна черная) M++; else N++; ExtMapBuffer1[i] = M; ExtMapBuffer2[i] = N; b++; eb=i; // фиксируем номер последнего бара } } Sum=M+N; st=M/Sum; WritingLineInFile(fn, st); } //+------------------------------------------------------------------+ //| Запись строки в файл | //+------------------------------------------------------------------+ void WritingLineInFile(string FileName, string text) { int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " "); if (file_handle>0) { FileSeek(file_handle, 0, SEEK_END); FileWrite(file_handle, text); FileClose(file_handle); } } //+------------------------------------------------------------------+
Почему для начала не написать так?
if (Time[i]>=BeginDate && Time[i]<=EndDate) { if(GetLastError()==0) Print("Гляди ка, считает чего-то все таки !?"); else Print("Какая то фигня на баре ",i); if (bb==0) bb=i; // фиксируем номер первого бара
stringo:
15:45:29 2564 USDCAD,H1: loaded successfullyYura187 писал (а):
Я же сказал, что надо смотреть лог эксперта terminal_direxpertslogsYYYYMMDD.log, а не лог терминала 15:43:44 Script 2564 USDCAD,H1: loaded successfully
15:43:44 Script 2564 USDCAD,H1: removed
15:43:44 Script 2564 USDCAD,H1: removed
15:45:29 2564 USDCAD,H1: zero divide
15:45:29 2564 USDCAD,H1: removed
15:45:33 2564 USDCAD,H1: loaded successfully
15:45:33 2564 USDCAD,H1: zero divide
15:45:33 2564 USDCAD,H1: removed
Я так понимаю, что нет значение которое надо выводить, так что ли?
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пишу програму для расчета вероятностей, и вывода значения вероятности в файл!
Сам только начал осваивать этот язык, поэтому опыта явно не хватает!
Синтаксических ошибок в программе нет, но значение вероятности она не выводит!
В чем причина не могу понять!
Может я что-то не так сделал. Может у кого есть идеи по улучшению программы.
Буду признателен за критику, идеи и предложения.С уважением Юрий.
extern datetime BeginDate = D'2005.11.11';
extern datetime EndDate = D'2005.12.21';
#property indicator_buffers 2
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//+------------------------------------------------------------------+
//| script program start function |
//+------------------------------------------------------------------+
void start()
{
int i, b=0, bb=0, eb;
string comm, st;
double cc8, cc14, cc80, cc140, Del, Del0, Sum;
int M, N; ///переменные могут принимать только целые значения
cc8=0;
cc14=0;
cc80=0;
cc140=0;
Del=0;
Del0=0;
Sum=0;
string fn="Verojatnost"+Symbol()+Period()+" "+
TimeToStr(BeginDate, TIME_DATE)+"-"+
TimeToStr(EndDate, TIME_DATE)+".csv";
for (i=Bars; i>0; i--) {
if (Time[i]>=BeginDate && Time[i]<=EndDate) {
if (bb==0) bb=i; // фиксируем номер первого бара
cc8=iMA(NULL,0,8,0,MODE_SMMA,PRICE_CLOSE,i);
cc14=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,i);
cc80=iMA(NULL,0,8,-5,MODE_SMMA,PRICE_CLOSE,i);
cc140=iMA(NULL,0,14,-5,MODE_SMMA,PRICE_CLOSE,i);
Del=cc8-cc14;
Del0=iMA(NULL,0,14,0,MODE_SMMA,PRICE_CLOSE,i-5)-cc140;
if(Del<0.00005 && Del>-0.00005 && Del0>0) /// Если скользящая средняя 8-ми пересикает
/// 14-ти и точка пересечения скользящих со смещением ниже
{
if(Open[i+1]-Close[i+1]<Open[i]-Close[i]) /// проверяем следующая свеча после пересечения
/// белая или черная (должна черная)
M++;
else N++;
ExtMapBuffer1[i] = M;
ExtMapBuffer2[i] = N;
b++;
eb=i; // фиксируем номер последнего бара
}
}
Sum=M+N;
st=M/Sum;
WritingLineInFile(fn, st);
}
//+------------------------------------------------------------------+
//| Запись строки в файл |
//+------------------------------------------------------------------+
void WritingLineInFile(string FileName, string text) {
int file_handle=FileOpen(FileName, FILE_READ|FILE_WRITE, " ");
if (file_handle>0) {
FileSeek(file_handle, 0, SEEK_END);
FileWrite(file_handle, text);
FileClose(file_handle);
}
}
//+------------------------------------------------------------------+
------------------------------------
Я не волшебник, я только учусь...