Форум трейдеров » Торговые стратегии » Квазиарбитраж в краткосрочной торговле
+ Подписаться
Страница 8 из 267 ПерваяПервая ... 6789101858108 ... ПоследняяПоследняя
  1. 5,971
    Комментарии
    10
    Темы
    5316
    Репутация Pro
    Аватар для leonid553  
    Старожил

    6 Медалей
    Цитата Сообщение от MAV_Money Посмотреть сообщение
    leonid553, а можно твою стратегию на истории прогнать?
    Если, например, скрипт проходит по истории и записывает в файл двту и время открытия позиций и их закрытия. Далее, советником прогоняем по одному инструменту и получаем результат, потом прогоняем по второму инструменту и получаем результат. Потом сводим всё в общий результат. Можно так? Или я что-то не понимаю?
    Возможные проблемы:
    1. Разные спреды в разное время (между Bid и Ask).
    2. В разное время нужно разное соотношение для торговли брать.
    Можно, конечно попробовать. Т.е. прогонять советник на одном сначала инструменте при одновременной(синхронной) виртуальной имитацией сделок второго инструмента. А потом наоборот.
    Канительно это будет. Кроме того, довольно непросто оптимально программно задать само расхождение ценовых линий и разворот линии эквити второго индюка(спреда).

    Собственно, вот, пож. - такой вариант для покупки1 и продажи2
    Код:
    if ( TRADE ==true) {// бары по времени совпадают - торговлю разрешаем 
    //жжжжжжжоткрытие позиций  TradeUP(первого хеджа)жжжжжжжж
     флаг1=0;
    if( NumberOfPositions("" ,-1,Magic)>=2 )  флаг1=1;//если число позиций >= 2
    if (NumberOfPositions("" ,-1,Magic)<1 )  флаг1=0;//если нет откр. позиций
    //-------------------------------------------------
    if ( TradeUP==true && флаг1==0) {//если условия соответствуют заданным  
    //продаем 1-й символ и покупаем второй символ 
    //-------------------------------------
    if(Symbol()!= Symbol_2 && IsTesting() == True) {//при тестировании 
    //2-го инструмента команду не выполняем !
    if ( NumberOfPositions(Symbol_1,OP_SELL,Magic)<1  ){//нет поз.
    //селл по 1-му символу
     SL=0;TP=0;
    if(StopLoss>0)   SL=Bid_1+POINT_1*StopLoss;
    if(TakeProfit>0) TP=Bid_1-POINT_1*TakeProfit; 
    ti=OpenPosition(Symbol_1, OP_SELL, Lots_1,0 ,0,Magic);
    if (OrderSelect(ti, SELECT_BY_TICKET))
     ModifyOrder(-1, SL, TP, clModifySell);  
        }
                       }//if (IsTesting() == True)
    //--------------------------------------
    if(Symbol()!= Symbol_1 && IsTesting() == True){//при тестировании
    // 1-го инструмента команду не выполняем !
     if ( NumberOfPositions(Symbol_2,OP_BUY,Magic)<1) { //нет  поз бай по 2-му символу 
       SL=0;TP=0;
    if(StopLoss>0)   SL=Bid_2-POINT_2*StopLoss;
    if(TakeProfit>0) TP=Ask_2+POINT_2*TakeProfit;   
    ti=OpenPosition(Symbol_2, OP_BUY, Lots_2,0,0,Magic);
    if (OrderSelect(ti, SELECT_BY_TICKET))
      ModifyOrder(-1, SL, TP, clModifyBuy); 
              }
                             }//if (IsTesting() == True) {         
    //--------------------------------------------------                                                    
                                     } //если условия соответствуют заданным
    Где TradeUP==true - сувокупность условий для реализации входа по ценовым линияям и по линии эквити.
    По аналогии, - задаем такой же режим для покупки2 и продажи1
    Закрытие позиций:

    Код:
    //--------------Закрываем первый хедж -----------------------------------
    // вычисляем номер бара открытия селл 1-го инструмента - с магиком 1
     N_of_barOP_SELL_1 = NumberOfBarOpenLastPos(Symbol_1,0,OP_SELL,Magic);
    //вычисляем цену открытия этого бара и виртуальной позиции 
    //BUY на втором иструменте(магик1)
     OpenBUY_Symbol_2=iOpen(Symbol_2,Period(),N_of_barOP_SELL_1);
    
    if (    ( ( PriceOpenLastPos(Symbol_1,OP_SELL,Magic)-Close_Symbol_1) +
            (Close_Symbol_2-OpenBUY_Symbol_2) )  >=  CloseProfit*POINT_1 ){
            //если суммарный профит реальной сделки 
    //селл 1-го инструмента и "виртуальный"
    //профит сделки Бай 2-го инструмента (хеджа TradeUP) по факту 
    //больше заданного значения,
    // то - закрываем реальную OP_SELL 1-го символа и виртуальную 
    //OP_BUY второго символа
            ClosePosFirstProfit(Symbol_1,OP_SELL,Magic);
            if (IsTesting() != True) {//  при тестировании команду не выполняем ! 
            ClosePosFirstProfit(Symbol_2, OP_BUY,Magic);
                                      }
                             }
    Желательно задействовать пользовательские функции И.Кима с сайта разработчиков MQL - сильно (в разы !!! ) упрощает код, - http://forum.mql4.com/ru/11287
    Единственное, что здесь будет иногда глючить - это некорректная работа тестера с функциями :
    Код:
    POINT_1=NormalizeDouble( POINT_1,MarketInfo(Symbol_1,MODE_DIGITS));
    POINT_2=NormalizeDouble( POINT_2,MarketInfo(Symbol_2,MODE_DIGITS));
    Это основное препятствие. Тестер мт4 - иной раз без всякой причины начинает глючить при обработке функции MarketInfo()
  2. 5,971
    Комментарии
    10
    Темы
    5316
    Репутация Pro
    Аватар для leonid553  
    Старожил

    6 Медалей
    Цитата Сообщение от aus Посмотреть сообщение
    Тоже интересно было бы послушать о идее теста на истории . .
    А чем не устраивает индикатор суммарного эквити (спреда)? Он достаточно наглядно показывает рост прибыли /убытка от точки входа на расхождении линий до точки выхода при пересечении линий! Именно для этого он и предназначен, - как дополнительный (к ценовым линиям) сигнал входа и отслеживание последующего суммарного текущего результата:
    siz0 & gcz0 (1 ^ 1), -умножающие коэффициенты 60 и 1 соответственно для обоих индикаторов.
     
  3. 1,481
    Комментарии
    24
    Темы
    1497
    Репутация Pro
    Аватар для aus  
    ПэкМэк

    5 Медалей
    Цитата Сообщение от leonid553 Посмотреть сообщение
    А чем не устраивает индикатор суммарного эквити (спреда)? ...
    siz0 & gcz0 (1 ^ 1), -умножающие коэффициенты 60 и 1 соответственно для обоих индикаторов.
    C эквити , смотрел код , толком не разобрался и позиции выставлял без него .
    Здесь же и по коэффициентам - по факту понятно , но полностью ещё не догнал :geek:
  4. 5,971
    Комментарии
    10
    Темы
    5316
    Репутация Pro
    Аватар для leonid553  
    Старожил

    6 Медалей
    Ещё один вариант, - как можно отследить "конкретно" любой многопозиционный вход на истории:

    " ....В данном случае ценовые линии евро-фьючерса 6EU0 (красная) и реверсного индекса доллара DXUO (зеленая) оказались выше розовой ценовой линии синтетического суммарного индекса. А синяя ценовая линия фунта 6BU0 - ниже розовой ценовой линии! Поэтому в точке максимального расхождения ценовых линий реализован тройной вход - buy 6BU0 & (sell 6EU0 & buy DXU0). А в ближайшей точке схождения всех ценовых линий мы предполагаем выход, т.е. закрытие всех позиций. Мы полагаем, что при такой тактике индекс доллара DX в силу своей внутренней конструкции будет немного «сглаживать» ситуацию при негативном для нас движении цен. Будут ли суммарно профитными такие тройные входы?
    Для того, чтобы отследить на истории, насколько перспективны описанные двойные, тройные входы, и т.д. - мы предлагаем воспользоваться индикатором Equity_virtual виртуального суммарного эквити с сайта разработчиков торговой платформы MT4, который можно взять по ссылке http://codebase.mql4.com/ru/5389 .
    Немного поясним его работу. Перед тем, как установить этот индикатор на график, следует опцией из меню мт4 задать на графике вертикальную линию в точке максимального расхождения ценовых линий и начала последующего схождения, т.е. в предполагаемой точке тройного входа, см. рис. ниже.



    После чего, отрезком трендовой линии (именно отрезком, а не лучом) строго синего-blue или строго красного-red цвета нужно задать участок истории от точки предполагаемого тройного входа до предполагаемой точки выхода, т.е. до момента схождения ценовых линий. Далее, щелчком правой мышки по этому отрезку открываем окно СВОЙСТВА TRENDLINE нашего отрезка трендовой линии и в окошечке ОПИСАНИЕ через пробел задаем там позиции используемых инструментов и их размеры, - в нашем случае 6BU0+0.2 6EU0-0.06 DXU0+0.1, - где знак «плюс» означает покупку, а знак «минус» - продажу конкретного инструмента с заданным размером позиции. Теперь устанавливаем индикатор Equity_virtual с параметрами по умолчанию (именно по умолчанию, ничего задавать там в Свойствах не нужно) на график и получаем линию суммарного эквити наших трех позиций с момента входа до момента выхода, см. окно нижнего индикатора! Из рисунка видно, что в данном случае тройного входа от 19.07 по 20.07.2010 с указанными размерами позиций мы получили бы суммарный профит +42.25$. (с, leonid553)
  5. 5,971
    Комментарии
    10
    Темы
    5316
    Репутация Pro
    Аватар для leonid553  
    Старожил

    6 Медалей
    Цитата Сообщение от leonid553 Посмотреть сообщение

    Не совсем удачным оказался описанный выше вход BRN-6C, - сейчас тандем в просадке. Надеемся и продолжаем держать эти позиции до схождения ценовых линий!
    Впрочем, на реальном счете эти позиции закрылись у меня в суммарном профите - я выше писал, что повесил на график советник - "парный трейлинг стоп" (в дальнейшем я его здесь выложу и опишу работу и настройки) и трал сработал ! Но на демосчете - пока позиции висят...
    Данный вход, к сож. приходится закрывать в небольшом убытке!
    В наст. момент ценовые линии пересеклись. На тф= Н1.
    А на тф= М30 линии пересеклись ещё в пятницу....
    (бирюзовая линия в окне верхего индикатора эквити - уровень парного входа)
    Здесь нас подвела фундаментальная ситуация - беспорядки в Эквадоре - сильно подняли цены на сырьевые инструменты, а заранее спрогнозировать такие события (форс-мажор) мы не можем "по определению"....
     
  6. 5,971
    Комментарии
    10
    Темы
    5316
    Репутация Pro
    Аватар для leonid553  
    Старожил

    6 Медалей
    Возможно, опять есть резон сейчас "прикинуть" краткосрочный квазиарбитражный вход бай еврофунт - бай DX
    Ценовые линии начинают ориентироваться на схождение, а линия эквити (спреда) возможно, начинает разворот вверх от своего локального минимума!
     
  7. 121
    Комментарии
    0
    Темы
    125
    Репутация Pro
     
    В начале пути

    2 Медалей
    Всем здравствуйте. Вопрос к leonid_у 553.
    Я как-то тоже пытался торговать парными инструментами такие как FGBS и FGBM или есть еще FGBL, но открывался наобум, поэтому профит иногда был-иногда нет. Тема начата очень интересная, но вот по индикаторам-понял я их только процентов на 70. Можно ли подробнее осветить работу индикаторов? Что например означает изменение цвета линий? В данный момент, пока позиции открыты треугольник два раза поворачивался, и два раза был плавающий профит. Закрывать ли позицию или ждать пересечения линий. Хотя как написано в первом посте "возможны варианты".
  8. 5,971
    Комментарии
    10
    Темы
    5316
    Репутация Pro
    Аватар для leonid553  
    Старожил

    6 Медалей
    Изменение цвета (оттенка) линии означает перемену направления движения данной ценовой линии (и следовательно, - цены инструмента).
    Давайте сделаем так. Чтобы наглядно и быстро "набить руку" на описываемой методике - откройте графики серебра и золота - SIZ0 и GCZ0 на тф = м5
    В данном режиме вы сможете реализовать ежедневно по несколько профитных парных входов! Прибыль на этом таймфрейме будет невелика, т.к. спред инструментов (аск-бид) получается слишком велик для этого таймфрейма. Но наглядное представление вы получите достаточно быстро - за несколько дней "набьете руку"!
    Установите индикаторы на график SIZ0, M5. Умножающие коэффициенты возьмите 60 и 1 соответственно, в обоих индикаторах.


    Хорошо видно, - что все последние парные входы на рисунке ( на расхождении ценовых линий) оказались суммарно прибыльные!
    Желтой стрелкой я показал увеличение суммарной прибыли в окне индикатора эквити от точки парного входа до точки выхода.
    Иначе говоря, если ( и когда) мы видим, что расхождение линий достигло максимума и начинается разворот; И при этом, хотя бы одна из ценовых линий меняет оттенок - то имеет место сигнал парного входа! Подтверждается этот сигнал направлением треугольника - вершиной вправо.
    В этот момент - следует открывать позиции (размеры 1:1). И держать их строго до схождения(пересечения) ценовых линий! Независимо от того, будет ли "дергаться" треугольник.
    А что касается моего выражения "возможны" варианты, - то это я поясню немного позже, - дойдет ещё очередь....
  9. 37
    Комментарии
    0
    Темы
    37
    Репутация Pro
     
    Новичок

    2 Медалей
    Добрый вечер Уважаемые.
    Надеюсь leonid553 не будет против.
    По ссылке на статью, которую я выкладывал в 70 посту, попытался реализовать индикатор. Если кому интересно, он приложен к посту.


    У меня он настроен на пары USDNOK и USDPLN.
    Таймфрейм 5-минутка.
    Темно-синии линии это движения спредов, а оранжевая это разность спредов.
    Для корректного отображения на других парах и таймфреймах необходим подбор ценовых линий.

    Преимущества:
    1) убран квадратичный тренд
    2) работа с приращениями логарифмов цен
    3) более наглядные входы и выходы из позиций

    С уважением Дмитрий.
    Вложения Вложения
  10. 121
    Комментарии
    0
    Темы
    125
    Репутация Pro
     
    В начале пути

    2 Медалей
    Спасибо, что ответили Leonid553, еще один вопрос про умножающие коэффициенты-как их выставлять, это в свойствах индикатора N1 и N2, и K1 и K2?

Вверх
РегистрацияX

чтобы писать, читать, комментировать