[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 260

 

Здравствуйте, граждане.

Чтобы не захломлять действительно форум, решил написать в эту ветку. Ответьте Пожалуйста, на двух моих компьютерах стояла (а сейчас на одном только осталась, после переустановки Windows в попыхах) MetaTrader 4 с одним и тем же счетом, был мозговой грешок и у меня вылетел из головы пароль, так вот где до сих пор остается МТ4 не тронутым, я могу видеть, и зайти, и работать с этим счетом нормально, но пароль вижу только под звездочками. Видел в МТ4 в диалоговом окне ввода номера и пароля есть флажок "Хранить личную информацию", можно ли посмотреть этот файл где-нибудь и как-нибудь, и будет ли в нем пароль?

 
vovdec >>:

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

Пароль в МТ4 хранится в зашиврованном виде и место его хранения не оглашается.

Кто-то из местных зубров доставал его, но это задача мягко говоря, непростая.

При копировании/переносе папки МТ4 пароль теряется. Сделано в целях безопасности.

Пароль к любому реальному счёту восстанавливается через ТП.

От демок лучше его сохранять или менять на тот, который не забудете, сразу после

открытия демки.

 

Здравствуйте. Наваял тут небольшой советник, который просто открывает позицию по времени. В принципе все работает, но не могу его проверить на истории. Помогите разобраться.

//+------------------------------------------------------------------+
//| Полуночник.mq4 |
//| BaceK |
//| |
//+------------------------------------------------------------------+
#property copyright "BaceK"
#property link ""

//---- input parameters
extern int Dist_SL=20;
extern int Dist_TP=30;
extern double Prots=0.35;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{

string Symb=Symbol(); // Финанс. инструмент
int Min_Dist=MarketInfo(Symb,MODE_STOPLEVEL);// Мин. дистанция
//Alert("Мин. дистанция = ",Min_Dist);
double Min_Lot=MarketInfo(Symb,MODE_MINLOT);// Мин. размер лота
//Alert("Мин. размер лота = ",Min_Lot);
double Free =AccountFreeMargin(); // Свободн средства
//Alert("Свободн средства = ",Free);
double One_Lot=MarketInfo(Symb,MODE_MARGINREQUIRED);//Стоим.лота
//Alert("Стоим.лота = ",One_Lot);
double Lot=MathFloor((Free*Prots)/(One_Lot*Min_Lot))*Min_Lot;// Лоты
//Alert("Лоты = ",Lot);
//Alert("Bars = ",Bars);

//-----------------------------------------------
// Проверка свободных срелств
if ( Lot != 0 )
{
//Alert("Работа дальше = ",OrderSymbol());

// Проверка рабочего времени
int h=TimeHour(TimeCurrent());
if ( h < 1 )
{
for(int i=1; i<=OrdersTotal(); i++) // Цикл перебора ордер
{
if (OrderSelect(i-1,SELECT_BY_POS)==true) // Если есть следующий
{
// Анализ ордеров:
if (OrderSymbol()!= Symb) // Не наш фин.инструм.
{
//Alert("Работа дальше = ",OrderSymbol());
// Определение в какую сторону открываться
if (iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1)< 0)
{
//Alert("Длинная позиция = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
int ticket=OrderSend(Symb,OP_BUY,Lot,Ask,3,Bid-Dist_SL*Point,Bid+Dist_TP*Point);
}else
{
//Alert("Короткая позиция = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
int ticket1=OrderSend(Symb,OP_SELL,Lot,Bid,3,Bid+Dist_SL*Point,Bid-Dist_TP*Point);
}
if (ticket>0 || ticket1>0) // Получилось :)
{
// Alert ("Установлен ордер SELL ",ticket || ticket1);
Sleep(5000);
}else
{
int Error=GetLastError(); // Не получилось :(
switch(Error) // Преодолимые ошибки
{
case 129:Alert("Неправильная цена. Пробуем ещё раз..");
RefreshRates(); // Обновим данные
return(0);
case 135:Alert("Цена изменилась. Пробуем ещё раз..");
RefreshRates(); // Обновим данные
return(0); // На след. итерацию
case 146:Alert("Подсистема торговли занята. Пробуем ещё..");
Sleep(500); // Простое решение
RefreshRates(); // Обновим данные
return(0); // На след. итерацию
}
switch(Error) // Критические ошибки
{
case 2 : Alert("Общая ошибка.");
break; // Выход из switch
case 5 : Alert("Старая версия клиентского терминала.");
return(0); // Выход из switch
case 64: Alert("Счет заблокирован.");
return(0); // Выход из switch
case 133:Alert("Торговля запрещена");
return(0); // Выход из switch
default: Alert("Возникла ошибка ",Error);// Другие варианты
}
//Alert (GetLastError());
return(0);
}


}else
{
//Alert("Выход по Symb = ",Symb);
return(0);
}
}else
{

//Alert("Выход по ордеров нет = ",Symb);
if (iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1)< 0)
{
//Alert("Длинная позиция = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
int ticket2=OrderSend(Symb,OP_BUY,Lot,Ask,3,Bid-Dist_SL*Point,Bid+Dist_TP*Point);
}else
{
//Alert("Короткая позиция = ",iOpen(NULL,PERIOD_D1,1)-iClose(NULL,PERIOD_D1,1));
int ticket3=OrderSend(Symb,OP_SELL,Lot,Bid,3,Bid+Dist_SL*Point,Bid-Dist_TP*Point);
}
if (ticket2>0 || ticket3>0) // Получилось :)
{
//Alert ("Установлен ордер SELL ",ticket2 || ticket3);
Sleep(5000);
}else

{
int Error1=GetLastError(); // Не получилось :(
switch(Error1) // Преодолимые ошибки
{
case 129:Alert("Неправильная цена. Пробуем ещё раз..");
RefreshRates(); // Обновим данные
return(0);
case 135:Alert("Цена изменилась. Пробуем ещё раз..");
RefreshRates(); // Обновим данные
return(0); // На след. итерацию
case 146:Alert("Подсистема торговли занята. Пробуем ещё..");
Sleep(500); // Простое решение
RefreshRates(); // Обновим данные
return(0); // На след. итерацию
}
switch(Error1) // Критические ошибки
{
case 2 : Alert("Общая ошибка.");
break; // Выход из switch
case 5 : Alert("Старая версия клиентского терминала.");
return(0); // Выход из switch
case 64: Alert("Счет заблокирован.");
return(0); // Выход из switch
case 133:Alert("Торговля запрещена");
return(0); // Выход из switch
default: Alert("Возникла ошибка ",Error1);// Другие варианты
}
Alert (GetLastError());
return(0);
}

}
}

}else
{
// Alert("Выход по времени = ",Hour());
return(0);
}
}else
{
//Alert("Выход по Lot = ",Lot);
return(0);
}

//----


//Alert ("Скрипт закончил работу -----------------------------");
return(0);
}
//+------------------------------------------------------------------+

 

Что конкретно не работает? если алерт так в тестере он не работает, замените на на принт или комент.

Вместо алертов поставьте вот такую функцию:

void ComAlert(string text)
{//+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+
 if(IsTesting())Comment(text);else Alert(text);
return;
}//+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+


 

Советник вообще ни одной сделки не сделал в тестере. Все по нулям.

 
BaceK1 >>:

Советник вообще ни одной сделки не сделал в тестере. Все по нулям.

А вживую работает??

 
В живую работает. Открывает позицую в нужную сторону с заданными параметрами. В тестере ничего не открывает.
 
BaceK1 >>:
В живую работает. Открывает позицую в нужную сторону с заданными параметрами. В тестере ничего не открывает.

Что пишет в журнал ? Посмелее или мне каждое слово из вас вытягивать.

 

2009.10.16 20:33:19 2009.07.31 22:43 Полуночник EURJPY,Daily: Alert: Выход по времени = 22

Третий снизу Алерт

 
А как открыть позицию в точно назначенное время? К примеру необходимо открыть позицию в 00.15 локального времени.