[Архив!] ПИШЕМ СОВЕТНИКА ВМЕСТЕ!!!

 

Предлагаю написать совместными усилиями советника. Во первых это поможет ответить на многие интересные вопросы (об этом по завершению проэкта), во-вторых, может и получится совместно сделать граальчик:) и наконец, новичкам (коем я себя и считаю в плане программирования) будет интересно поучиться как поэтапно строиться МТС. За основу взял простейшую стратегию... Просто открываемся на пробитие High/Low предыдущего дня с фиксированным т.профитом и со стопом на High/Low сегоднешнего дня. Почему именно так? Да потому что во-первых, такая система не использует ни одного индикатора, во-вторых проф.фактор с 2000г. по сей день равен 1,00 +/-0,03 (в зависимости от историч. данных т.к. могут отличаться) т.е. впринцепи она 50/50 и наконец, я считаю что пробитие Нigh/Low предыдущего дня все же психологически важно для рынка. Предлагаю найти другие ключевые уровни или воспользоваться вспомогательными индекаторами или еще что-то, но главное, получить более прибыльный эксперт чем представлен ниже. Это график из тестора с 01.01.2009 по сегодняшний день, более подробный отчет можете получить у себя самостоятельно. Главная идея, то что остальные инструменты должны только помогать системе, а не строиться на них... т.е. за основу берем рабочую систему и пытаемся ее модернизировать (улучшить). Вот что я получил...

Данная ТС обсолютно "голая", но в ней есть потенциал...

Новичкам не рекомендую использовать... следующие 5 лет она будет сливать ;)

Так что тут поле не паханное...

Вот код

