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

 

Хочу привести свои мысли по поводу сравнения двух условий получения профита от арбитража.

Первое условие - из описания советника:

При открытии BIDx > ASKy, при закрытии BIDy > ASKx. Таким образом, прибыль: Profit = (BIDx - ASKy) + (BIDy - ASKx). Алгоритм советника осуществляет поиск ситуаций, когда первая и вторая скобка >= MinPips, т.е. прибыль должна быть Profit >= 2 * MinPips

Затем уважаемый getch привел еще одно условие прибыльности: (BIDx - ASKy) > SPREADx + SPREADy

Таким образом, прибыль Profit = (BIDx - ASKy) - ( SPREADx + SPREADy )=   (BIDx - ASKy) - (ASKx-BIDx+ASKy-BIDy) = 2 *  (BIDx - ASKy) + ( BIDy - ASKx ), а с учетом вышесказанного в этом случае прибыль Profit >= 3 * MinPips

Получается, что при поиске всех возникающих арбитражных ситуаций советник со вторым условием будет отсеивать больше сделок (из-за недостаточного ожидаемого профита). Такому советнику будет соответствовать советник с первым условием с большим в полтора раза значением MinPips.

Тогда выходит, что второе условие - это частный случай более универсального первого условия!

И еще один момент. Автор тут выкладывал выдержку из своих отчетов, сказав, что модификация условия первого на второе привела к нахождению советником более прибыльных арбитражных ситуаций. Смею заметить, что это не модификация привела к этому, а просто случайность. Оба варианта ПРАВИЛЬНО находят арбитраж в котировках, но отсеивают ситуации с разным объемом недостаточного ожидаемого профита для входа в рынок. Прибыль от арбитраджа (в идеальных условиях) не может быть разной при применении советников с разными условиями, т.е. найти-то они найдут с одинаковым успехом, а дальше все зависит от брокера (успеет ли советник удачно открыть позы или нет) и от "величины" арбитража (грубо говоря - MinPips).

 
Costy:

Хочу вставить свои пять копеек. Идея мне показалась блестящей. пару-тройку недель поигрался с советничком. Однако никакой прибыли мне извлечь не удалось (но и просадить тоже).

Во-первых, я понял, что если прибыль и удастся выжать, то для работы нужен большой депозит (около 10000, чтобы в месяц делать несколько сотен на хлеб)

Второе. Эти самые арбитражные ситуации случаются в основном по экзотическим парам (по которым и залог больше и спред). Например ставлю я minPips=5, а спред =25.

Третье. Я так понял (по идее стратегии и отзывам), что советничку наплевать на отключения терминала и интернета. НО. Однако отключения интернета (даже кратковременные, несколько минут)приводили у меня к открытию новых позиций сразу после восстановления связи. Вероятно, свежие котировки подгружались в терминал не одномоментно по всем валютам, что приводило к появлению мнимых арбитражных ситуаций. Сделки открывались естественно по свежим ценам.

В-четвертых, применять его в торговле мне кажется можно только в ДЦ, где котировки идут не слишком часто. и скорость исполнения велика (с этой точки зрения мне кажется, что использовать нужно только наборы из трех пар)


1) По размеру депозита - да, и у меня при тестах на демо 10000 едва хватает при maxlot = 1.0, minlot = 0.01, и lots = 0.1

2) и у меня так. Но спред тут не повлияет на размер прибыли. Даже если спред будет 25, а Minpips = 5, то советник получит прибыль от сделки, если найдет возможность для входа. Но вот вопрос в том, что больший размер спреда - в нашем случае это некая "защита" от применения арбитражных алгоритмов - чем он больше, тем больше должна быть разница в курсах валют X и Y, чтобы обеспечить условие арбитража. Грубо говоря, курсы экзотических валют иногда не успевают изменяться в соответствии с изменениями курсов на основные валюты, поэтому там и спред выше.

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

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

 

Условие (BIDy - ASKx) > SPREADx + SPREADy обозначает, что Profit будет положительным, даже если только одно слагаемое (значение скобки) будет > SPREADx + SPREADy.

Т.е. если выполнилось это условие при открытии, то дожидаться обратного арбитража (условие для второй скобки) не надо. Как только цены синхронизируются (исчезнет арбитражная ситуация), Profit будет положительным и можно закрывать позиции. Код приводил.

 
stormgas:

2) и у меня так. Но спред тут не повлияет на размер прибыли. Даже если спред будет 25, а Minpips = 5, то советник получит прибыль от сделки, если найдет возможность для входа. Но вот вопрос в том, что больший размер спреда - в нашем случае это некая "защита" от применения арбитражных алгоритмов - чем он больше, тем больше должна быть разница в курсах валют X и Y, чтобы обеспечить условие арбитража. Грубо говоря, курсы экзотических валют иногда не успевают изменяться в соответствии с изменениями курсов на основные валюты, поэтому там и спред выше.

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

Что я не понял:

в файле Arbitrage statitics у меня появлялись записи такого рода (конкретно этих пар не было) с разными частотами появления

EURUSD * USDJPY && EURJPY
EURUSD && EURJPY / USDJPY
да разве ж это не одно и то же? И следует ли вставлять обе эти записи в конфигурационный файл для торговли? Зачем путать людей этими делениями и умножениями, особенно 1/(..) && 1/(..)?

по 2): Ну на экзотике у меня довольно много было ситуаций с pips>15, >30! (это при minpips=5.0), а что толку-то? Прибыли я не видел. Может пока он заходил, цена уже изменялась конечно.

по 4): Спасибо за ссылочку, для справки полезно.Я против комбинаций из четырез валют как раз по той причине, что открыть 4 ордера дольше, чем три. Все сожрут задержки.

 

Costy писал(а):
Что я не понял:

в файле Arbitrage statitics у меня появлялись записи такого рода (конкретно этих пар не было) с разными частотами появления

EURUSD * USDJPY && EURJPY
EURUSD && EURJPY / USDJPY
да разве ж это не одно и то же? И следует ли вставлять обе эти записи в конфигурационный файл для торговли? Зачем путать людей этими делениями и умножениями, особенно 1/(..) && 1/(..)?

Условие MinPips может выполняться для EURUSD * USDJPY && EURJPY и одновременно не выполняться для EURUSD && EURJPY / USDJPY.

Деления и умножения позволяют рассматривать и такие ситуации:

GBPNZD && 1 / NZDGBP
EURAUD && 1 / AUDEUR
GBPAUD * AUDEUR && 1 / (NZDGBP * EURNZD)
PLNSEK * SEKDKK && 1 / (CZKPLN * DKKCZK)

 

Об одной возможной причине синхронизации валютных пар написал здесь.

 
getch:

Условие MinPips может выполняться для EURUSD * USDJPY && EURJPY и одновременно не выполняться для EURUSD && EURJPY / USDJPY.

Деления и умножения позволяют рассматривать и такие ситуации:

GBPNZD && 1 / NZDGBP
EURAUD && 1 / AUDEUR
GBPAUD * AUDEUR && 1 / (NZDGBP * EURNZD)
PLNSEK * SEKDKK && 1 / (CZKPLN * DKKCZK)

Об одной возможной причине синхронизации валютных пар написал здесь


1) Как понимать строку EURUSD * USDJPY && EURJPY?

Что в определенный момент Ask (EURUSD * USDJPY) - Bid (EURJPY)>=Minpips? (количество лотов пока опустим). Т.е. надо срочно купить EURUSD и USDJPY, и продать EURJPY?

Или Bid (EURUSD * USDJPY) - Ask (EURJPY)>=Minpips и надо срочно продать EURUSD и USDJPY, и купить EURJPY? Поясните, пожалуйста.

2) Что меняется для случая EURUSD && EURJPY / USDJPY?

Ask (EURUSD) && Bid (EURJPY / USDJPY) = BUY (EURUSD), SELL (EURJPY), BUY (USDJPY). Bid (EURJPY / USDJPY) здесь мне кажется лишенным смысла, т.к. йену надо покупать. Разве не так?

3) GBPAUD * AUDEUR && 1 / (NZDGBP * EURNZD) - хороший пример, согласен. GBPNZD && 1 / NZDGBP - а это-то что такое? где купить NZDGBP? Нет такой пары. Чтоб ее купить надо продать GBPNZD, правильно? И в чем тут фишка? Купить и продать GBPNZD?

Честно прочитал все комментарии, но как-то эти моменты не отложились.

Что Вы написали о синхронизации валютных пар очень трудно понять из-за излишней математизации. Хотя размышления Ваши любопытны и механизм этот мне тоже интересен. Клиентов X и Y можно было назвать, например, Вася и Петя....

 

В файле ArbitrageStatistic.txt указаны варианты арбитражных пар и количество взаимопереворотных арбитражных ситуаций.

  1. EURUSD * USDJPY && EURJPY обозначает, что рассматривается арбитраж между EURUSD * USDJPY (EURJPY_x) и EURJPY (EURJPY_y). Т.е. между EURJPY_x и EURJPY_y.
    Если Bid(EURJPY_x) - Ask(EURJPY_y) >= Minpips, то в случае, если последнее действие по этой комбинации не было вызвано таким же условием, надо сделать SELL EURJPY_x и BUY EURJPY_y.
  2. EURUSD && EURJPY / USDJPY обозначает, что рассматривается арбитраж между EURUSD (EURUSD_x) и EURJPY / USDJPY (EURUSD_y). Т.е. между EURUSD_x и EURUSD_y.
    Если Bid(EURUSD_x) - Ask(EURUSD_y) >= Minpips, то в случае, если последнее действие по этой комбинации не было вызвано таким же условием, надо сделать SELL EURUSD_x и BUY EURUSD_y.

Если в обоих пунктах будет принято решение о торговле, то с направлениями реальных валютных пар будет одинаково:
SELL EURUSD, SELL USDJPY, BUY EURJPY. Но объемы будут разными, т.к параметр Lots для первого случая откроет равные Lots объемы для EURJPY_xy, для второго - EURUSD_xy.

Некоторые ДЦ котируют и NZDGBP (вместе с GBPNZD) и AUDEUR (вместе с EURAUD) ... По аналогии вышеприведенных рассуждений:

GBPNZD && 1 / NZDGBP обозначает, что рассматривается арбитраж между GBPNZD (GBPNZD_x) и 1 / NZDGBP (GBPNZD_y). Т.е. между GBPNZD_x и GBPNZD_y.
Если Bid(GBPNZD_x) - Ask(GBPNZD_y) >= Minpips, то в случае, если последнее действие по этой комбинации не было вызвано таким же условием, надо сделать SELL GBPNZD_x и BUY GBPNZD_y.

 
getch:
EURUSD && EURJPY / USDJPY обозначает, что рассматривается арбитраж между EURUSD (EURUSD_x) и EURJPY / USDJPY (EURUSD_y). Т.е. между EURUSD_x и EURUSD_y.
Если Bid(EURUSD_x) - Ask(EURUSD_y) >= Minpips, то в случае, если последнее действие по этой комбинации не было вызвано таким же условием, надо сделать SELL EURUSD_x и BUY EURUSD_y.

Спасибо за конкретные подробные разъяснения. Однако как понять Ask(EURUSD_y) или иначе говоря Ask(EURJPY / USDJPY ), если USDJPY надо продавать и цена будет Bid? Насколько я понимаю, объемы в данном "хедже" из трех пар будут одинаковыми у EURUSD и EURJPY. Или Вы хотите сказать что во втором случае они будут увеличены/уменьшены на какой-то коэффициент?

По NZDGBP мне кажется, что это будет синтетика конкретного ДЦ и вряд ли по ней будут арбитражные ситуации, или не так?

 
tolik777:

Не могу понять как заставить работать данный советник. На Альпари-Демо работать не хочет, все рвемя ругается на минимальный лот, хотя пробовал и 0.01 и 0.1 (реально - 0.1).

Поставил на Alpari - Micro (реальный). Мин. лот - 0.01. На лот ругаться перестал, но в файлы вообще ничего не пишется. Советник поместил в папку /experts. Там же создал 2 файла ArbitrageStatistic.txt и Arbitrage.txt. MinPips поставил 0 (пробовал и -3). Но оба файла пустые. MetaTrader 4.0 Build 225. Лишние пары с настроек убрал. Что не так делаю?

В логах (папка experts/log) обнаружил вот такие строчки:

19:51:33 Trade-Arbitrage: invalid handle -1 in FileIsEnding
19:51:33 Trade-Arbitrage: invalid handle -1 in FileClose


Друзья, помогите!!! У меня такая же проблема. Как ее решить? ТХТ файл - в experts есть, в ArbitrageStatistic.txt пишет. В Trade-Arbitrag копирую. А он работать не хочет! Заранее спасибо!