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

 
Sashulya:
hippy:
Sashulya:
Вопрос:
А как ты на реале будешь справляться с проблемой [Not enough money], если у тебя (Вас?..) на реал-счету нехватит средств для советника проглота..?


надо ставить разумный размер lots .при депо в 60$ максимальный залог составлял 1700-1900(17-19$) при открытых 15-25 ордеров

У меня на демо все по минимуму для моего брокера(0,1) и lots тоже (maxlot-0,7), но он все равно,проглот с балансом 2500$ (и больше было) открывает от 15 и более позиций и залог до 2000$ и еще хочет. Даже на minpips=3 было..

колличество позиций зависит от колличества строк в файле arbitrage trade.оставь 3- 5 строк с разными валютами и на все должно хватить.а еще лучше мини счет

 

как и обещал отчет с реала.за неделю торговли при входном депо 6000(60$) балланс на сейчас 5268,средства 5044.с моей стороны были сделаны ошибки:1 разрешил торговлю с начала открытии торгов,в результате чего при гэпе было открыто много убыточных ордеров 2 несколько ордеров закрыл вручную,не разобравшись правильно с валютами и объемами 3 было задано слишком много строк в файл arbitrage trade.НО САМОЕ ГЛАВНОЕ при одновременном открытии более 3 ордеров идут реквоты и проскальзывания,съедаюшие прибыль.работа советника безупречна,все делает по заданной программе,но на реал его надо модифицировать.САМА ИДЕЯ РАБОЧАЯ,так что ищите именяйте условия открытия и закрытия позиций.Таперь вопрос к автору и тем кто разбирается в программировании:если в коде в функции TRADEARBITRAGE убрать строки else if (Ask1<Bid2) OpenArbitragePosition(i,k,j,Lots);,то насколько я понимаю сделки не будут переворачиваться и закрываться и при возникновении такой же арб ситуации новых сделок не будет.если я не прав,то поправьте кто понимает.

 

Учет совершенных сделок производится в OpenArbitragePosition.

 

Попробовал я поразбираться в этом советнике недельки полторы.

Заранее соглашусь, что срок для проб и ошибок всё же недостаточен.

Но исходя из этого испытательного срока могу сделать временное заключение: если не делать грубых ошибок, то эксперт действительно может быть безубыточным. Но он настолько же БЕЗУБЫТОЧНЫЙ, насколько (по большому счету!) и БЕСПРИБЫЛЬНЫЙ.

И по элементарным законам физики:) в этом ничего удивительного нет.

Судя по огромному количеству комментариев, getch подбросил массам великолепную игрушку для упражнения мозгов. За это ему и ОГРОМНОЕ СПАСИБО! Без сарказма.

 

У меня следующий вопрос к автору. Если возникло сразу несколько вариантов арбитража, то в настоящей версии советник пытается отработать каждый из них по-очереди. Мне кажется, что поскольку время существования арбитража очень мало, лучше отработать только по одному варианту. При этом, конечно, можно увеличить размер лота и выбрать наиболее подходящий вариант по каким-либо критериям. Что скажет автор на такую точку зрения?

 

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

Это достигается благодаря внутреннему (виртуальному) представлению позиций

 

потихоньку разбираюсь с экспертом, вопрос по следующей арбитражной ситуации для GBPJPY && EURJPY / EURGBP. Приведу текст из лог-файла

12:52:05 Trade-Arbitrage EURUSD,H1: Variant1 = GBPJPY (Bid = 146.890000), Variant2 = EURJPY / EURGBP (Ask = 146.812528), Difference = 7.7 pips
12:52:05 Trade-Arbitrage EURUSD,H1: ; SELL GBPJPY(-0.50) = 146.89 Bid; SELL EURGBP(-0.56) = 0.9004 Bid; BUY EURJPY(0.56) = 132.19 Ask
12:52:05 Trade-Arbitrage EURUSD,H1: open #3228478 buy 0.56 EURJPY at 132.19 ok
12:52:05 stdlib EURUSD,H1: loaded successfully
12:52:05 Trade-Arbitrage EURUSD,H1: 3228478 = OrderSend(EURJPY, OP_BUY, 0.56, 132.19, 0, 0, 0) - no error, SlipPage = 0, Lots = 0.56
12:52:05 Trade-Arbitrage EURUSD,H1: -1 = OrderSend(EURGBP, OP_SELL, 0.56, 0.9004, 0, 0, 0) - requote, SlipPage = 0, Lots = 0


Меня смущает, что во время арбитража советник загружает библиотеку stdlib. Возможно, что из-за этого случился requote по следующим ордерам?

 
stdlib

содержит информационную функцию ErrorDescription, которую можно скопировать в текст советника и тем самым отказаться от использования данной библиотеки. В MQL4 библотеки подгружаются во время первого их использования, далее - не подгружаются. Подгрузка почти мгновенная. Поэтому на результаты торговли данное обстоятельство никак не влияет.

 

Прошу разъяснить параметр:

extern double MinPips = 2.0; // Минимальная учитываемая разница арбитража в "старых" пунктах

Какие используются "старые" пункты? Почему "старые"? Как эти пункты переделать в "новые" и возможно ли это?

 

"Старые" и "новые" пункты (пипсы) - это некоторые условности, неформальный слэнг.

"Старые" - 0.0001 для EURUSD (0.01 для USDJPY).

"Новые" - 0.00001 для EURUSD (0.001 для USDJPY).

Размер пункта - это чистая условность, не поддающаяся четкой формализации. Поэтому однозначно правильно определить размер пункта, например, для JPYEUR невозможно.

Формализовал этот момент кратко (см. функцию GetPipsD), чтобы было понятно пользователям. По этой причине арбитраж между многими синтетическими парами игнорируется при MinPips > 0 (строго больше).

Совсем было бы правильно заменить MinPips на относительную величину. Например, если относительную величину взять 0.006%, то для EURUSD (1.5000) это соответствовало бы примерно 0.0001 (одному "старому" пункту), а для JPYEUR (0.00752) - 0.0000005.

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