//+-----------------------------------------------------------------------+
//|                                                     Крокодил ГЕНА.mq4 |
//|                                                         Крокодил ГЕНА |
//+-----------------------------------------------------------------------+
// Описание ТС
// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня
//    SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, 
//    единственная оговорка не более 1 позиции в день в переменной LastTradeTime 
//    если в ней нет необходимост смело сносите /RomanS/
// 2.
// 3.
// 4.
// 5.
 
  // Внешние переменные
  extern double TakeProfit = 900; 
  extern double Lot        = 1;    
  extern string SYMBOL     = "EURUSD";
  
  // Глобальные переменные
  int LastTradeTime = 0;      // Время последней открытой сделки
  
  // Поехали... :)
  int start() 
  {  
     int Ticket;
  double BID,
         ASK,
         SL=0,
         TP=0;                                  
    bool Trade     = true,
         Open_Bay  = false,
         Open_Sell = false;

  // Проверяем можно ли торговать
  if (Trade==true) 
   {
   
  // Критерии открытия позиций
    if (Bid > iHigh (SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if (Bid < iLow (SYMBOL,PERIOD_D1,1)) Open_Sell = true;
        
  // Открытие позиций
      if (Open_Bay == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!=LastTradeTime)                                           
        {      
         RefreshRates(); 
         Alert("111111111111");
          ASK = MarketInfo(SYMBOL,10);                                
          SL = iLow(SYMBOL,PERIOD_D1,0);
          TP = ASK + TakeProfit*Point;
          if ((ASK-SL)/Point<MarketInfo(SYMBOL,14)) return;  // проверяем минимальный уровень стопов
          Alert("Пробуем открыть Buy ",SYMBOL, " по ",ASK, SL, TP);         
          Ticket=OrderSend(SYMBOL,OP_BUY,Lot,ASK,20,SL,TP);         
           if (Ticket > 0)                                                  
            {            
             Alert ("Открыт ордер Buy ",Ticket);
             LastTradeTime=TimeDay(TimeCurrent()); // задаем время сделки, чтобы сегодня больше не торговать 
             return;                                                       
            }         
        }
     if (Open_Sell == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!=LastTradeTime)                                             
        {      
         RefreshRates();                                             
          BID = MarketInfo(SYMBOL,9);
          SL = iHigh (SYMBOL,PERIOD_D1,0);
          TP = BID - TakeProfit*Point;
          if ((SL-ASK)/Point<MarketInfo(SYMBOL,14)) return; // проверяем минимальный уровень стопов
          Ticket = OrderSend(SYMBOL,OP_SELL,Lot,BID,20,SL,TP);         
           if (Ticket > 0)                                                  
             { 
              Alert ("Открыт ордер Sell ",Ticket);
              LastTradeTime=TimeDay(TimeCurrent());  // задаем время сделки, чтобы сегодня больше не торговать
              return;                                   
             }         
          return;                                                       
        }
   
   // Закрытие позиции
   
   // Модификация ордера
   
   }
  return;       
  }



Сразу хочу предложить привести исходник к нормальному виду, я не профи... я "любитель", так чтобы дальше было удобнее работать. Или вообще.. новую схему. Главное чтоб условие







    if (Bid > iHigh (SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if (Bid < iLow (SYMBOL,PERIOD_D1,1)) Open_Sell = true;

на данном этапе сохранялось.

Всем откликнувшимся спасибо.

Файлы:
 

А оптимизируется советник на всех участках, и насколько долго держатся соптимизированные параметры

 
ivandurak >>:

А оптимизируется советник на всех участках, и насколько долго держатся соптимизированные параметры

Какая оптимизация???

Сдесь (на данном этапе) только т.проф. можно оптимизировать, ну можно конечно и лот прогнать, только смысла нет

 

Да уж, поле тут не то что непаханное, тут целина куда не глянь, благо уровней можно настроить сколько душе угодно и по хай-лоу, и по всяким камариллам-мюрреям. Что касается хай-лоу, то такое уже конструировал - могу сказать сразу, что точно не грааль потому, что для приличной системы получаются ну очень большие просадки. Они получатся небольшими, если и тейки будут сопоставимыми, однако на пробой дня большой тейк не поставишь - он просто не сработает, или сработает через полгода.

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

Если плясать от дневок, до без дополнительных ориентировок в виде ещё каких-то уровней, примочек и шаманского бубна не обойтись. 

 
sayfuji >>:

Да уж, поле тут не то что непаханное, тут целина куда не глянь, благо уровней можно настроить сколько душе угодно и по хай-лоу, и по всяким камариллам-мюрреям. Что касается хай-лоу, то такое уже конструировал - могу сказать сразу, что точно не грааль потому, что для приличной системы получаются ну очень большие просадки. Они получатся небольшими, если и тейки будут сопоставимыми, однако на пробой дня большой тейк не поставишь - он просто не сработает, или сработает через полгода.

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

Если плясать от дневок, до без дополнительных ориентировок в виде ещё каких-то уровней, примочек и шаманского бубна не обойтись. 

замени в советнике 

РERIOD_D1 на РERIOD_Н4 может результат лучше будет???

Если честно, я с этой МТС ничего не пробывал... Просто ради интереса сделал...

Как я уже говорил в прошлой ветке, на форуме известного ДЦ на букву "А", форумяне год писали совместно эксперта...

Давайте и мы что-нить придумаем... У нас потенциал программирования больше..

 
RomanS писал(а) >>

Какая оптимизация???

Сдесь (на данном этапе) только т.проф. можно оптимизировать, ну можно конечно и лот прогнать, только смысла нет

Это я к ведению виртуальной торговли . Лучшие оптимальные параметры выбираются для реальной торговли . И исчо пишем двух советников в одном коде,один работает на пробой другой на отскок, который лучше тот и торгует .

 

Сейчас уже вижу ошибки в нашей МТС

Хотел чтобы на всех валютных парах работало, а получилось только для EURUSD

Сейчас поправлю...

-----------------------------------------------+
//|                                                     Крокодил ГЕНА.mq4 |
//|                                                         Крокодил ГЕНА |
//+-----------------------------------------------------------------------+
// Описание ТС
// 1. Открытие позиций происходит при пробитии High или Low предыдущего дня
//    SL ставиться на High или Low текущего дня, TP выставляется во внешних переменных, 
//    единственная оговорка не более 1 позиции в день в переменной LastTradeTime 
//    если в ней нет необходимост смело сносите /RomanS/
// 2.
// 3.
// 4.
// 5.
 
  // Внешние переменные
  extern double TakeProfit = 900; 
  extern double Lot        = 1;    
  extern string SYMBOL     = "EURUSD";
  
  // Глобальные переменные
  int LastTradeTime = 0;      // Время последней открытой сделки
  
  // Поехали... :)
  int start() 
  {  
     int Ticket;
  double BID,
         ASK,
         SL=0,
         TP=0;                                  
    bool Trade     = true,
         Open_Bay  = false,
         Open_Sell = false;

  // Проверяем можно ли торговать
  if (Trade==true) 
   {
   
   ASK = MarketInfo(SYMBOL,10);
   BID = MarketInfo(SYMBOL,9);
  
  // Критерии открытия позиций
    if (BID > iHigh (SYMBOL,PERIOD_D1,1)) Open_Bay = true; 
    if (BID < iLow (SYMBOL,PERIOD_D1,1)) Open_Sell = true;
        
  // Открытие позиций
      if (Open_Bay == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!=LastTradeTime)                                           
        {      
         RefreshRates(); 
          SL = iLow(SYMBOL,PERIOD_D1,0);
          TP = ASK + TakeProfit*Point;
          if ((ASK-SL)/Point<MarketInfo(SYMBOL,14)) return;  // проверяем минимальный уровень стопов
          Alert("Пробуем открыть Buy ",SYMBOL, " по ",ASK, SL, TP);         
          Ticket=OrderSend(SYMBOL,OP_BUY,Lot,ASK,20,SL,TP);         
           if (Ticket > 0)                                                  
            {            
             Alert ("Открыт ордер Buy ",Ticket);
             LastTradeTime=TimeDay(TimeCurrent()); // задаем время сделки, чтобы сегодня больше не торговать 
             return;                                                       
            }         
        }
     if (Open_Sell == true && OrdersTotal()==0 && TimeDay(TimeCurrent())!=LastTradeTime)                                             
        {      
         RefreshRates();                                             
          SL = iHigh (SYMBOL,PERIOD_D1,0);
          TP = BID - TakeProfit*Point;
          if ((SL-ASK)/Point<MarketInfo(SYMBOL,14)) return; // проверяем минимальный уровень стопов
          Ticket = OrderSend(SYMBOL,OP_SELL,Lot,BID,20,SL,TP);         
           if (Ticket > 0)                                                  
             { 
              Alert ("Открыт ордер Sell ",Ticket);
              LastTradeTime=TimeDay(TimeCurrent());  // задаем время сделки, чтобы сегодня больше не торговать
              return;                                   
             }         
          return;                                                       
        }
   
   // Закрытие позиции
   
   // Модификация ордера
   
   }
  return;       
  }
Файлы:
 
sayfuji >>:

Если плясать от дневок, до без дополнительных ориентировок в виде ещё каких-то уровней, примочек и шаманского бубна не обойтись. 

Так вот шампанское и бубен должны прилагаться, совместно...

Одиночками, меньше шансов, надо общаться, на то и форум...

 

Добрый день, RomanS.

Идея отличная. Я очень часто вижу, как на зарубежных форумах трейдеры объединяются в команду и обоюдными усилиями создают эксперта. Готов поддержать.

Что касается вашей идеи, то она сливная. И это не грааль. Если уже будем работать, то давайте работать серьезно, возлагая надежды иначе, нах это все начинать? Мое мнение такое: систему нужно создавать только под M1 EUR/USD. В основу алгоритма заложить способ определения тренда. Давайте, возъмем, скажем, ....мм..... скользящее среднее с алгоритмом сглаживания по Тильсону. Далее определимся со входом. Можно взять пересечение двух быстрых машек, по ним же и закрытие. Можно еще много прибамбасов прикрутить. Предлагайте :-) Плюс обязательно ММ с возможностью включать Мартина со своими настройками.

Вобщем, давайте плясать от этого. Выдвигайте ваши идеи по входу/выходу. Вместе сделаем. Но пробитие уровней high & Low на D1 - это слив. sayfuji все правильно написал.

 

А что в одной ветке https://forum.mql4.com/ru/ 23917 не пишется ?

А вообще объединяются обычно вокруг общеинтересной идеи, а тут кризис жанра...

 
Alex5757000 >>:

Добрый день, RomanS.

Идея отличная. Я очень часто вижу, как на зарубежных форумах трейдеры объединяются в команду и обоюдными усилиями создают эксперта. Готов поддержать.

Что касается вашей идеи, то она сливная. И это не грааль. Если уже будем работать, то давайте работать серьезно, возлагая надежды иначе, нах это все начинать? Мое мнение такое: систему нужно создавать только под M1 EUR/USD. В основу алгоритма заложить способ определения тренда. Давайте, возъмем, скажем, ....мм..... скользящее среднее с алгоритмом сглаживания по Тильсону. Далее определимся со входом. Можно взять пересечение двух быстрых машек, по ним же и закрытие. Можно еще много прибамбасов прикрутить. Предлагайте :-) Плюс обязательно ММ с возможностью включать Мартина со своими настройками.

Вобщем, давайте плясать от этого. Выдвигайте ваши идеи по входу/выходу. Вместе сделаем. Но пробитие уровней high & Low на D1 - это слив. sayfuji все правильно написал.

То, что пока это не грааль (время покажет) это точно!

То, что она не сливная (в долгосрочном плане), это видно при ее запуске в тестере (50/50 когда-то работает, клгда-то нет), но не сливная... проф.фактор примерно 1,00

По поводу М1 это конечно интенресно, но вряд ли заинтересует профи, к томуже я предложил систему не на дневках... я ее тестировал на М5, да вообщем нет и разницы.

По поводу МА-шек вообще пройденный этап...

В основу алгоритма заложить способ определения тренда

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

Давайте, возъмем, скажем, ....мм..... скользящее сре днее с алгоритмом сглаживания по Тильсону.

Нет проблем...  можно вставить пару строк кода и вооляя... проф.фактор больше 2,0

В том то и дело, что я предлагаю не предпологать, а делать, а тех кто не умеет делать.. учиться как другие делают.

Лично я (как любитель) хочу набраться опыта от профи...

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