Помогите разобраться с внутренностями "Закрыть перекрытые ордеры" - страница 2

 
eevviill:

И какой вопрос был?

Есть ли штатная функция закрытия всех перекрытых ордеров?

Вместо нет, куча умных флудильных фраз. 

Если Вы не поняли, что хотел сказать другой человек, то это вовсе не означает, что он написал ерунду. Подумайте: возможно, Вы попросту не смогли разобраться в сути ответа. В таком случае вовсе не зазорно уточнить то, что не поняли.

В данном случае Рустам четко ответил на вопрос: "Такой функции нет". При этом было предложено решение проблемы: разделить приложение на две части (аналитическую и исполнительную). Аналитическая часть никогда не посылает торговые запросы, что дает ей возможность обрабатывать данные на постоянной основе. При необходимости выполнения приказа "Аналитик" передает задание "Исполнителю", который занимается только тем, что отсылает на сервер торговые приказы и сохраняет результаты этих операций.

Сообщение между "Аналитиком" и "Исполнителем" - дело фантазии программиста. Благо, возможностей много: глобальные переменные, файлы, именованные каналы, события на чартах.

 
Scriptong:

Если Вы не поняли, что хотел сказать другой человек, то это вовсе не означает, что он написал ерунду. Подумайте: возможно, Вы попросту не смогли разобраться в сути ответа. В таком случае вовсе не зазорно уточнить то, что не поняли.

В данном случае Рустам четко ответил на вопрос: "Такой функции нет". При этом было предложено решение проблемы: разделить приложение на две части (аналитическую и исполнительную). Аналитическая часть никогда не посылает торговые запросы, что дает ей возможность обрабатывать данные на постоянной основе. При необходимости выполнения приказа "Аналитик" передает задание "Исполнителю", который занимается только тем, что отсылает на сервер торговые приказы и сохраняет результаты этих операций.

Сообщение между "Аналитиком" и "Исполнителем" - дело фантазии программиста. Благо, возможностей много: глобальные переменные, файлы, именованные каналы, события на чартах.

И? Где его ответ?

 
Scriptong:

Если Вы не поняли, что хотел сказать другой человек, то это вовсе не означает, что он написал ерунду. Подумайте: возможно, Вы попросту не смогли разобраться в сути ответа. В таком случае вовсе не зазорно уточнить то, что не поняли.

В данном случае Рустам четко ответил на вопрос: "Такой функции нет". При этом было предложено решение проблемы: разделить приложение на две части (аналитическую и исполнительную). Аналитическая часть никогда не посылает торговые запросы, что дает ей возможность обрабатывать данные на постоянной основе. При необходимости выполнения приказа "Аналитик" передает задание "Исполнителю", который занимается только тем, что отсылает на сервер торговые приказы и сохраняет результаты этих операций.

Сообщение между "Аналитиком" и "Исполнителем" - дело фантазии программиста. Благо, возможностей много: глобальные переменные, файлы, именованные каналы, события на чартах.

  не обращайте внимания, это у юзера такой тип общения - нос повыше, и побольше хамства, так он доказывает окружающим и самому себе что он лучше...  это пройдет... со временем... возможно.
 
eevviill:

И? Где его ответ?

 

  на предыдущей странице.
 
Andres:

Для моей системы время исполнения сделок является критичным. Например если советник работает на тиковых котировках, при быстром движении цены, да если ещё и закрыть надо 5-10 таких перекрытых ордеров. Если бы сделки исполнялись милисекунды, было бы всё прекрасно, но бывает что закрытие или открытие происходит по 5 секунд. А для 10 ордеров это уже почти минута. Пока цикл шлёт эти 10 запросов на закрытие перекрытых ордеров, новые котировки советник не обрабатывает. А за минуту цена может далеко "уплясать".

Ну это как пример. А вообще появилась идея - написать скрипт закрывающий в цикле, скажем, 100 таких ордеров. Измерить время его работы и измерить время работы аналогичной функции из терминала.

И ещё вопрос: А реквоты во время закрытия перекрытых ордеров могут иметь место ? Так то изменение цены на суперпозицию не влияет...

Опасная система.

Денег на Вашем банковском счете, скорее всего, всегда будет недостаточно для покрытия убытков от подобной торговли. ))

Даже брокеры, торгующие на бирже с пола, не имеют такой (милисекунды) скорости исполнения.

 

 
eevviill:

И? Где его ответ?

Прямо в цитируемом Вами сообщении))
 
Scriptong:
Прямо в цитируемом Вами сообщении))

Точно, точно.

 

Это не отличается

разделяйте исполнительную и аналитические части.

когда несколько зацикленных скриптов или советников работающих по таймеру получают команды на открытие\закрытие через глобалки от советника, или индикатора в котором реализована стратегия.   

от 

 "Такой функции нет"

 

Своя.

////////////////////////////////////////////////////////////////////////////////
void Close_all_by()
{
int cur_ticket;


for(int i=OrdersTotal()-1; i>=0; i--)
 {
 if(OrderSelect(i, SELECT_BY_POS))
 {
 if(OrderMagicNumber()==Magic)
 {
 if(OrderSymbol()==Symbol())
 {
 //BUY
 if(OrderType()==OP_BUY)
 {
 cur_ticket=OrderTicket();
 for(int y=i-1; y>=0; y--)
 {
 if(OrderSelect(y, SELECT_BY_POS))
 {
 if(OrderMagicNumber()==Magic)
 {
 if(OrderSymbol()==Symbol())
 {
 if(OrderType()==OP_SELL)
 {
 i++;
 if(OrderCloseBy(OrderTicket(),cur_ticket)) break;
 }
 }
 }
 } 
 }
 }//end if buy
 else
 //SELL
 if(OrderType()==OP_SELL)
 {
 cur_ticket=OrderTicket();
 for(int y2=i-1; y2>=0; y2--)
 {
 if(OrderSelect(y2, SELECT_BY_POS))
 {
 if(OrderMagicNumber()==Magic)
 {
 if(OrderSymbol()==Symbol())
 {
 if(OrderType()==OP_BUY)
 {
 i++;
 if(OrderCloseBy(OrderTicket(),cur_ticket)) break;
 }
 }
 }
 } 
 }
 }//end if sell
 }
 }
 }
 }
 

}