Советники: Lucky - страница 5

 
Александр, учите английский язык. В коде описаны эти переменные, которые определяют, когда советник начинает торговать, а когда заканчивает, и отключены выходные дни.
 
Serg_ASV:
Александр, учите английский язык. В коде описаны эти переменные, которые определяют, когда советник начинает торговать, а когда заканчивает, и отключены выходные дни.


Вообще-то меня зовут Алексей, но сейчас это меня мало интересует.

Господа, я понял про микро-лоты, про часы торговли, а вот другие параметры - WED1 WEH1 WED2 WEH2 я раскрыть не могу, ну помогите мне пожалуйста, что Вам жалко что-ли? Ну пожалуйста, помогите мне. ....

 
Ладно, я сам понял, ес-ес! ОБХСС!!!
 
alexluzan:
Serg_ASV:
Александр, учите английский язык. В коде описаны эти переменные, которые определяют, когда советник начинает торговать, а когда заканчивает, и отключены выходные дни.


Вообще-то меня зовут Алексей, но сейчас это меня мало интересует.

Господа, я понял про микро-лоты, про часы торговли, а вот другие параметры - WED1 WEH1 WED2 WEH2 я раскрыть не могу, ну помогите мне пожалуйста, что Вам жалко что-ли? Ну пожалуйста, помогите мне. ....

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

К примеру, советник открыл 5 позиций вверх, а на выходных произошло резкое падение цены и по каждой сделке ты получаешь немалый убыток. Возможно и наоборот, но по закону Мерфи, на один прибыльный скачок - 10 убыточных.

 

To alexluzan : У меня результат с теми же исходными параметрами на том же периоде(с июля 07) на H1 чуть похуже:

Посмотри много ли у тебя ошибок рассогласования графиков? насколько качественная история? (я если тестирую на году 1999 то тоже хороший профит):

Как я понимаю, результат обратно-пропорционален качеству истории (ниже тест на периоде с 01.06.2004 по 19.10.2007 все тики на D1):

Осторожно лежачий полицейский :-)

Всем:

Я думаю что нужно действовать исходя из следующего:

1) Результат при тестировании по КОНТРОЛЬНЫМ ТОЧКАМ превосходят все ожидания

2) Результаты при тестировании на всех тиках - конкретный слив (если у кого-то не так поделитесь информацией)

Нужно каким-то исскуственно-программным способом дать эксперту работать не со всеми данными (обрезать часть тиков) к примеру проверять ордера не чаще чем каждые 30(15) сек. и т.д. т.п. т.е. чтобы он брал из потока тиков точки близкие к контрольным (Hi, Low, Open, Close).

PS если без изменения кода то попробуйте со следующими параметрами - GBPUSD M30 Shift=8 Limit=39 TP=14 OpenHour=19 CloseHour=7 WED1=5 WEH1=22 WED2=1 WEH2=2

у меня получилось вверх (аналогично alexluzan) но маловато сделок. просьба тем кто протестирует выложить свои результаты.

