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

 
Zolotai:
Подскажите небольшой код. Вот открыл файл.... При помощи каких функции можно записать запись, сохранить,а после чего закрыть...


double Balance,Equity,Free;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
    Balance = AccountBalance(); 
    Equity  = AccountEquity(); 
    Free    =AccountFreeMargin();                 // Свободн средства
   
//----
 if(NevBar())  Средства();
//----
   return(0);
  }
//+------------------------------------------------------------------+

//====================================================================
//-----------------------------------------------------------------------------+
// Функция контроля нового бара                                                |
//-----------------------------------------------------------------------------+
bool NevBar(){
   static int PrevTime=0;
   if (PrevTime==Time[0]) return(false);
   PrevTime=Time[0];
   return(true);} 
//====================================================================   
void Средства()
{
  int handle;
  string filename = "Средства.csv"; // Формируем имя файла
  handle = FileOpen(filename,FILE_CSV|FILE_READ | FILE_WRITE,';');
  if(handle < 1)
  {
    Print("Не удалось создать файл. Ошибка #", GetLastError());
    return(0);
    //FileClose(handle);
  }
  
  FileWrite(handle, "Время",
                    "Баланс",
                    "Средства",
                    "Свободная маржа"); //пишем заголовок
                    
  FileSeek(handle, 0, SEEK_END);        //следущая строка
  
  FileWrite(handle,TimeToStr(Time[0]),  //пишем что-то
                   Balance,
                   Equity, 
                   Free);
 
  FileClose(handle);
  return(0);
}
 
Подскажите, как выставить стоп по максимуму или минимуму бара, на котором отрыта сделка?
 
Ulia:
У меня ОС Виндоус 7 максимальная сп1, русскоязычная
После установки терминала мт4 билд 509 если выбрать в пункте вид-языки-русский, то после перезапуска все написано непонятными символами, если поставить англ язык - все видно нормально на англ языке, только в навигаторе имя таже отображается непонятными символами так как счет был зарегистрирован изначально на русском языке. Терминал от компании Инстафорекс, но и от других ДЦ та же проблема. Видимо проблема в шрифтах моей ОС.

Подскажите какие требования к шрифтам, может можно их добавить /включить /заменить и как это сделать - переставлять другую ОС не хотелось бы.
При этом другие программы - антивирус аваст, Опера и все программы Виндоус 7 (блокнот, калькулятор и т.д.) работают нормально на русском языке.
i_logic:

Юлия, зайдите в Панель Управления, выберите Язык и региональные стандарты, перейдите на вкладку "Дополнительно" и посмотрите, какой язык стоит в поле "Язык программ, не поддерживающих Юникод". Там должен стоять русский.




спасибо, помогло, там был изначально англ.
 

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

Например, взяться переменную:

in err = GetLastError();

Каждый раз в каждой библиотеке объявлять ту же переменную это единственный вариант? Ведь такие переменных может быть много..

 
hoz:

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

Например, взяться переменную:

Каждый раз в каждой библиотеке объявлять ту же переменную это единственный вариант? Ведь такие переменных может быть много..

Объявить эти переменные в одном инклюде и подключить этот инклюд во все библиотеки.
 


Спс. Прописал следующим образом.

int start() // Спец. функция start

{

//--------------------------------------------------------------- 2 --

int Handle;

string File_Name="News.csv", // Имя файла

datetime Dat_DtTm; // Дата и время события(дата)

//--------------------------------------------------------------- 3 --

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ,";");// Открытие файла

if(Handle<0){ // Неудача при открытии файла

if(GetLastError()==4103) // Если файла не существует,..

Alert("Нет файла с именем ",File_Name);//.. извещаем трейдера

else // При любой другой ошибке..

Alert("Ошибка при открытии файла ",File_Name);//..такое сообщ

PlaySound("Bzrrr.wav"); // Звуковое сопровождение

return; // Выход из start()

}else{

FileSeek(handle, 0, SEEK_END);

FileWrite(handle, "ff", Dat_DtTm);

FileClose(handle);

}

return; // Выход из start()

}

Не записывает, что не так?
 
Zolotai:


Спс. Прописал следующим образом.

int start() // Спец. функция start

{

//--------------------------------------------------------------- 2 --

int Handle;

string File_Name="News.csv", // Имя файла

datetime Dat_DtTm; // Дата и время события(дата)

//--------------------------------------------------------------- 3 --

Handle=FileOpen(File_Name,FILE_CSV|FILE_READ|FILE_WRITE,";");// Открытие файла

if(Handle<0){ ........

Не записывает, что не так?
 

Добрый день.

Подскажите, как программно увязать на графике 2 системы координат: (X, Y) и (время, цена)? Нужен label с координатами (X,Y), который всегда будет находиться на минимальной цене на графике.

 
satorifx:

Добрый день.

Подскажите, как программно увязать на графике 2 системы координат: (X, Y) и (время, цена)? Нужен label с координатами (X,Y), который всегда будет находиться на минимальной цене на графике.

Есть отличия. На графике вообще, т.е. на всей доступной в терминале истории, или на видимом графике (в пределах экрана монитора) ?
 
paladin80:


Спасибо!