dd$

  • *****
  • 6087
  • 234
    • Просмотр профиля

Советники Форекс (Forex) - скачать


dd$

  • *****
  • 6087
  • 234
    • Просмотр профиля
Отличная реализация построения трендовых линий и момента входа (после пробоя тренда).

Посмотрел на истории, хорошо определяет направления, но советнику не хватает повторных входов по тренду.



dd$

  • *****
  • 6087
  • 234
    • Просмотр профиля
Представленные функции были написаны по некоторым наиболее популярным алгоритмам трейлинга.
Функции просто подключать/перебирать, что позволяет весьма оперативно их примерять к системе входов различные сценарии трейлинга. Представленные функции являются элементарными и позволяют, при необходимости, конструировать на их основе более сложные алгоритмы трейлинга.

TrailingAll_11.mq4 поместить в \experts\libraries\

Советники MyFractals(example).mq4 и MA_BrkOut_H_2.mq4 в experts

подробности тут: http://codebase.mql4.com/ru/1101

AndreiFX

эксперты для вывода в безубыток при различных условиях.
Входные параметры думаю будут понятны, если нет, спросите, отвечу :)

dd$

  • *****
  • 6087
  • 234
    • Просмотр профиля
 Основным способом управления ордерами в приложении AutoGraf является использование графических средств клиентского терминала MT4. Достаточно изменить мышью положение горизонтальной линии ордера или сместить управляющий значок инструмента - в результате на сервер будет отправлен торговый приказ на открытие, закрытие или модификацию ордера в соответствии с управляющим воздействием пользователя.

Приложение предоставляет трейдеру следующие возможности:

1. Открывать ордера любого типа без использования панели открытия ордеров МТ4.
2. Закрывать один или несколько ордеров любого типа, используя клавишу Delete.
3. Модифицировать ордера любого типа, перемещая мышью на экране горизонтальные линии, поставленные в соответствие ордерным характеристикам.
4. Использовать инструменты функции AG для полуавтоматического управления ордерами - модифицировать ордер вслед за курсом, переставлять StopLoss ордера в область безубытка и пр.

Файлы в рабочем состоянии - для установки просто скопировать в соотвествующие папки.

Инструкция в архиве (начальный запуск описан в помощи в пункте "Установка и настройка  приложения").


dd$

  • *****
  • 6087
  • 234
    • Просмотр профиля

Эксперт для работы с любым  индикатором пользователя (вызывается через iCustom)



      MW_Mode - рыночные ордера ордера открываются без стоплосс и тейкпрофит, затем, после открытия, устаналиваются.
      _O_Mode=5, _C_Mode=5 - смена цвета.

В разделе параметров "Индикатор для открытия":

      _O_M5_iBuyBufIndex - индекс буфера линии отображаемой при тренде вверх
      _O_M5_iSellBufIndex - индекс буфера линии отображаемой при тренде вниз