Вопрос: Где взять и как установить качественную тиковую историю хотябы за год?

 
Кароче вот супер Lucky 5.0:
double a, b; 
bool first=true; 
extern int Shift = 10; 
extern int Limit = 10;
extern int pips=10;
extern int TrailingStop=10;
extern int MAGIC=155454546;
//---------------------------------------------------------------------------- 
int start()
{ 
 
   if  (OrdersTotal()>0)
  {
   
     Trailingstoplossi();
    
  }  
   
  if (first) 
   {
      a=Ask; 
      b=Bid; 
      first=false; 
      return(0);
   } 
 
  if (Ask-a>=Shift*Point) 
    {
    OrderSend(Symbol(),OP_SELL,GetLots(),Bid,3,0,0,"",MAGIC,0,CLR_NONE);
    } 
  if (b-Bid>=Shift*Point) 
    {
    OrderSend(Symbol(),OP_BUY,GetLots(),Ask,3,0,0,"",MAGIC,0,CLR_NONE);
    } 
  a=Ask;  
  b=Bid; 
  
  CloseAll(); 
return(0);} 
//----------------------------------------------------------------------------- 
void CloseAll() 
{ 
  for (int cnt = OrdersTotal()-1 ; cnt >= 0; cnt--) 
  { 
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES); 
    if (OrderSymbol() == Symbol()) 
    { 
      if( OrderProfit()>pips*Point) 
      { 
        if(OrderType()==OP_BUY)  OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); 
        if(OrderType()==OP_SELL) OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); 
      } 
      else 
      { 
        if((OrderType()==OP_BUY)  && (((OrderOpenPrice()-Ask)/Point) > Limit)) 
          OrderClose(OrderTicket(),OrderLots(),Bid,3,CLR_NONE); 
        if((OrderType()==OP_SELL) && (((Bid-OrderOpenPrice())/Point) > Limit)) 
          OrderClose(OrderTicket(),OrderLots(),Ask,3,CLR_NONE); 
      } 
    } 
  } 
} 
//-------------------------------------------------------------------------- 
double GetLots() 
{ 
return (NormalizeDouble(AccountFreeMargin()/10000,1)); 
  
} 
//------------------------------------------------------------------------- 
void Trailingstoplossi ()
{
    int cnt, total;
    total=OrdersTotal();
    for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position 
         OrderSymbol()==Symbol()&& OrderMagicNumber()==MAGIC)  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
            // should it be closed?
            
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(NormalizeDouble(Bid-OrderOpenPrice(),Digits)>NormalizeDouble(Point*TrailingStop,Digits))
                 {
                  if(OrderStopLoss()<NormalizeDouble(Bid-Point*TrailingStop, Digits))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble((Bid-Point*TrailingStop),Digits),OrderTakeProfit(),0,Green);
                     return(0);
                    }
                 }
              }
           }
         else // go to short position
           {
            // should it be closed?
            
            // check for trailing stop
            if(TrailingStop>0)  
              {                 
               if(NormalizeDouble((OrderOpenPrice()-Ask),Digits)>NormalizeDouble((Point*TrailingStop),Digits))
                 {
                  if((NormalizeDouble(OrderStopLoss(),Digits)>NormalizeDouble((Ask+Point*TrailingStop),Digits)) || (OrderStopLoss()==0))
                    {
                     OrderModify(OrderTicket(),OrderOpenPrice(),NormalizeDouble((Ask+Point*TrailingStop),Digits),OrderTakeProfit(),0,Red);
                     return(0);
                    }
                 }
              }
           }
        }
     }
   return(0);
}
Оптимизация:
 Shift = от 1 до 50 шаг 1
 Limit = от 1 до 50 шаг 1
 pips= от 1 до 50 шаг 1
 TrailingStop= от 1 до 50 шаг 1
 

что-то ничего хорошего в супер-lucky не заметил.. в по результатам оптимизации он зарабатывает максимум 114$ с начала года на EURGBP

c параметрами Shift=10 Limit=43 pips=11 TrailingStop=48 совершая всего 30 сделок (что для этого эксперта не правильно)

тестил по всем тикам на M30 c 01.01.07 по 19.10.07

meta-trader2007, а у тебя какие результаты и с какими параметрами?

 
Stinger:

что-то ничего хорошего в супер-lucky не заметил.. в по результатам оптимизации он зарабатывает максимум 114$ с начала года на EURGBP

c параметрами Shift=10 Limit=43 pips=11 TrailingStop=48 совершая всего 30 сделок (что для этого эксперта не правильно)

тестил по всем тикам на M30 c 01.01.07 по 19.10.07

meta-trader2007, а у тебя какие результаты и с какими параметрами?


Все зависит от истории ДЦ.

Если ДЦ не совершает резких переходов от одной цены к другой, т.е. без скачков, то и количество сделок будет небольшим. На большинстве историй значение Shift оптимально на уровне 4. При этом открывается достаточное количество сделок, и меньше вероятность убытка.

Так что ищите хороших Партнеров.

 
meta-trader2007 писал(а):
Кароче вот супер Lucky 5.0:

А что такое pips?

Если pips*Point, где пипс = 10, то сделка закроется при прибыли аж 0,01.

А в чем тогда отличие от оригинала?

И в отчете не нашел ни одной сделки, закрытой по TS.

 

Тестировал на Алпари - прибыль минимальная, при этом убрал полностью закрытие позиций и поставил SL & TP.

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