[Архив!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 2. - страница 459 1...452453454455456457458459460461462463464465466...537 Новый комментарий Роман 2011.06.22 15:04 #4581 Maximov7: Вот еще такой вопрос.... есть открытый ордер допустим такой: OrderSend("EURUSD",OP_BUY,0.1,C1,10,Bid-0.0017-0.0017,Ask+0.0017); как открыть другой ордер при условии(if) что этот закроется по тейкпрофиту???? книжку читали??? (хотяб ради прикола) Maximka7 2011.06.22 15:13 #4582 3 раза перечитал.....и все таки? Роман 2011.06.22 15:17 #4583 Maximov7: 3 раза перечитал.....и все таки? В цикле по истории закрытых ордеров находите "этот" ордер, далее проверяете закрылся ли он по ТР, если да, то открываете "другой". Все. Подробнее смотрите здесь - выбираете нужные Вам ф-ии, подключаете в Вашу прогу и все. Запрeт на повторноe открытиe [АРХИВ] Любой вопрос новичка, [ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой Maximka7 2011.06.22 15:38 #4584 Большое спасибо! Роман 2011.06.22 16:03 #4585 Maximov7: Большое спасибо! Пользуйтесь в радость. demlin 2011.06.22 17:01 #4586 Добрый вечер! Поглядите пожалуйста код: for(i=1;i<=OrdersTotal();i++) // перебора ордеров для трала { if (OrderSelect(i-1,SELECT_BY_POS)==true) { if (OrderSymbol()!=Instr) continue; if(OrderType()==0) { if ((Bid-(OrderOpenPrice()+TralingStop*Point))>0) return(55);} if(OrderType()==1) { if ((Ask-(OrderOpenPrice()-TralingStop*Point))<0) return(55); } } Не пойму в чем проблема, Алертом внутри тестирую, после Instr уже нигде не срабатывает : pending order # [АРХИВ] Любой вопрос новичка, Как закрыть первый ордер Роман 2011.06.22 17:11 #4587 demlin: Добрый вечер! Поглядите пожалуйста код: for(i=1;i<=OrdersTotal();i++) // перебора ордеров для трала { if (OrderSelect(i-1,SELECT_BY_POS)==true) { if (OrderSymbol()!=Instr) continue; if(OrderType()==0) { if ((Bid-(OrderOpenPrice()+TralingStop*Point))>0) return(55);} if(OrderType()==1) { if ((Ask-(OrderOpenPrice()-TralingStop*Point))<0) return(55); } } Не пойму в чем проблема, Алертом внутри тестирую, после Instr уже нигде не срабатывает Выше кода такая есть строчка? string Instr; Вы код вставьте по нормальному - через SRC в редакторе... :-))) demlin 2011.06.22 17:17 #4588 Roman.: Выше кода такая есть строчка? Вы код вставьте по нормальному - через SRC в редакторе... :-))) Да Instr есть, извиняюсь не знаю, что такое SRC Роман 2011.06.22 17:23 #4589 demlin: Да Instr есть, извиняюсь не знаю, что такое SRC Когда вставляете код в Ваш пост нажмите CTRL+ALT+M - потом туда (в окошко) ставите код (через буфер CTRL+C - копировать, CTRL+V- вставить), далее внизу окна нажимаете кнопку "вставить". Роман 2011.06.22 17:29 #4590 demlin: Добрый вечер! Поглядите пожалуйста код: for(i=1;i<=OrdersTotal();i++) // перебора ордеров для трала { if (OrderSelect(i-1,SELECT_BY_POS)==true) { if (OrderSymbol()!=Instr) continue; if(OrderType()==0) { if ((Bid-(OrderOpenPrice()+TralingStop*Point))>0) return(55);} if(OrderType()==1) { if ((Ask-(OrderOpenPrice()-TralingStop*Point))<0) return(55); } } Не пойму в чем проблема, Алертом внутри тестирую, после Instr уже нигде не срабатывает Попробуйте такой вариант - так у меня организована подобная конструкция. // ------------------------------------------------Ищем наш ордер--------------------------------- int orderType; for (int orderIndex = (OrdersTotal() - 1); orderIndex >= 0; orderIndex--) { if (!OrderSelect(orderIndex, SELECT_BY_POS)) { continue; } if ((OrderSymbol() != Symbol()) || (OrderMagicNumber() != MagicNumber)) { continue; } orderType = OrderType(); if ((orderType != OP_BUY) && (orderType != OP_SELL)) { continue; } ticket = OrderTicket( ); // Номер ордера orderLots = OrderLots(); // Lots orderProfit = OrderProfit() + OrderSwap(); // Profit Price = OrderOpenPrice(); // Цена открытия рыночного ордера SL = OrderStopLoss(); // Значение StopLoss ордера TP = OrderTakeProfit(); // Значение TakeProfit ордера if (ticket>0) // Если позиция открылась { while(OrderSelect(ticket,SELECT_BY_TICKET)==false) // Если ордер выбран { Sleep(100); } double OpenPrice=OrderOpenPrice(); if (orderType == OP_BUY) { //здесь трал покупки } if (orderType == OP_SELL) { //здесь трал продажи } } } 1...452453454455456457458459460461462463464465466...537 Новый комментарий
Вот еще такой вопрос.... есть открытый ордер допустим такой:
OrderSend("EURUSD",OP_BUY,0.1,C1,10,Bid-0.0017-0.0017,Ask+0.0017);
как открыть другой ордер при условии(if) что этот закроется по тейкпрофиту????
книжку читали??? (хотяб ради прикола)
3 раза перечитал.....и все таки?
В цикле по истории закрытых ордеров находите "этот" ордер, далее проверяете закрылся ли он по ТР, если да, то открываете "другой". Все.
Подробнее смотрите здесь - выбираете нужные Вам ф-ии, подключаете в Вашу прогу и все.
Большое спасибо!
Пользуйтесь в радость.
Добрый вечер!
Поглядите пожалуйста код:
for(i=1;i<=OrdersTotal();i++) // перебора ордеров для трала
{
if (OrderSelect(i-1,SELECT_BY_POS)==true)
{
if (OrderSymbol()!=Instr)
continue;
if(OrderType()==0)
{
if ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)
return(55);}
if(OrderType()==1)
{
if ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)
return(55);
}
}
Не пойму в чем проблема, Алертом внутри тестирую, после Instr уже нигде не срабатывает
Добрый вечер!
Поглядите пожалуйста код:
for(i=1;i<=OrdersTotal();i++) // перебора ордеров для трала
{
if (OrderSelect(i-1,SELECT_BY_POS)==true)
{
if (OrderSymbol()!=Instr)
continue;
if(OrderType()==0)
{
if ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)
return(55);}
if(OrderType()==1)
{
if ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)
return(55);
}
}
Не пойму в чем проблема, Алертом внутри тестирую, после Instr уже нигде не срабатывает
Выше кода такая есть строчка?
string Instr;Вы код вставьте по нормальному - через SRC в редакторе... :-)))Выше кода такая есть строчка? Вы код вставьте по нормальному - через SRC в редакторе... :-)))
Да Instr есть, извиняюсь не знаю, что такое SRC
Когда вставляете код в Ваш пост нажмите CTRL+ALT+M - потом туда (в окошко) ставите код (через буфер CTRL+C - копировать, CTRL+V- вставить), далее внизу окна нажимаете кнопку "вставить".
Добрый вечер!
Поглядите пожалуйста код:
for(i=1;i<=OrdersTotal();i++) // перебора ордеров для трала
{
if (OrderSelect(i-1,SELECT_BY_POS)==true)
{
if (OrderSymbol()!=Instr)
continue;
if(OrderType()==0)
{
if ((Bid-(OrderOpenPrice()+TralingStop*Point))>0)
return(55);}
if(OrderType()==1)
{
if ((Ask-(OrderOpenPrice()-TralingStop*Point))<0)
return(55);
}
}
Не пойму в чем проблема, Алертом внутри тестирую, после Instr уже нигде не срабатывает
Попробуйте такой вариант - так у меня организована подобная конструкция.