В разделе параметров "Индикатор для закрытия":

      _C_M5_iBuyBufIndex - индекс буфера линии отображаемой при тренде вверх
      _C_M5_iSellBufIndex - индекс буфера линии отображаемой при тренде вниз

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

      ==== Дополнительные правила закрытия ====
     
      CheckProfit - Проверять прибыль ордера при закрытии, ордера с меньше, чем MinimalProfit прибылью не закрываются
      MinimalProfit - См. переменную CheckProfit
      CheckSL - Если стоплосс ордера фиксирует прибыль не меньше чем MinimalSLProfit, ордер не закрывается
      MinimalSLProfit - См. переменную CheckSL   

      Добавлена возможность трейлинга по пользовательскому индикатору. Может использоваться любой индикатор.
     
      === Трейлинг по индикатору ===     
     
      _TS_ON - включение трейлинга по индикатору
      _TS_iCustomName - имя Custom индикатора
      _TS_iCustomParam - список параметров через разделитель "/". Для переменных типавместо начения true используется 1, вместо false - 0. Если в параметрах индикатора ест строковые переменные, эксперт работать не будет!!!
      _TS_iForBuyBufIndex - индекс буфера для ордеров buy
      _TS_iForSellBufIndex - индекс буфера для ордеров sell
      _TS_iShift - сдвиг индикатора. 1 - на сформированных барах, 0 - на формирующемся баре (не рекомендуется). Также может быть ведено значение 2,3,4...
      _TS_Opt_1_Use - включения использования оптимизируемой переменной 1. При включении оптимизируемой переменной вместо значения из строки iCustomParam, определяемого переменной Opt_X_Index будет использоваться значение переменной Opt_X_Value
      _TS_Opt_1_Index - индекс оптимизируемой переменной 1 в массиве параметров (в строке iCustomParam). Отсчет начинается с нуля.
      _TS_Opt_1_Value - значение оптимизируемой переменной 1
      _TS_Opt_2_Use - включения использования оптимизируемой переменной 2
      _TS_Opt_2_Index - индекс оптимизируемой переменной 2 в массиве параметров (в строке iCustomParam). Отсчет начинается с нуля.
      _TS_Opt_2_Value - значение оптимизируемой переменной 2
      _TS_Opt_3_Use - включения использования оптимизируемой переменной 3
      _TS_Opt_3_Index - индекс оптимизируемой переменной 3 в массиве параметров (в строке iCustomParam). Отсчет начинается с нуля.
      _TS_Opt_3_Value - значение оптимизируемой переменной 3
      _TS_Opt_4_Use - включения использования оптимизируемой переменной 4
      _TS_Opt_4_Index - индекс оптимизируемой переменной 4 в массиве параметров (в строке iCustomParam). Отсчет начинается с нуля.
      _TS_Opt_4_Value - значение оптимизируемой переменной 4
      _TS_Opt_5_Use - включения использования оптимизируемой переменной 5
      _TS_Opt_5_Index - индекс оптимизируемой переменной 5 в массиве параметров (в строке iCustomParam). Отсчет начинается с нуля.
      _TS_Opt_5_Value - значение оптимизируемой переменной 5
      _TS_Indent - отступ в пунктах от значения индикатора
      _TS_TrailInProfit - минимальная фиксируемая прибыль. Стоплосс переставляется в том случае, если он фиксирует не менее чем _TS_TrailInProfit пунктов прибыли

Добавлена работа отложенными ордерами.  Добавлены строковые разделители разделов с переменными в окне свойств.
   
   Выбор типа ордеров выполняется переменной OrdType: 0 - рыночные, 1 - стоп, 2 - лимит (переменная находится в разделе "Ордер").

   Добавлен раздел переменных "Отложенные ордера" для управления работой отложенными ордерами:
   
      PendLevel - уровень установки отложенного ордера от текущй рыночной цены
     
      PendPromPrice  -  цена установки отложенного ордера отсчитывается от цены нулевого бара,
                        при значении PendPromPrice=0 - от цены закрытия (соответствует текущей
                        рыночной цене), 1 - от цены открытия бара
     
      PendNewSigMode -  способ управления отложенным ордером по новому торговому сигнайлу:   
                        0 - если ордер уже был установлен, то при появлении нового торгового
                        сигнала не выполняются ни какие действия,
                        1 - переустановка ордера по новому сигналу,
                        2 - по новому сигналу ордер переустанавливается
                        на "лучший уровень" - байстоп только вниз, байлимит
                        только вверх, селлстоп только вверх, селлимит только вниз.
     
      PendPriceFollow - режим следования за ценой. ордер модифицируется при каждом изменении
                        цены определнной переменной PendPromPrice, ордер переустанавливается только
                        на "лучшую цену" (см. описание переменной PendNewSigMode)
     
      PendDelete -   удаление отложенного ордера по противопоожному торговому сигналу.
                     При значении false, возможно одновременной существование двух
                     отложенных ордеров разного направления.
     
      PendExpiration -  срок существания ордера в минутах (минимальное значение 11 минут)   
   

Добавлен еще один режим _O_Mode (и _С_Mode)
         
         Режим 4 -   Экстремум по трем точкам. Используется одна линия индикатора.
                     Номер буфера указывается в переменной _O_M4_iBufIndex
                     (или _С_M4_iBufIndex в блоке закрытия).
   

Добавлена возможность использования разных индикаторов для сигналов открытия и закрытия.
     
      Параметры индикатора открытия начинаются с префикса _O_, индиктора закрытия - с префикса _C_.
     
      Может быть три режима использования индикаторов открытия и закрытия (устанавливается переменной_OС_Mode).
     
         Режим 1 - для закрытия индикатор не используются. Возможно закрытия только по стоплосс и тейкпрофит.
         Режим 2 - индикатор закрытия не используется. Кроме закрытия по стоплосс и тейкпрофит выполняется закрытия противопложных ордеров по сигналам открытия. Стоплосс и тейкпрофит могут быть отключены - надо ввести значение 0 в переменные StopLoss и/или TakeProfit
         Режим 3 - Используются отдельные сигналы закрытия по индикатору закрытия (_C_). В этом режиме можно использовать дополнительный режим копирования параметров индикатора открытия в параметры индикатора закрытия (переменная _C_UseOpenParam), при этом копируется имя индикатора и его параметры. Этот режим сделан для индикаторов генерирущих сигналы открытия и закрытия для ускорения оптимизации (оптимизируемые параметры также копируются).
         

Могут использоваться не только индикаторы со стрелками, но и индикаторы с линиями.
   
   
Для выбора типа индикатора используется переменная _O_Mode (и _С_Mode в блоке закрытия).
         
         Режим 1 -   индикатор рисует стрелки. Для указания номеров буферов используются переменные _O_M1_iBuyBufIndex и _O_M1_iSellBufIndex, а в блоке закрытия - _C_M1_iCloseBuyBufIndex и _C_M1_iCloseSellBufIndex.
         Режим 2 -   используются главная и сигнальная линии индикатора. Если главная линия пересекает сигнальную снизу вверх - сигнал открытия Buy или закрытия Sell. Для указания буферов используются переменные _O_M2_iMainBufIndex, _O_M2_iSignalBufIndex и _C_M2_iMainBufIndex,  _C_M2_iSignalBufIndex.
         Режим 3 -   используется одна линия индикатора. Номер буфера указывается в переменной _O_M3_iBufIndex (или _С_M3_iBufIndex в блоке закрытия).

Для указания значения уровней используются переменные _O_M3_BuyLevel и _O_M3_SellLevel (_O_M3_CloseBuyLevel и _C_M3_CloseSellLevel в блоке закрытия). Пересечение уровня Buy снизу вверх - покупка, уровня Sell сверху вниз - продажа.

Во вложении также:

Файл настроек nrtr_nk.set - пример использования индикатора NRTR_NK.
Файл настроек ma in color_wappliedprice.set - пример использования индикатора MA in Color_wAppliedPrice

HH

  • ***
  • 21
  • 0
    • Просмотр профиля
  При необычном тестировании Elite eFibo Trader v.2.1 по ценам открытия я получил очень интересные результаты. Это полуавтомат, т.е. если знаете куда пойдёт валюта- включаете и он сразу покупает (продаёт) +выставляет отложеные ордера через определённые вами промежутки, увеличивая лот по Фибо-числам. Этим он автоматически наращивает прибыль за счёт последовательного увеличения лота и ограничивает риск до нескольких пипсов. Подробное описание http://codebase.mql4.com/ru/4684
  В чём интерес "по ценам открытия" например на H4. Смотрим куда тренд на D1 (примитивно хоть по Heiken Ashi), переходим на Н4, дожидаемся отката от тренда, и когда Heiken Ashi первым баром по цвету совпадает с D1, включается советник. НО ! необходимо, чтобы он торговал не "в прямом режиме", а выставлял ордера только в момент открытия  свечи. Тогда при настройках на 5-ти значном терминале: Level Distance 100, Stop Loss 100, Money Take Profit 2000 получаются отличные результаты (ни одного минусового участка). При "ручном" тестировании ещё лучше, но конечно не полная картина. Идея в том, что даже если случаются 5-6 лосов по 100п, то один обычный прорыв советника в 2000 п.приносит большой профит. А прорыв этот советник устраивает отменный- я торговал на реале.
   Т.е. если этот советник доделать на открытие ордеров при открытии свечи + совсем идеально- вставить функцию Heiken Ashi (отключаемую)- когда при настройке Buy, появляется зелёный Heiken, включается и начинает торговать советник (при sell красный и включается), то будет вообще супер. По наблюдениям, ночью часто откат от тренда медленно, но уверенно разворачивается в нужную сторону.
    Господа программисты, пожалуйста поучаствуйте в доделке.

dd$

  • *****
  • 6087
  • 234
    • Просмотр профиля

Советник на основе Heiken Ashi Smoothed


  При необычном тестировании Elite eFibo Trader v.2.1 по ценам открытия я получил очень интересные результаты. Это полуавтомат, т.е. если знаете куда пойдёт валюта- включаете и он сразу покупает (продаёт) +выставляет отложеные ордера через определённые вами промежутки, увеличивая лот по Фибо-числам. Этим он автоматически наращивает прибыль за счёт последовательного увеличения лота и ограничивает риск до нескольких пипсов. Подробное описание http://codebase.mql4.com/ru/4684
  В чём интерес "по ценам открытия" например на H4. Смотрим куда тренд на D1 (примитивно хоть по Heiken Ashi), переходим на Н4, дожидаемся отката от тренда, и когда Heiken Ashi первым баром по цвету совпадает с D1, включается советник. НО ! необходимо, чтобы он торговал не "в прямом режиме", а выставлял ордера только в момент открытия  свечи. Тогда при настройках на 5-ти значном терминале: Level Distance 100, Stop Loss 100, Money Take Profit 2000 получаются отличные результаты (ни одного минусового участка). При "ручном" тестировании ещё лучше, но конечно не полная картина. Идея в том, что даже если случаются 5-6 лосов по 100п, то один обычный прорыв советника в 2000 п.приносит большой профит. А прорыв этот советник устраивает отменный- я торговал на реале.
   Т.е. если этот советник доделать на открытие ордеров при открытии свечи + совсем идеально- вставить функцию Heiken Ashi (отключаемую)- когда при настройке Buy, появляется зелёный Heiken, включается и начинает торговать советник (при sell красный и включается), то будет вообще супер. По наблюдениям, ночью часто откат от тренда медленно, но уверенно разворачивается в нужную сторону.
    Господа программисты, пожалуйста поучаствуйте в доделке.

Осталось найти способ заставить эксп работать как на первом рис.

Чтобы убрать у хейкена сглаживание (сделать его стандартным) достаточно в параметрах поставить  MaPeriod=1 и MaPeriod2=1

Параметры советника:

extern bool HeikenAshi=true; - включает/выключает хейкен
extern bool EachTickMode=false; - на 1м баре или на 2м смотрим
extern int TimeFrame = 0; - ТФ старшего хейкена
extern int MaMetod  = 2; - сглаживание хейкена
extern int MaPeriod = 6;  - период машки
extern int MaMetod2  = 3;
extern int MaPeriod2 = 2;

Дальнейшее обсуждение/доработка советника в Лаборатории

freshwind

  • **
  • 2
  • 0
    • Просмотр профиля
форумчане подскажите пож, ищу советники для тестирования на основе одиночного мартина (простое удвоение лота после проиграша, не илан). Достаточно просто название. Если дадите ссылку - буду очень благодарен

dd$

  • *****
  • 6087
  • 234
    • Просмотр профиля
форумчане подскажите пож, ищу советники для тестирования на основе одиночного мартина (простое удвоение лота после проиграша, не илан). Достаточно просто название. Если дадите ссылку - буду очень благодарен


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

Рынок рано или поздно (на реале скорее рано) создаст условия для полного слива депозита.

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

Но если честно - все возможные комбинации условий  и фильтров давно проверены - ошибок в рынке не найдено. Мартины сливают.

По ссылке удвоение лота применено к стандартному советнику на основе macd. В тестере работает неплохо)

http://www.invest74.ru/forex_laboratory/interesnye_martiny/msg1581/#msg1581

Во вложении вариант входа по макд больше меньше 0.

Код
double LotSize()
{
    double    lot            = Lots;
    double     lot_min        = MarketInfo(Symbol() , MODE_MINLOT  );
    double     lot_max        = MarketInfo( Symbol(), MODE_MAXLOT  );
    double     lot_step        = MarketInfo( Symbol(), MODE_LOTSTEP );

    double lastLot = 0.0;
    if ( AfterStopLoss_Koeff > 0.0 ) lastLot = lastLossLot();

    if ( lastLot < 0.0001 )
    {
        int         lot_size        = MarketInfo( Symbol(), MODE_LOTSIZE );
        double     balance        = AccountBalance();
        int        leverage        = AccountLeverage();

        if ( MeansType == 2 ) balance = AccountEquity();
        if ( MeansType == 3 ) balance = AccountFreeMargin();

        if ( lot_min < 0 || lot_max <= 0.0 || lot_step <= 0.0 || lot_size <= 0 )
        {
            Print( "LotSize: invalid MarketInfo() results [" + lot_min + "," + lot_max + "," + lot_step + "," + lot_size + "]" );
            return(-1);
        }
        if ( leverage <= 0 )
        {
            Print( "LotSize: invalid AccountLeverage() [" + leverage + "]" );
            return(-1);
        }

        if ( MeansType > 0 ) lot = balance * Риск*0.01 * leverage / lot_size;
    }
    else
    {
        lot = MathCeil( lastLot * AfterStopLoss_Koeff / lot_step ) * lot_step;
    }

    lot = NormalizeDouble( lot / lot_step, 0 ) * lot_step;
    if ( lot < lot_min ) lot = lot_min;
    if ( lot > lot_max ) lot = lot_max;

    if ( AccountFreeMarginCheck( Symbol(), OP_BUY, lot ) < 10 || GetLastError() == 134 )
    {
        Alert( "Недостаточно свободных средств для открытия позиции размером ", DoubleToStr( lot, 2 ), " lots!" );
        last_trade = Time[0];
        return(-1);
    }

    return(lot);
}

double lastLossLot()
{
    int total = OrdersHistoryTotal(), last_op = 0; double last_profit = 0.0, last_lot = 0.0;
    for ( int z = total-1; z >= 0; z -- )
    {
        if ( !OrderSelect( z, SELECT_BY_POS, MODE_HISTORY ) )
        {
            int _GetLastError = GetLastError();
        //    Print( "OrderSelect( ", z, ", SELECT_BY_POS, MODE_HISTORY ) - Error #", _GetLastError, " ( ", ErrorDescription( _GetLastError ), " )" );
            continue;
        }
        if ( OrderSymbol() != Symbol() ) continue;
    //    if ( OrderMagicNumber() != _MagicNumber ) continue;

        if ( OrderOpenTime() > last_op )
        {
            last_op = OrderOpenTime();
            last_profit = OrderProfit();
            last_lot = OrderLots();
        }
    }

    if ( last_profit > 0.0 )
        return(0.0);
    else
        return(last_lot);

AN1974

  • **
  • 3
  • 0
    • Просмотр профиля
эксперты для вывода в безубыток при различных условиях.
Входные параметры думаю будут понятны, если нет, спросите, отвечу :)

А в новых билдах работают??

dd$

  • *****
  • 6087
  • 234
    • Просмотр профиля
А в новых билдах работают??


Советники очень простые - компилируются точно без ошибок -  должны работать..


Если не будут - поправим.

reyt23

  • **
  • 3
  • 0
    • Просмотр профиля

 

Отметьте интересные вам фрагменты текста и они станут доступны по уникальной ссылке в адресной строке браузера.