[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 66

 
sergeev:

верно выскакивает.

вам надо Bid и Ask брать из функции MarketInfo

типа - ask= MarketInfo(OrderSymbol(), MODE_ASK);

и нормализовать не забывайте
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS));


Спасибо, будем дальше учить мат.часть :))
 
sergeev:

верно выскакивает.

вам надо Bid и Ask брать из функции MarketInfo

типа - ask= MarketInfo(OrderSymbol(), MODE_ASK);

и нормализовать не забывайте
ask=NormalizeDouble(ask, MarketInfo(OrderSymbol(), MODE_DIGITS));


Урррррра!!!!! Получилось!!!!!!!!! )))))))) Код принял вид:

void CloseAll_b(int Prosk){
string SMB=Symbol();
for (int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
Alert("Ошибка ", GetLastError(), " при выборе ордера номер ",OrderTicket()," по паре ",Symbol());
}
else{
RefreshRates();
if(OrderType()==OP_BUY){
if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(), MODE_BID),Prosk,CLR_NONE)){
Alert("Ошибка ", GetLastError(), " при закрытии Buy-ордера номер ",OrderTicket()," по паре ",Symbol());
NormalizeDouble(Bid, MarketInfo(OrderSymbol(), MODE_DIGITS));
}
}
if(OrderType()==OP_SELL){
if(!OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(), MODE_ASK),Prosk,CLR_NONE)){
Alert("Ошибка ", GetLastError(), " при закрытии Sell-ордера номер ",OrderTicket()," по паре ",Symbol());
NormalizeDouble(Ask, MarketInfo(OrderSymbol(), MODE_DIGITS));
}}}}}

Огромное спасибо!!

 
nemo811:


Урррррра!!!!! Получилось!!!!!!!!! )))))))) Код принял вид:


вы его только в божеский вид приведите, отформатируйте и промежуточные переменные сделайте (для расчетных значений которые используются больше двух раз).

а то через две недели уже потеряетесь и забудете что он делает...

 
sergeev:

вы его только в божеский вид приведите, отформатируйте и промежуточные переменные сделайте (для расчетных значений которые используются больше двух раз).

а то через две недели уже потеряетесь и забудете что он делает...



...Это для меня уже наивысший пилотаж. Я пока только бумажные самолётики научился пускать :))))
 

Подскажите пожалуйста, как в советнике выставить стоп после открытия ордера,

через несколько тиков или секунд ? что то поиском ничего путного не нашел.

 
AAE:

Подскажите пожалуйста, как в советнике выставить стоп после открытия ордера,

через несколько тиков или секунд ? что то поиском ничего путного не нашел.


вставить типа

Sleep(5000);

если это Вам нужна задержка, а не брокеру ваши лавэ :))

 
AAE:

Подскажите пожалуйста, как в советнике выставить стоп после открытия ордера,

через несколько тиков или секунд ? что то поиском ничего путного не нашел.

вы имеете ввиду, что ваш брокер открывает рыночные ордера без стопов?

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

если вам просто нужна задержка, то как посоветовали выше - можете Sleep сделать.

 

Извините за наглость, но, если можно, подскажите:

Как реализовать, чтобы открытым Вручную по данной паре ордерам присваивался тот же MAGIC,

что и ордерам, открытым по этой паре самим советником. (MAGIC не равен 0)???

 
nemo811:

Извините за наглость, но, если можно, подскажите:

Как реализовать, чтобы открытым Вручную по данной паре ордерам присваивался тот же MAGIC,

что и ордерам, открытым по этой паре самим советником. (MAGIC не равен 0)???




вопрос снят - в мануале нашёл, цитирую: "...при установке ордера (открытии позиции), ему можно присвоить уникальный номер, по которому его потом можно отличить от остальных. Эту возможность нет смысла (да и не получится) использовать при ручной торговле, но она просто незаменима при торговле с помощью эксперта."

Придётся искать другое решение.

 
gince:

Спасибо, что помотрели пост. Индикатор прицепляю.

В нем нужен фильтр, который бы отфилтровал бы ненужные стрелки. На 56 стр. на картинке видно. Из всех подряд идущих одинаковых стрелок нужна только первая.

Делал еще так, но что то не так.



Извини. Совсем забыл
Файлы:
cross1_1.mq4  4 kb
Причина обращения: