Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ihor Herasko
11381
Ihor Herasko  
eevviill:

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

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

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

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

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

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

Vasyl Nosal
18964
Vasyl Nosal  
Scriptong:

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

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

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

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

Рустам
3597
Рустам  
Scriptong:

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

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

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

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

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

 

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

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

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

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

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

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

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

 

Ihor Herasko
11381
Ihor Herasko  
eevviill:

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

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

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

 

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

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

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

от 

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

Vasyl Nosal
18964
Vasyl Nosal  

Своя.

////////////////////////////////////////////////////////////////////////////////
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
 }
 }
 }
 }
 

}
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий