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

 

подскажите, а то я запутался.

Цену последнего открытого ордера я нашел.

я хочу последний открытый ордер - закрыть при:

if((Ask - цена последнего открытого ордера) >= 30 * Point)  OrderClose;
 

Доброе утро !

Подскажите, пожалуйста, возможно ли закрывать все отложенные ордера в спецфункции deinit() (для закрытия всех отложенных ордеров при сбое интернета) ? Мой советник закрывает только часть из них. Может, не успевает по времени (пробовал до 7 отложенных ордеров) ? Или какая-то ошибка, и должны закрываться все ордера, независимо от количества ? На оставшихся незакрытых ордерах советник просто не входит в "да" условия закрытия, хотя оно -

if (OrderSelect(i-1,SELECT_BY_POS)==true)

- выполняется и входить же должен ... Перескакивает на "нет" по всем оставшимся ордерам и не закрывает их поэтому. Закрывает по-разному - три из пяти или 4 из 7, или 1 из 7. Что может быть не так ?

 
sanyooooook:
Определить время линии через ObjectGet и через iBarShift найти номер бара

спасибо. но не могли бы вы еще объяснить как число секунд правильно превратить в datetime?
 
volshebnik:

Доброе утро !

Подскажите, пожалуйста, возможно ли закрывать все отложенные ордера в спецфункции deinit() (для закрытия всех отложенных ордеров при сбое интернета) ? Мой советник закрывает только часть из них. Может, не успевает по времени (пробовал до 7 отложенных ордеров) ? Или какая-то ошибка, и должны закрываться все ордера, независимо от количества ? На оставшихся незакрытых ордерах советник просто не входит в "да" условия закрытия, хотя оно -

if (OrderSelect(i-1,SELECT_BY_POS)==true)

- выполняется и входить же должен ... Перескакивает на "нет" по всем оставшимся ордерам и не закрывает их поэтому. Закрывает по-разному - три из пяти или 4 из 7, или 1 из 7. Что может быть не так ?


Чудес не бывает. Но цикл я бы сделал вот так:

for (int i=OrdersTotal()-1;i>=0;i--)

Тогда было бы по другому.

 

Здравствуйте.

Как написать условие открытие сделки с первыми тиками нового бара и закрытие с последними тиками бара???

if (????)  

 
Здравствуйте! Просьба от чайника к знающим людям! Хотелось бы сделать алерт к индикатору metro. Нужен сигнал, при изминении значения slow линии, но не по закрытию бара, а при начале изменения значения! Кому не трудно, просьба написать, или помочь написать такую функцию! Заранее спасибо!
 
Vinin:


Чудес не бывает. Но цикл я бы сделал вот так:

for (int i=OrdersTotal()-1;i>=0;i--)

Тогда было бы по другому.

Vinin: Большое спасибо ! Всё закрывает теперь при выключении советника или закрытия терминала, но.... при отключении интернета и невыключения терминала, и включении его вновь спустя более минуты - советник не закрывается и ордера, соответственно, тоже. Можно ли как-то автоматически закрывать советник при потере инета ?
 
volshebnik:
Vinin: Большое спасибо ! Всё закрывает теперь при выключении советника или закрытия терминала, но.... при отключении интернета и невыключения терминала, и включении его вновь спустя более минуты - советник не закрывается и ордера, соответственно, тоже. Можно ли как-то автоматически закрывать советник при потере инета ?


Чудес не бывает. Что бы закрыть позиции - нужна связь (должен быть инет), основная или резервная связь

Можно посоветовать только VPS

 

Доброго дня!Если можно,помогите,

 

//+------------------------------------------------------------------+
//| Границы Димона .mq4 |
//| Copyright © 2010, MetaQuotes Software Corp. |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
extern int BandsPeriod=20,i=1 ;extern int BandsShift=0;
extern double BandsDeviations=2.0;
extern double Lots=0.1,TakeProfit=50,stoploss=10 ;
int init()
{
//----

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

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{double Average,Verhnyayaghranytsa,Nyzhnyayaghranytsa,newres,sum,deviation;

Average=iMA(NULL,0,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i);
//----
newres=Close[i]-Average;
sum=newres*newres;


deviation=BandsDeviations*MathSqrt(sum/BandsPeriod);
Verhnyayaghranytsa=Average+deviation;
Nyzhnyayaghranytsa=Average-deviation;
//----
if (Verhnyayaghranytsa<Close[i])
{ Comment(" буй! ",Verhnyayaghranytsa );
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-stoploss*Point,Ask+TakeProfit*Point,"macd sample",16384,0,Green);

}


if (Nyzhnyayaghranytsa>Close[i])
{ Comment(" селл! ",Nyzhnyayaghranytsa );

OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+stoploss*Point,Bid-TakeProfit*Point,"macd sample",16384,0,Red);
}
return(0);
}
//+------------------------------------------------------------------+

 

Индикатор улыбается,пишет селл или буй,но торговли как таковой нету  Возможно,я OrderSend не так прописал,или я уже и не знаю.Если можно,помогите!!! 

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