[АРХИВ!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 4. - страница 447

 

мне одно интересно - если ордер не ставится, то наверное есть какая то ошибка ? А распринтовать ее прочитать и исправить вам видимо не судьба ?

/*ставьте ордер с нулевыми тейком и стопом, а потом правьте, это они типа ЕЦН исполнения ввели*/ 

 
FAQ:

мне одно интересно - если ордер не ставится, то наверное есть какая то ошибка ? А распринтовать ее прочитать и исправить вам видимо не судьба ?

/*ставьте ордер с нулевыми тейком и стопом, а потом правьте, это они типа ЕЦН исполнения ввели*/ 

в том то и дело что логи чистые!

 "это они типа ЕЦН исполнения ввели*/ " - расшифруйте пожайлуста, если вопрос в стопах - это я как вариант страховки на непредвиденный случай ввел

 
vall:

в том то и дело что логи чистые!

 "это они типа ЕЦН исполнения ввели*/ " - расшифруйте пожайлуста, если вопрос в стопах - это я как вариант страховки на непредвиденный случай ввел

Ставите ордер без стопов  и тейков и смотрите открылся он или нет!

Установка стопов и тейков в Вашем ДЦ на этом типе торгового счёта возможна ТОЛЬКО посредством модификации ранее установленных нулевых их значений.

 
Roman.:

Ставите ордер без стопов  и тейков и смотрите открылся он или нет!

Установка стопов и тейков в Вашем ДЦ на этом типе торгового счёта возможна ТОЛЬКО посредством модификации ранее установленных нулевых их значений.


Благодарю, помогло.

получается нужно открывать счет с 0, а потом модифицировать вводя стопы? 

 
vall:

Благодарю, помогло.

получается нужно открывать счет с 0, а потом модифицировать вводя стопы? 

открывать ордер с нулевыми значениями этих параметров, далее уже менять их посредством модификации открытого ордера.

 
Roman.:

открывать ордер с нулевыми значениями этих параметров, далее уже менять их посредством модификации открытого ордера.


Спасибо, стопы устанавливаются в точностью до символов графика, т.е. 0,00001 или с точностью до 0,0001?
 

Логи чистые, потому что никто за вас выявление и обработку ошибок делать не будет.

Спасибо, стопы устанавливаются в точностью до символов графика, т.е. 0,00001 или с точностью до 0,0001?

 МаркетИнфо вам в руки.

 
Vinin:

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

Доброго времени суток... Вопрос по функциям FileIsEnding и FileIsLineEnding. Для того, чтобы понять как работают функции FileIsEnding и FileIsLineEnding я написал такой скрипт:

//+------------------------------------------------------------------------------------------+
//+------------------------------------------------------------------------------------------+
//|                         script program start function                                    |
//+------------------------------------------------------------------------------------------+
#property show_inputs                                                    //выводим перед запуском скрипта окно свойств
extern int  position=0;                                                  //внешняя переменная: смещение файлового указателя ОТ НАЧАЛА ФАЙЛА (в БАЙТАХ)
//---------------------------------------------------------------------------------------- 1 -
int start()                                                              //функция start
  {                                                                      //начало start
   double Timestart=GetTickCount();                                      //переменная, с помощью которой вычисляется время (в милисекундах) начала выполнения эксперта 
   string name="Копия Запись чисел в файл.csv";                          //имя создаваемого файла
   bool h;                                                               //переменная: значение функции FileIsEnding
   bool h_l;                                                             //переменная: значение функции FileIsLineEnding
   int error;                                                            //переменная: ошибка
   int handle=FileOpen(name,FILE_CSV|FILE_WRITE,';');                    //открываем заданный файл n записываем туда данные
   int запись=FileWrite(handle,DoubleToStr(1.3584,4));                   //записываем цены OHLC в файл csv (в преобразованном виде, т.е в виде текста)
   FileClose(handle);                                                    //закрываем файл
//---------------------------------------------------------------------------------------- 2 -
   handle=FileOpen(name,FILE_CSV|FILE_READ,';');                         //открываем заданный файл
   bool pos=FileSeek(handle,position,SEEK_SET);                          //смещаем от начала вправо указатель файла
   double чтение=FileReadNumber(handle);                                 //считываем число из текущей позиции (уже измененной функцией FileSeek) файлового указателя
   int size=FileSize(handle);                                            //вычисляем размер заданного файла
   h=FileIsEnding(handle);                                               //устанавливаем текущее значение переменной h
   h_l=FileIsLineEnding(handle);                                         //устанавливаем текущее значение переменной h_l
   error=GetLastError();                                                 //значение ошибки, производимой функцией FileIsEnding
   if(error!=0)Alert("Текущая ошибка ",error);                           //если код текущей ошибки не равен 0, то получаем номер текущей ошибки
   FileClose(handle);                                                    //закрываем файл
//----------------------------------------------------------------------------------------- 3 -
   Comment("Размер файла ",name," составил ",size," байт",
           "\nФункция FileSeek вернула: ",pos,
           "\nФункция FileReadNumber(handle) вернула: ",чтение,
           "\nФункция FileIsLineEnding(handle) вернула: ",h_l,
           "\nФункция FileIsEnding(handle) вернула: ",h,
           "\nСкрипт выполнялся всего ",GetTickCount()-Timestart," миллисекунд, из них: ",MathFloor((GetTickCount()-Timestart)/1000)," секунд ",((GetTickCount()-Timestart)/1000-MathFloor((GetTickCount()-Timestart)/1000))*1000," миллисекунд");//печать сообщения на экран
//----------------------------------------------------------------------------------------- 4 -
   return(0);                                                             //выход из start
  }                                                                       //конец start
//-------------------------------------- КОНЕЦ START -------------------------------------- 5 -

В блоке 1-2 я открыл и записал в файл число 1.3584 (к-е функция DoubleToStr преобразует в текст).

Блоке 3-4 я открыл файл и прочитал записанное там число.

Внешняя переменная extern int position по задумке предназначена для того, чтобы, передвигая файловый указатель с помощью функции FileTell, попытаться понять, как работают функции FileIsEnding и FileIsLineEnding И что собой представляет файловый указатель.

В книге по MQL4, к-я находится на MQL4.community говорится, что файловый указатель является аналогом текстового курсора.

НО, запуская данный скрипт несколько раз и изменяя с каждым разом внешнюю переменную postiton на 1 (т.е. сдвигая таким образом файловый указатель на 1 байт вправо от начала файла), функция Comment выводила ряд сообщений, например:

если postiton=7, то сообщение выглядело так:


если postiton=8, то сообщение выглядело так:


Я понимаю, что т.к. в памяти ПК строковые константы занимают 8 байт и в файле записано всего 1 преобразованное в текст число, то сдвигая файловый указатель на 8 байт вправо, я получу ошибку 4099 (к-я означает, что достигнут конец файла). Я также понимаю, что функция FileIsEnding вернула 1 (истина) по той же причине (достигнут конец файла). Но я не понимаю, почему функция FileIsLineEnding вернула 0 (ложь, что означает, что файловый указатель не достиг конца строки). Ведь, руководствуясь приведенной в книге по MQL аналогией (файловый указатель примерно то же, что и текстовый курсор), я рассуждал, что конец файла одновременно является концом строки. Но учитывая несовпадение значений функций FileIsEnding и FileIsLineEnding при достижении файловым указателем конца файла, я зашел в тупик в плане того, ЧТО ЕСТЬ ФАЙЛОВЫЙ УКАЗАТЕЛЬ

Вопрос:

1. Что есть файловый указатель?

2. Почему не совпадают: конец строки и конец файла (при достижении файловым указателем конца файла)?

P.S. Чтобы не захламлять форум, заранее благодарю за ответ

 
7777877:

1. Что есть файловый указатель?

2. Почему не совпадают: конец строки и конец файла (при достижении файловым указателем конца файла)?

P.S. Чтобы не захламлять форум, заранее благодарю за ответ

1. файловый указатель - фактически курсор при наборе текста

2. а кто вам сказал что они должны совпадать? есть символ конца строки '\n', есть символ конца файла 'EOF' это разные символы. Это как символ конца предложения (точка) и символ конца абзаца ("символ переноса строки"). Сначала идет точка - конец строки. Потом конец абзаца.