я так понимаю вас интересуют внешние переменные ? extern вам в помощь :)
Нет, конечно вам сначала надо найти ордер при помощи функции OrderSelect(), или по тикету если вы его знаете, или в результате перебора ордеров по условию
можно так :
//+------------------------------------------------------------------+ // Проверка последнего ордера по условию | //+------------------------------------------------------------------+ bool LastCloseOrd(string Sy = "",//Если Sy=="" на принадлежность символу не проверяем int Type = -1,//Если Typ==-1 любой тип ордера int Magic = -1,//Если Magic=-1любой магик int Pr_Ls = 0){//Если Pr_Ls =0 без проверки на профит, если <0 то фильтр лосевых , если >0 то фильтр профитных ордеров int time=0; if(OrdersHistoryTotal()<1){return(false);}//Если нет закрытых ордеров выходим for(int i=0;i<OrdersHistoryTotal();i++){//Перебираем закрытые ордера if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)){//Выбираем ордер из истории if(OrderCloseTime()!=0){//Если ордер уже закрыт if(Sy==""||OrderSymbol()==Sy){//если совпадает символ, или нет проверки на символ if(Type==-1||OrderType()==Type){//если совпадает тип, или нет проверки на тип if(Magic==-1||OrderMagicNumber()==Magic){//если совпадает магик , или не проверки на магик if(OrderCloseTime()>time){//если время закрытия ордера больше чем предыдущее time=OrderCloseTime();//записываем время закрытия (в конце цикла у нас в ловушке булет сидеть последний закрытый ордер } //попадающий под все условия выставленных фильтров) } } } } } } if(Pr_Ls==0&&time!=0){return(true);}//если нет условия на профит-лосс подтверждаем наличие ордера if(Pr_Ls<0&&OrderProfit()<0){return(true);}//если ордер лосевый подтверждаем наличие ордера if(Pr_Ls>0&&OrderProfit()>0){return(true);}//если ордер профитный подтверждаем наличие ордера return(false);//нет ни одного попадающего под выставленные условия ордера }
описывал в соседней ветке, можете сходить к Игорю Киму в веточку, и подыскать там наиболее устраивающую вас функцию, и заодно опыта и понимания наберетесь
пардон перепутал, сейчас выложу точто надо
if(total>0) for ( cnt = 0; cnt < total; cnt ++ ) { OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); { if(OrderType()==OP_SELL)Ордер я выбираю вот так, а как дальше не могу понять(((
так где то
for(int i=0;i<OrdersTotal();i++){ if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)){ if(OrderSymbol()==Symbol()){ if(OrderType()<2){ double prise=OrderOpenPrice(); double sl=OrderStopLoss(); double tp =OrderTakeProfit(); } } } }
Спасибо, сейчас испробую)))

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пожалуйста подскажите, как в советнике задать переменную
double SL=(Стоплосс открытого ордера);
double TP=(Тейкпрофит открытого ордера);
double OP=(Цена открытия открытого ордера);
Заранее благодарю.