Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 280

 
novator:
Добрый вечер, а можно использовать несколько меджиков в одном советнике?

Добрый.

Можно.

 
Integer:

О как завелся. И завелся то после того, как открытым текстом объявил, что не нужны мне эти исходниики. Не нужны, не вижу в них никакой ценности, это они для тебя Вадими предмет великой гордости и только. Еще раз напоминаю - просто забавно, как ты в них вцепился... и несешь тут высоко подняв над головой как транспарант.


Дмитрий, харэ Вам уже ругаться с Вадимом. Лучше б наставили на путь истинный ищущих :) Я вон с библиотеками мудохаюсь уже пару дней. Мой вопрос куда-то всё дальше и дальше уходит под давлением этих реплик..

Это ж ветка не для мерения пиписками, а для обсуждения вопросов. Кто из Вас умнее это уже не тут решать.

 
hoz:


Дмитрий, харэ Вам уже ругаться с Вадимом. Лучше б наставили на путь истинный ищущих :) Я вон с библиотеками мудохаюсь уже пару дней. Мой вопрос куда-то всё дальше и дальше уходит под давлением этих реплик..

Это ж ветка не для мерения пиписками, а для обсуждения вопросов. Кто из Вас умнее это уже не тут решать.


Видел. Хорошо сформулированный вопрос, это пол решения. Инклуд это не импорт. Надо попробовать вызвать какую-нибудь функцию из файла который кажется, что не подключился. То что в логах там пишется, может и не обязано, на это не стоит внимания обращать.
 
Integer:

Видел. Хорошо сформулированный вопрос, это пол решения. Инклуд это не импорт. Надо попробовать вызвать какую-нибудь функцию из файла который кажется, что не подключился. То что в логах там пишется, может и не обязано, на это не стоит внимания обращать.

Значится завтра попробую вызвать. Отладчика нет, вот и хз как подойти к этой задаче. Ошибок тоже нет. А сова не пашет. Не принтуется ничего. В общем, попробую завтра и отпишусь.
 
novator 24.11.2013 19:37 #
Добрый вечер, а можно использовать несколько меджиков в одном советнике?
Можно.
 

Почему не работает

   int handle;
   handle=FileOpen("openorder.csv",FILE_CSV|FILE_READ|FILE_WRITE,"\n");
   if(handle>0)
     {
      FileWrite(handle,open_price_order,"\n");
      FileClose(handle);
     }
 
itum:

Почему не работает


Как мне кажется что стандартный разделитель в CSV файле не перевод строки, а запятая, или какой-нибудь другой символ, назначенный в качестве разделителя. Причем если считываете данные из CSV в виде строк, и где-то в string присутствует запятая не в качестве разделителя, тогда вся строка должна быть обозначена кавычками.

Вот смотрите:

DateTime,Name,Country,Volatility,Actual,Previous,Consensus
"20131125 09:00:00","Общенациональный индекс цен на жилье (г/г)","Великобритания ","2","","5,8%","6,0%"

В первой строке файла стоят значения разделённые запятыми. Нормально считываются. Во второй строке все данные заключены в кавычки, но при этом тоже есть запятые в качестве разделителей. Но есть строка 5,8% где запятая не разделитель. Вот её нужно обязательно заключать в кавычки. Ну и код должен удалять лишние кавычки в начале и конце строки. При этом делаем примерно так:

   DatTim=FileReadString(handle);StrTrim(DatTim);if(DatTim !="DateTime") err=1;else{
    Name=FileReadString(handle);StrTrim(Name);if(Name !="Name") err=1;else{
     Country=FileReadString(handle);StrTrim(Country);if(Country !="Country") err=1;else{
      Volatility=FileReadString(handle);StrTrim(Volatility);if(Volatility !="Volatility") err=1;else{
       Actual=FileReadString(handle);StrTrim(Actual);if(Actual !="Actual") err=1;else{
        Previous=FileReadString(handle);StrTrim(Previous);if(Previous !="Previous") err=1;else{
         Consensus=FileReadString(handle);StrTrim(Consensus);if(Consensus !="Consensus") {err=1;}}}}}}}

Это анализ заголовка файла. Функция StrTrim(DatTim) у меня как раз удаляет лишние кавычки если они есть в начале и конце строки. А дальше просто читаем файл и преобразуем данные из string в нужный формат. Но хотя всё сильно зависит От того, что там у Вас в CSV файле. Как правило нормально работает если в CSV строки.

См. FileReadString( int handle, int length=0) и FileOpen( string filename, int mode, int delimiter=',')

 

Все что я хочу сделать это записывать в CSV цену открытия ордера. Как это сделать?

 
itum:

Все что я хочу сделать это записывать в CSV цену открытия ордера. Как это сделать?



Ну тогда вроде всё правильно.


handle=FileOpen("openorder.csv",FILE_CSV|FILE_READ|FILE_WRITE,",");

FileSeek(handle, 0, SEEK_END);// Это на случай если хотите дописывать в уже существующий файл.

FileWrite(handle,open_price_order);

Я то наоборот читал CSV. Не cтавьте в качестве разделителя "\n". Он итак прибавится после каждого FileWrite. Поставтьте "," или ";". А потом при открытии Эксель, или кто там у Вас сам попросит ввести разделитель. Должно сработать, некогда в тестере проверить.... Потому что FileWrite(handle,open_price_order); вставиться одной строкой в файл, а если будет FileWrite(handle,open_price1_order, open_price2_order ); все равно будет одна строка, но между опенпрайсами вставиться разделитель. Последующий вызов FileWrite приведёт к появлению новой строки в файле.

 
Привет,
Дело идет про МТ4
Кто то не подскажет как можно выделит дни в неделю так чтобы советник торговал с понедерником до пятницу, но менше 23 часов в пятнице.

В общем то мне это надо посколько заметил особенности при тестиование некоторые алгоритмых Они влияются из стартовой дата теста.
Зараннее спасибо !