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

 
paladin80:
Если ты хочешь чтобы при уже открытых 3 ордерах последующие (4 и т.д.) открывались 2 х лотом, то:
да все правильно, только мне надо запихать это все во второе условие,эти два условия включаются и выключаются в ручную if (LotConst_or_not) gd_200 = Lot; (это первое условие)

else gd_200 = AccountBalance() * RiskPercent / 100.0 / 10000.0;( второе условие)

вот вместо выставления лота от баланса исправить на условие при котором уже при открытых 3 ордерах последующие (4 и т.д.) открывались 2 х лотом. Если есть функции попроще какие нибудь.

 
Подскажите пожайлуста, как закрыть отложеные ордера при срабатывании тейкпрофита риночного ордера?
 

Добрый день!

Подскажите, как прочитать из файла текстовую строчку под определенным номером.

В принципе могу использовать такой код:

StringSubstr(Text,0,16);

Например прочитать первые 16 символов, но если строки будут разной длины, а мне нужно соответствие

значение1=строка№1;

значение2=строка №2;

Заранее благодарю!

 

Пожалуйста, подскажите бесплатный Текстовый Редактор, в котором можно при замене текста переносить часть на новую строку.
Спасибо!

 
forexnew:

Добрый день!

Подскажите, как прочитать из файла текстовую строчку под определенным номером.

В принципе могу использовать такой код:

Например прочитать первые 16 символов, но если строки будут разной длины, а мне нужно соответствие

значение1=строка№1;

значение2=строка №2;

Заранее благодарю!



FileReadString(hwd);
 
artem86:
Подскажите пожайлуста, как закрыть отложеные ордера при срабатывании тейкпрофита риночного ордера?

Берете кимовскую функцию isCloseLastPosByTake().

Если она вазвращает true - сработал ТП.

саму функцию смотрите по ссылке https://www.mql5.com/ru/forum/107476/page21#79908

 
FAQ:

FileReadString(hwd);

В этом случае нужно прописывать длину строки, которая читается, например:

Str=FileReadString(handle); Symbol1=StringSubstr(Str,0,6); //6 символов

Str=FileReadString(handle); Symbol2=StringSubstr(Str,0,6); //6 символов

А если я не знаю длину строки или она изменяется от строчки к строчке? Т.е. надо "захватить" текст всей строки.

 
forexnew:

В этом случае нужно прописывать длину строки, которая читается, например:

Str=FileReadString(handle); Symbol1=StringSubstr(Str,0,6); //6 символов

Str=FileReadString(handle); Symbol2=StringSubstr(Str,0,6); //6 символов

А если я не знаю длину строки или она изменяется от строчки к строчке? Т.е. надо "захватить" текст всей строки.


Честно говоря я не совсем понял в чем проблема..
Всегда можно проверить "длину строки":

int StringLen( string text) 
Возвращает число символов в строке
 
atztek:

Честно говоря я не совсем понял в чем проблема..
Всегда можно проверить "длину строки":

Благодарю! Заработало.
 

Внимательно смотрим на формат моей записи, я не указывал там длинну строки, потом читает описание, опять внимательно:

string FileReadString(int handle, int length=0)
Функция читает строку с текущей позиции файла. Применяется как к CSV, так и к двоичным файлам. Для текстовых файлов строка будет прочитана до разделителя. Для бинарных файлов в строку будет прочитано указанное количество символов.
Чтобы получить информацию об ошибке, необходимо вызвать функцию GetLastError().
Параметры:
handle-Файловый описатель, возвращаемый функцией FileOpen().
length-Количество символов для чтения.
Пример:
  int handle;
  string str;
  handle=FileOpen("filename.csv", FILE_CSV|FILE_READ);// если открывать файл без разделителя, или с несуществующим разделителем
  if(handle>0)
    {
     str=FileReadString(handle);// то эта функция прочитает до конца строки
     FileClose(handle); 

}


Причина обращения: