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

 
Semionn:
Всех приветствую, такой вопрос: можно ли открывать позицию на закрытии бара (работаю на 15-минутках), если да, то как это реализовать средствами mt4?

Невозможно узнать последний ли это тик на данном баре или нет. Лучше открывать на открытии следующего бара.
 
люд помогите с трелинг стопом может у кого функция какая завалялась???
 

требуется посчитать обьёмы всех открытых позиций на by и на sell

пытаюсь сделать так, но не считает (((


//+--2.1 определение качества ордеров
int vb=v,vs=v, io, ko=OrdersTotal();

for (io=0; io<ko; io++)
{if (OrderSelect(io, SELECT_BY_POS, MODE_TRADES))
if (OrderType()==OP_BUY) { vb=vb+OrderLots( ); // плюсуем обьёмы buy
}
if (OrderType()==OP_SELL ) { vs=vs+OrderLots( ) ; // плюсуем обьёмы sell
}
}

Print("Ордеров buy ",Koob," на ",vb, " лота",", Ордеров Sell = ",Koos," на ", vs, " лота" );

vb и vs сумма обьёмов сделок by и sell соответственно почему то всегда занулены

 
sdm:

vb и vs сумма обьёмов сделок by и sell соответственно почему то всегда занулены

Попробуйте vb и vs с типом double.
 

ой Семён Семёныч

спс так и есть

 

Ребят помогите в следующем вопросе...
Возможно ли удалить Глобальную переменную (GlovalVariable) только при условии, что эксперт удалён с графика ?

Если,да то как ? Просто если добавить в deinit GlobalVariableDelete (name) то переменная удаляется при переключении между Таймфреймами....

 
MisterD:

Ребят помогите в следующем вопросе...
Возможно ли удалить Глобальную переменную (GlovalVariable) только при условии, что эксперт удалён с графика ?

Если,да то как ? Просто если добавить в deinit GlobalVariableDelete (name) то переменная удаляется при переключении между Таймфреймами....

Анализируйте причину деинициализации:

UninitializeReason()

 
PapaYozh:

Анализируйте причину деинициализации:

UninitializeReason()

Спасибо, мне казалось что где то видел этот раздел, но сколько не искал, так и не мог найти... Это, то что нужно :)
 
Снова привет, подскажите пожалуйста где допущена ошибка в следующем коде ?
Вызываю цикл в момент "deinit"
Ордера удаляет все, кроме последнего.
Я так понимаю, что скорей всего ошибка в этой строчке >> for (int i=1; i<=OrdersTotal(); i++) <<
Однако логически вроде всё верно... что я упустил ?
Заранее спасибо!

//-------------------------------------------------------------------------------------------
for (int i=1; i<=OrdersTotal(); i++)
{
if (OrderSelect(i-1,SELECT_BY_POS)==true)
{
int Type=OrderType();
if (OrderSymbol()!= Symbol() || Type <2)continue;
int Ticket=OrderTicket();
bool Modify =OrderDelete(Ticket);
if (Modify == true) Alert ("Ордер Удалён");continue;
if (Modify != true) Alert ("Удаление ордера не удалась");
continue;
}
}
//-------------------------------------------------------------------------------------------
Причина обращения: