Вообще-то, уважаемый "товарищ", я так понимаю, учиться вы не собираетесь,можно же было посмотреть, и на сайте и в хелпе редактора как правильно пользоваться переменными.
externint magic = 1234567890,
stoploss = 350,
takeprofit = 1000;
externdouble LOT = 0.1;
//--------------------------------------------------------------------------------------------int start()
{
int sells=0;
for (int i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderSymbol() !=Symbol() || OrderMagicNumber() !=magic || OrderType() !=OP_SELL ) continue;
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,White);
sells++;
}
}
if (sells==0) OrderSend(Symbol(),OP_BUY, LOT,NormalizeDouble(Ask,Digits),3,StopLoss,TakeProfit,"",magic,0,Green);
return(0);
}
Люди, Человеки, учитесь пользоваться хелпом редактора MT4, там всё есть и подробно.
Вот текст из хелпа.
bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE)
//Закрытие позиции. Возвращает TRUE при успешном завершении функции. Возвращает FALSE
//при неудачном завершении функции. Чтобы получить информацию
//об ошибке,необходимо вызвать функцию GetLastError(). // Параметры:// ticket - Уникальный порядковый номер ордера. // lots - Количество лотов для закрытия. // price - Цена закрытия. // slippage - Значение максимального проскальзывания в пунктах. // Color - Цвет стрелки закрытия на графике.Если параметр отсутствует или его значение равно
// CLR_NONE то стрелка на графике не отображается. // Пример:if(iRSI(NULL,0,14,PRICE_CLOSE,0)>75)
{
OrderClose(order_id,1,Ask,3,Red);
return(0);
}
Я здесь внутри границ боллинджера,при касании пытаюсь перевернуть ордер на обратный.Ничего не происходит,совсем ничего,и даже никакой ошибки и даже ноля в журналах не пишет!
Я здесь внутри границ боллинджера,при касании пытаюсь перевернуть ордер на обратный.Ничего не происходит,совсем ничего,и даже никакой ошибки и даже ноля в журналах не пишет!
Мож,какой запятой где-нить нема?
Пол часа уж это место рассматриваю!
Ну во первых, ты ищешь по закрытому бару "if (Verhnyayaghranytsa<Close[i]", где i у тебя = 0, а это ещё не закрывшийся бар, надо либо менять на Open, либо Close[i+1].
Во вторых, OrderCloseBy(int ticket, int opposite, color Color=CLR_NONE), где ticket и opposite это разные порядковые номера разных ордеров.
В третьих, OrderCloseBy не переворачивает с одного ордера на другой, он перекидывает слив депозита, а не закрывает его и в обратном напровлении открывает новый. Нужно самому закрыть старый и открыть новый.
No requotes.
No requotes.
It only on the fast server
kolyango:
Вообще-то, уважаемый "товарищ", я так понимаю, учиться вы не собираетесь,можно же было посмотреть, и на сайте и в хелпе редактора как правильно пользоваться переменными.
Люди, Человеки, учитесь пользоваться хелпом редактора MT4, там всё есть и подробно.
Вот текст из хелпа.
С наступившим 2011 годом!!!!
for( i = 0; i < total; i++) {
OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES );
if(OrderSymbol() == Symbol() && OrderMagicNumber() == 16384&&OrderType() == OP_SELL)
{ if (Nyzhnyayaghranytsa>Close[i])
{ OrderCloseBy (ticket,ticket,Green);Alert("OrderCloseBySell", GetLastError()); }}
OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES );
if(OrderSymbol() == Symbol()&&OrderMagicNumber() == 16384 &&OrderType() == OP_BUY)
{ if (Verhnyayaghranytsa<Close[i])
{ OrderCloseBy (ticket,ticket,Green);Alert("OrderCloseByBuy", GetLastError());}} }
Я здесь внутри границ боллинджера,при касании пытаюсь перевернуть ордер на обратный.Ничего не происходит,совсем ничего,и даже никакой ошибки и даже ноля в журналах не пишет!
Мож,какой запятой где-нить нема?
Пол часа уж это место рассматриваю!
Спрашивайте,отвечу . Сам спрошу.
А каким еще индюком лучше всего сопровождать боллинджера?
С наступившим 2011 годом!!!!
for( i = 0; i < total; i++) {
OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES );
if(OrderSymbol() == Symbol() && OrderMagicNumber() == 16384&&OrderType() == OP_SELL)
{ if (Nyzhnyayaghranytsa>Close[i])
{ OrderCloseBy (ticket,ticket,Green);Alert("OrderCloseBySell", GetLastError()); }}
OrderSelect( ticket,SELECT_BY_TICKET,MODE_TRADES );
if(OrderSymbol() == Symbol()&&OrderMagicNumber() == 16384 &&OrderType() == OP_BUY)
{ if (Verhnyayaghranytsa<Close[i])
{ OrderCloseBy (ticket,ticket,Green);Alert("OrderCloseByBuy", GetLastError());}} }
Я здесь внутри границ боллинджера,при касании пытаюсь перевернуть ордер на обратный.Ничего не происходит,совсем ничего,и даже никакой ошибки и даже ноля в журналах не пишет!
Мож,какой запятой где-нить нема?
Пол часа уж это место рассматриваю!
Ну во первых, ты ищешь по закрытому бару "if (Verhnyayaghranytsa<Close[i]", где i у тебя = 0, а это ещё не закрывшийся бар, надо либо менять на Open, либо Close[i+1].
Во вторых, OrderCloseBy(int ticket, int opposite, color Color=CLR_NONE), где ticket и opposite это разные порядковые номера разных ордеров.
В третьих, OrderCloseBy не переворачивает с одного ордера на другой, он перекидывает слив депозита, а не закрывает его и в обратном напровлении открывает новый.
Нужно самому закрыть старый и открыть новый.
С наступившим 2011 годом!!!!
----------------------------------------------
Пол часа уж это место рассматриваю!
Сходите лучше пивка себе возьмите с рыбкой, либо шампусика с фруктовым ассорти, а там глядишь и "просветление" настанет... :-)))
С Новым годом!
Вопрос классический. ЧО ДЕЛАТЬ?)))