Советники: Trade-Arbitrage - страница 10

 
safarov:

Добрый день, подскажите почему закрываются не профитные ордера а только те которые в минусе ??

При Lock = TRUE ордера закрываются косвенно: открываются новые позиции, после чего разнонаправленные позиции "схлопываются" через OrderCloseBy. Так сделано для минимизации торговых запросов. В режиме Lock = FALSE закрытие позиций будет классическое, но количество (критичных для арбитража) торговых запросов будет минимум в два раза больше.

 
getch:
safarov:

Добрый день, подскажите почему закрываются не профитные ордера а только те которые в минусе ??

При Lock = TRUE ордера закрываются косвенно: открываются новые позиции, после чего разнонаправленные позиции "схлопываются" через OrderCloseBy. Так сделано для минимизации торговых запросов. В режиме Lock = FALSE закрытие позиций будет классическое, но количество (критичных для арбитража) торговых запросов будет минимум в два раза больше.


 Тогда вопрос при каких условиях он закрывает ордера, если  Lock = FALSE ?? 

 

safarov писал(а):

Тогда вопрос при каких условиях он закрывает ордера, если  Lock = FALSE ?? 

Читайте описание и комментарии к нему.

 

вы имеете ввиду то что написанно в эксперте ??

// С таким возвращаемым результатом можно прикрутить и асинхронную обработку ордеров брокера
// VolTmp = _OrderClose(OrderTicket(), NormalizeDouble(VolTmp, DigitsLot), Price, SlipPage);

Или Это

при Lock = TRUE количество критичных для арбитража торговых приказов минимально. При этом локированные позиции нивелируются.
запрет локов (Lock = FALSE).??

Насколько я помню Нивилирование это выравнивание, и если следовать логике эксперта мы просто находимся в неубытке, тоесть в нуле.

Находится в нуле не хотим не мы, не вы, значит у вас есть что то что действительно зарабатывает.

 

Если вы выложили експерта сдесь значит вы надеетесь на доработку, так давайте дорабатывать то что действительно работает.

 

Как и почему происходит открытие и закрытие позиций написано в описании и комментариях к нему. Более конкретно можно посмотреть в исходном коде советника.

Идея, действительно, рабочая. И при доработках (указанных в описании, в частности) советник лишится слабых (не связанных с идеей) технических сторон.

Нивелирование - уравнивание. В контексте комментариев в исходном коде понятие несет правильный смысл.

Причины выкладывания советника были даны в начале обсуждения (в комментариях к описанию).

 

Возникли вопросы по следующему:

#define MAX_CURRENCY 20 // Максимальное количество валют (не пар)
#define MAX_REALSYMBOLS 380 // Максимальное количесво учитываемых реальных сиволов из Market Watch (== (MAX_CURRENCY * (MAX_CURRENCY - 1)))
#define MAX_ALLSYMBOLS 380 // Максимальное количество возможных символов (== (MAX_CURRENCY * (MAX_CURRENCY - 1)))
#define MAX_VARIANTSYMBOLS 74 // Максимальное количество вариантов получения символа (== (4 * MAX_CURRENCY - 6))
#define MAX_VARIANTPAIRS 5402 // Максимальное количество сочетаний пар символов (== (MAX_VARIANTSYMBOLS * (MAX_VARIANTSYMBOLS - 1))

Что такое "символ" ?Если это пара то почему 380? Количество сочетаний из n по k расчитывается по формуле C=n!/(k!*(n-k)!) В нашем случае количество валют n=20 количество элементов в наборе k=2: С=20!/(2!*(20-2)!)=190

 

"Символ" - валютная пара. Помимо EURUSD есть еще и USDEUR. Поэтому MAX_REALSYMBOLS = MAX_CURRENCY * (MAX_CURRENCY - 1).

 

А я все делаю правильно, но в окне терминала Meta traider 4 в сообщениях эксперта Trade-Arbitrage все время останавливается, вот жук.. Пишет, типа, 2009.12.03 21:01:14 Trade-Arbitrage GBPAUD,M1: expert stopped 2009.12.03 21:01:14 Trade-Arbitrage GBPAUD,M1: expert function calls are not allowed; 'stdlib'-'ErrorDescription' (опытные функциональные запросы не позволяются..??-перевожу) 2009.12.03 21:01:14 Trade-Arbitrage GBPAUD,M1: open #14487374 sell 2.00 EURUSD at 1.5087 ok Он это пишет после открытия позиции (притом все время отрицательной..) чТО ОН ВСЕ ВРЕМЯ ЭТО ПИШЕТ ??..опытные функциональные запросы не позволяются..??опытные функциональные запросы не позволяются..?И при Lock = TRUE и при Lock = FALSE и monitoring=true и monitoring=FALSE. У меня интернет на USB- модеме (200кб/сек), Советник проскальзывает все время и останавливается? SlipPage - допустимое проскальзывание в пипсах. Поставил SlipPage=-1 и 1, MinPips=1,5, Lock = TRUE, monitoring=FALSE, позиции не открывает.. Хотел SlipPage=-0,5 поставить - "не разрешает"..

 

SlipPage не может быть отрицательным.

stdlib - стандратная библиотека MQL4. Переустановите свой терминал.

 
getch:

SlipPage не может быть отрицательным.Понятно. Пусть будет ноль.

stdlib - стандратная библиотека MQL4. Переустановите свой терминал.Переустанавливал. И на другом компе запускал. Все равно. Советник открывает ордер, пытается открыть следующий ордер, чтоб  пара получилась, и не может открыть 2 ордер..Графики что ли ему открывать минутные по всем валютам из Trade-Arbitrage.txt?..


Причина обращения: