Торговля спредами в Meta Trader-е - страница 15

 
getch >>:

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

Если корреляции нет, то это уже классичесая торговля сразу с несколькими торговыми инструментами.

Не так. Торговля спредом это pairs trading, торговля одного синтетического продукта, который, как в данном случае, состоит из одного индекса лонг и другого шорт. Корреляция между двумя этими индексами не обязательна, важна коинтеграция.

Статистический арбитраж это купить все недооцененные ассеты и одновременно продать все переоцененные, корреляция между конкретными ассетами не важна, даже коинтеграция не очень важна. Важна статистика - большое число ассетов.

Иногда pairs trading называют статистическим арбитражем, они весьма близки, но все-таки лучше их различать.

 

Хочется все же разобраться в терминологии.

Что такое ассет, коинтеграция и корреляция?

 
rid >>:


Это можно реализовать (в самом простом виде) вот так:

При этом позиции можно открывать вручную - скриптом И.Кима (есть на его сайте), позволяющим задавать магик при открытиии позиции. 

 http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=47 и 

http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=46

Т.к. я заложил по магику (Magic и Magic2) вид "хеджа" в коде - это необходимо, т.к. разные позиции у нас в обоих видах "хеджа" обсчитываются и закрываются по разным ценам, - - по аскам и бидам  обоих  тикеров #I .

rid, 

опять же, сорри за наивный вопрос - это уже готовый эксперт? или с помощью этого надо модернизировать Кимовский e-CloseByProfit?

 
rid писал(а) >>

Вот тут всплыла проблема. Откуда и не ждал.

При таком отображении текущей прибыли "хеджа" в комменте - прибыль второго символа (второй сделки) отображается не совсем корректно!

Вот почему. Советник "стоит" на графике первого инструмента и вся инф-я меняется с приходом нового тика на этом инструмете.

Но бывает так, что за это время, - на втором инструменте проходят несколько тиков! Но эта информация не поступает в коммент ("Текущая прибыль 2-го символа BUY-UP ="), т.к. на график (где стоит советник) первого инструмента всё еще не поступил новый тик!

Как тут можно поступить ? Чтобы устранить несоответствие ?

Пож. подскажите.

Наиболее простое решение - запустить аналогичный эксперт (или функцию расчёта прибыли) на параллельном инструменте.

Также можео подавать команды на открытие/закрытие поз по парам из любого советника.

При этом нужно предусмотреть чтобы не было дублирования, например, тот советник, который раньше дал команду на открытие

(тик по его инструменту пришёл раньше) выставляет флаг через глобальную переменную терминала и другой советник отдыхает.

 

to Den2000 (в личку глянь)

По сути, - Это уже готовый эксперт(для Броко), но работающий только на закрытие уже открытых позиций ("хеджей"), открытых указанными (по ссылкам)  скриптами И.Кима.

Только для фьюч. инструментов с тикерами.

Там только еще в самый-самый конец кода (вне ф-и СТАРТ)  нужно поставить функции И.Кима (прямо по порядку, одну за другой):

PriceOpenLastPos() https://forum.mql4.com/ru/11287/page63#126982

ClosePosFirstProfit(); https://www.mql5.com/ru/forum/107476/page14#76382

ClosePosBySelect() https://www.mql5.com/ru/forum/107476/page13

 GetNameOP(int op) https://www.mql5.com/ru/forum/107476/page6#69097

NumberOfPositions() (для блока коммента) https://www.mql5.com/ru/forum/107476/page18#78397

Впрочем, думаю - все эти ф-и (кроме первой) наверное, есть в Кимовском e-CloseByProfit и можно их оттуда взять. 

А в глобальные переменные нужно добавить (сверху) :

extern string ___ = "=== Прочие Параметры советника  ===";

extern bool   UseSound      = True; // Использовать звуковой сигнал
extern string NameFileSound = "expert.wav";// Наименование звукового файла
extern color  clCloseBuy    = Yellow;    // Цвет закрытия покупки
extern color  clCloseSell   = Green;    // Цвет закрытия продажи
extern int    NumberOfTry   = 10;      // Количество попыток
string SoundSuccess  = "ok.wav";      // Звук успеха
string SoundError    = "timeout.wav";// Звук ошибки
int        Slippage        = 50;   // Проскальзывание цены при закрытии
//-- Подключаемые модули --
#include <stderror.mqh>
#include <stdlib.mqh>


//----------------------------------------------------------

А открывать "хеджи" обязательно нужно указанными скриптами И.Кима, позволяющими задать магик. Т.к. советник различает и закрывает "тип хеджа" именно - по заданным при открытии магикам

Причем для хеджа=(покупка 2-го + продажа 1-го инст-та) нужно задавать магик = магику советника.

А для хеджа=(покупка 1+ продажа 2) нужно задавать магик на 1-цу больше (т.е. магик советника +1)

Первый инстр-т - это тот, на график которого установлен советник .

 
goldtrader >>:

Наиболее простое решение - запустить аналогичный эксперт (или функцию расчёта прибыли) на параллельном инструменте.

Также можео подавать команды на открытие/закрытие поз по парам из любого советника.

При этом нужно предусмотреть чтобы не было дублирования, например, тот советник, который раньше дал команду на открытие

(тик по его инструменту пришёл раньше) выставляет флаг через глобальную переменную терминала и другой советник отдыхает.

М-да...  Похоже, -  проще, как у Fduch-а, сделать в виде зацикленного скрипта... 

 
gurman >>:

Спасибо, суть то мне понятна... я и сам эту "тему" пытаюсь пользовать. Тока в кодах я "ни бум-бум", по-этому пользуюсь разными подручными приспособлениями. Вот, ищу что-нибудь подходящее для себя.

А Вы свой советник планируете в свободный доступ или как...? Было бы интересно попробовать...


    Пока нет. Он ещё сырой, "на соплях" висит. Скорее всего, свою окончательную  версию - я выложу не скоро.

//-----------------------------

Но можно здесь,  на этом форуме обратиться к профессиональным программистам . По сходной и разумной цене они быстро напишут советник .

Тем более, что суть вам понятна и тех/задание вы сможете составить толково.

 
Fduch >>:

Мне пришлось немного изменить формат - теперь торгует не советник, а скрипт. Скрипт с таким int start():

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

Все нормально. Советник с такой конструкцией уже неделю пашет. Единственный минус -- в свойства не залезешь.

goldtrader >>:

Наиболее простое решение - запустить аналогичный эксперт (или функцию расчёта прибыли) на параллельном инструменте.

Также можео подавать команды на открытие/закрытие поз по парам из любого советника.

Не не, не тот случай. Все в один советник, причем еще и с разным механизмом открытия\закрытия по инструментам.

 

На все инструменты вашаются одинаковые советники-паразиты, которые по приходу своего тика создают искусственный тик на том графике, где висит мультивалютнный советник.

Но зацикленный вариант видится правильнее.

 

TheXpert писал(а) >>


Все нормально. Советник с такой конструкцией уже неделю пашет. Единственный минус -- в свойства не залезешь.

Запросто можно залезть в свойства зацикленного советника. Временно отключить кнопку "Советники" и подредактировать свойства. Самое главное, потом не забыть обратно включить кнопку.

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