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

 
paladin80:
Уточните, вы про одну открытую позицию в рынке или один отложенный ордер? В любом случае в советнике надо проводить проверку на наличие позиции/ордера и если такой обнаружен то перед выставлением ордера return(0).

например я открыл(ордер) позицию на покупку вот по такому условию OPEN[0]>OPEN[3] и закрыл TakeProfit. после закрытия ордера условие на покупку по прежнему действует и соответственно эксперт откроет ещё ордер на покупку! мне нужно чтобы больше ордеров открыто не было, после достижения TakeProfit. Я про 1 рыночный ордер не отложенный!

 
lowech:

например я открыл(ордер) позицию на покупку вот по такому условию OPEN[0]>OPEN[3] и закрыл TakeProfit. после закрытия ордера условие на покупку по прежнему действует и соответственно эксперт откроет ещё ордер на покупку! мне нужно чтобы больше ордеров открыто не было, после достижения TakeProfit. Я про 1 рыночный ордер не отложенный!

Перед условием открытия позиции поставьте такой кусок кода:

if (OrdersTotal()>0) //находит общее кол-во позиций/ордеров
{  for (int i=OrdersTotal()-1; i>=0; i--) // их перебор
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // перебирает только среди позиций
      {  if (OrderSymbol()!=Symbol()) continue; // перебирает только позиции по тому символу
                                                // на чей график кинули советник
         if (OrderTicket()>0) return(0); // если обнаружена позиция - конец действия программы
}  }  }
 
paladin80:

Перед условием открытия позиции поставьте такой кусок кода:


спасибо большое! будем пробовать!

попробовал! всё равно открывает кучу ордеров! можно как нибудь сделать так чтобы когда ордер закрывается TakeProfit эксперт отключался?

 
lowech:

спасибо большое! будем пробовать!

попробовал! всё равно открывает кучу ордеров! можно как нибудь сделать так чтобы когда ордер закрывается TakeProfit эксперт отключался?

Если вы правильно поставили этот кусок кода именно перед условием открытия позиции то ваш советник однозначно не должен открывать более 1 позиции по данной валюте. На счёт отключения советника после TakeProfit - незачем его отключать. Лучше сразу делать правильный код.
 
paladin80:
Если вы правильно поставили этот кусок кода именно перед условием открытия позиции то ваш советник однозначно не должен открывать более 1 позиции по данной валюте. На счёт отключения советника после TakeProfit - незачем его отключать. Лучше сразу делать правильный код.

if (OrdersTotal()>0) //находит общее кол-во позиций/ордеров

{  for (int i=OrdersTotal()-1; i>=0; i--) // их перебор
   {  if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // перебирает только среди позиций
      {  if (OrderSymbol()!=Symbol()) continue; // перебирает только позиции по тому символу
                                                // на чей график кинули советник
         if (OrderTicket()>0) return(0); // если обнаружена позиция - конец действия программы 
}  }  }

этот код как я понял ищет открытые позиций! у меня проблема в том что советник открывает ордер за ордером не подряд, а после того как предыдущий ордер закроется TakeProfit или StopLoss позиция снова будет открыта и только 1 ордер ! я по этому и хочу отключить эксперта после того как ордер будет закрыт TakeProfit! или ограничить в день чтобы открывался 1 ордер OP_BUY и 1 OP_SELL.

 
lowech:

if (OrdersTotal()>0) //находит общее кол-во позиций/ордеров

этот код как я понял ищет открытые позиций! у меня проблема в том что советник открывает ордер за ордером не подряд, а после того как предыдущий ордер закроется TakeProfit или StopLoss позиция снова будет открыта и только 1 ордер ! я по этому и хочу отключить эксперта после того как ордер будет закрыт TakeProfit! или ограничить в день чтобы открывался 1 ордер OP_BUY и 1 OP_SELL.

Правильно ли я понял алгоритм:
После срабатывания условия входа в рынок открывается только одна позиция. Если она закрывается по профиту или лоссу то в тот день когда закрылась - больше не торговать. Кстати, вы торгуете по одному символу или по нескольким?
На счёт отключения советника я не знаю т.к. такого не применяю, может кто знает тут то напишет можно ли так.
 
Функция SendFTP отправляет текстовый файл на сервер. Но на сервере файл пустой - 0 КБ. В чем может быть проблема?
 
serler2:
Функция SendFTP отправляет текстовый файл на сервер. Но на сервере файл пустой - 0 КБ. В чем может быть проблема?
А на клиенте?
 
Reshetov:
А на клиенте?

Перепробовал много вариантов. И картинку и текстовик и стейтмент. Все приходит с нулевым объемом. На локальном компьютере естественно файлы не пустые.

 
serler2:

Перепробовал много вариантов. И картинку и текстовик и стейтмент. Все приходит с нулевым объемом. На локальном компьютере естественно файлы не пустые.

Тогда ХЗ, т.е. либо обратитесь к телепатам, либо код в студию.

Впрочем, не всегда сервер удачно проводит транзакции с МТ4. Бывали случаи, когда переключение режимов пассивный-активный помогало, а бывали, что ничего не помогало. Не все сервера и не все клиенты поддерживают полноценный протокол по RFC 959, отсюда и проблемы.