Хе-хе... Вот как раз и нет. Как же он будет перебирать ордера без цикла? Т.к. предполагается, что ордеров может быть довольно большое количество и при этом хотелось бы отойти от использования магиков в качестве индивидуальных меток, то основными метками является символ валюты и тип ордера. В принципе, он с ними и работает, но случайно выяснилось, что в вышеприведёной комбинации работать отказывается. Где ошибка понять не могу. А если понять не могу, то иду к настоящим специалистам.
Если действительно есть интерес, то могу выложить код совы... разберём... всяко полезно будет.
Хе-хе... Вот как раз и нет. Как же он будет перебирать ордера без цикла? Т.к. предполагается, что ордеров может быть довольно большое количество и при этом хотелось бы отойти от использования магиков в качестве индивидуальных меток, то основными метками является символ валюты и тип ордера. В принципе, он с ними и работает, но случайно выяснилось, что в вышеприведёной комбинации работать отказывается. Где ошибка понять не могу. А если понять не могу, то иду к настоящим специалистам.
Если действительно есть интерес, то могу выложить код совы... разберём... всяко полезно будет.
Сейчас разбираться поленюсь.
Цикл с селекцией по типу операции и символу у Вас установлен в функции,
а в старте Вы прописываете только условия, при выполнении которых выполняется нужное Вам действие, т.е ClosePendingOrder(OP).
Или перебирать в старте ордера по магику с исполнением ордера, удовлетворяющего условию .
Добрый день. Подскажите, плиз, как "заставить" советника прекратить выставлять отложенные ордера, если уже допустим открыто 5 бай и 5 селл рыночных ордеров, и как только хотя бы 1 из ордеров закрывается, то советник продолжает выставлять отложки, в ту сторону какой закрылся и так по циклу. (теперь то уж код выложил в правильном виде)
//----------------------------------------------------------------------- проверка установленных стоп ордеровdouble StopOrderUp,StopOrderDn,price,MinBuyOrder=1000000000,MaxSellOrder,OldBuyOrder,OldSellOrder,OldBuyLot,OldSellLot;
int TicketUp,TicketDn;
TimeOllOpenBuy=0;TimeOllOpenSell=0;
double OOL_BUYSTOP,OOL_SELSTOP;
for (i=0; i<OrdersTotal(); i++)
{
if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==true)
{ price = OrderOpenPrice();
if (Magic==OrderMagicNumber() && OrderSymbol()==Symbol())
{
if (OrderType()==OP_BUYSTOP ) {StopOrderUp = price; TicketUp=OrderTicket(); OOL_BUYSTOP=OrderLots();}
if (OrderType()==OP_SELLSTOP) {StopOrderDn = price; TicketDn=OrderTicket(); OOL_SELSTOP=OrderLots();}
if (OrderType()==OP_BUY )
{ TimeOllOpenBuy = TimeOllOpenBuy + TimeCurrent()-OrderOpenTime();
if (MinBuyOrder > price) MinBuyOrder = price;
OldBuyOrder=price;
OldBuyLot=OrderLots();
if (DrawInfo&&!IsTesting()){
NameLine="ордер Bay "+OrderTicket();ObjectDelete(NameLine);ObjectDelete(NameLine+" з");
ObjectCreate(NameLine, OBJ_TREND, 0, OrderOpenTime(),price,Time[0],Bid);
ObjectSet(NameLine, OBJPROP_COLOR,LightSkyBlue);
ObjectCreate(NameLine+" з",OBJ_ARROW,0,Time[0],Bid,0,0,0,0);
ObjectSet(NameLine, OBJPROP_STYLE, STYLE_DOT);// Стиль
ObjectSet(NameLine, OBJPROP_RAY, false); // Луч
ObjectSet(NameLine+" з",OBJPROP_ARROWCODE,3);ObjectSet(NameLine+" з",OBJPROP_COLOR,WhiteColor);}
}
if (OrderType()==OP_SELL)
{ TimeOllOpenSell = TimeOllOpenSell + TimeCurrent()-OrderOpenTime();
if (MaxSellOrder < price) MaxSellOrder = price;
OldSellOrder=price;
OldSellLot=OrderLots();
if (DrawInfo&&!IsTesting()){
NameLine="ордер Sell "+OrderTicket();ObjectDelete(NameLine);ObjectDelete(NameLine+" з");
ObjectCreate(NameLine, OBJ_TREND, 0, OrderOpenTime(),price,Time[0],Ask);
ObjectSet(NameLine, OBJPROP_COLOR,Pink);
ObjectCreate(NameLine+" з",OBJ_ARROW,0,Time[0],Ask,0,0,0,0);
ObjectSet(NameLine, OBJPROP_STYLE, STYLE_DOT);// Стиль
ObjectSet(NameLine, OBJPROP_RAY, false); // Луч
ObjectSet(NameLine+" з",OBJPROP_ARROWCODE,3);ObjectSet(NameLine+" з",OBJPROP_COLOR,WhiteColor);}
}
}
}
}
if (MinBuyOrder==1000000000 && MaxSellOrder==0 && OOL_BUYSTOP!=OOL_SELSTOP)//если серия закрылась
{
DELETEORDERS();
}
Ребят еще вопросик возник. Некоторые брокеры в том числе и альпари например, предлагают своим клиентам плавающий спред....в связи с этим у меня не работает советник...(((
У них получается плавающая цифра как раз портит всю малину..((((
Я уже понял.. Сначала просто невнимательно посмотрел.
Ошибку не вижу.
Интересно тогда, почему не удаляются ордера? Могу выложить код всего советника, но будет ли в этом смысл?
Попробуйте просто в старте написать ваши условия. По-моему, вышеприведенный цикл for() в старте Вам не нужен.
Достаточно просто в старте их установить.
Хе-хе... Вот как раз и нет. Как же он будет перебирать ордера без цикла? Т.к. предполагается, что ордеров может быть довольно большое количество и при этом хотелось бы отойти от использования магиков в качестве индивидуальных меток, то основными метками является символ валюты и тип ордера. В принципе, он с ними и работает, но случайно выяснилось, что в вышеприведёной комбинации работать отказывается. Где ошибка понять не могу. А если понять не могу, то иду к настоящим специалистам.
Если действительно есть интерес, то могу выложить код совы... разберём... всяко полезно будет.
Хе-хе... Вот как раз и нет. Как же он будет перебирать ордера без цикла? Т.к. предполагается, что ордеров может быть довольно большое количество и при этом хотелось бы отойти от использования магиков в качестве индивидуальных меток, то основными метками является символ валюты и тип ордера. В принципе, он с ними и работает, но случайно выяснилось, что в вышеприведёной комбинации работать отказывается. Где ошибка понять не могу. А если понять не могу, то иду к настоящим специалистам.
Если действительно есть интерес, то могу выложить код совы... разберём... всяко полезно будет.
Сейчас разбираться поленюсь.
Цикл с селекцией по типу операции и символу у Вас установлен в функции,
а в старте Вы прописываете только условия, при выполнении которых выполняется нужное Вам действие, т.е ClosePendingOrder(OP).
Или перебирать в старте ордера по магику с исполнением ордера, удовлетворяющего условию .
Ребят, подстажите иностранные брокерские компании...очень боьшие деньги, а налоги платить не хочется....)) которые работают на метатрейдере 4...))
Ребят, подстажите иностранные брокерские компании...очень боьшие деньги, а налоги платить не хочется....)) которые работают на метатрейдере 4...))
Их таких очень много.
Google легко Вас выведет на них.
Заплати налоги и спи спокойно...
Добрый день. Подскажите, плиз, как "заставить" советника прекратить выставлять отложенные ордера, если уже допустим открыто 5 бай и 5 селл рыночных ордеров, и как только хотя бы 1 из ордеров закрывается, то советник продолжает выставлять отложки, в ту сторону какой закрылся и так по циклу. (теперь то уж код выложил в правильном виде)
Ребят еще вопросик возник. Некоторые брокеры в том числе и альпари например, предлагают своим клиентам плавающий спред....в связи с этим у меня не работает советник...(((
У них получается плавающая цифра как раз портит всю малину..((((
в чём вопрос то? переделывай советник..
В том и вопрос что переделывать то ХЗ....везде работает,а вот с плавающим нет((