Здравствуйте, гость ( Вход | Регистрация )

4 страниц V < 1 2 3 4 >  
Ответить в эту темуОткрыть новую тему
> Пипсовка Советником, МТС
leonid553
сообщение 16.1.2007, 20:57
Сообщение #11





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Благодарю!
Нашёл(в одном месте), исправил!
Опять две ошибки:
"std" - an operator expected
"std" - semicolon expected
Что-то про точку с запятой...
Может где-то ещё что исправить?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 17.1.2007, 13:05
Сообщение #12





Группа: Активный участник
Сообщений: 27
Регистрация: 10.6.2006
Пользователь №: 657
Спасибо сказали: 0 раз(а)



Вот ,вроде все исправил.

Код
//+------------------------------------------------------------------+
//|                                                FTLM-CCI-flat.mq4 |
//|                                      
//|                                      
//+------------------------------------------------------------------+
//для евро -доллар 5-15 мин            
extern double tTakeProfit    =14;
extern double TakeProfit    =14;
extern double Lots          =0.1;
extern double StopLoss      =25;
extern double a             =0;
extern double percci        =9;
extern double ccilimh       =60;
extern double stdlim          =0.0008;
extern double stdper        =7;

int start()
{
   double std;
  
   double ftlm,ftlmz,ftlmzz;
   double cci;    
   double cciliml=0-ccilimh;    
    
   int cnt, ticket, total;
   if(Bars<100)
     {
      Print("bars less than 100");
      return(0);  
     }
   if(TakeProfit<10)
     {
      Print("TakeProfit less than 10");
      return(0);  // check TakeProfit
     }
          
     ftlm=iCustom(NULL,0,"FTLM_STLM",1,0);
     ftlmz=iCustom(NULL,0,"FTLM_STLM",1,1);
     ftlmzz=iCustom(NULL,0,"FTLM_STLM",1,2);

     cci = iCCI(NULL,0,percci   ,PRICE_CLOSE,a);// CCI  
  
     std=iStdDev(NULL,0,stdper,0,MODE_EMA,0,0);
//+------------------------------------------------------------------+  
     total=OrdersTotal();
   if(total<1)
     {
      // no opened orders identified
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ", AccountFreeMargin());
         return(0);  
        }
      // check for long position (BUY) possibility
      
      if    (ftlm >ftlmz&& ftlmz<ftlmzz  && std<stdlim && cci < cciliml)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,Bid-StopLoss*Point,Ask+TakeProfit*Point,"",0,0,Aqua);Sleep(10000);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("BUY order opened : ",OrderOpenPrice());
           }
         else Print("Error opening BUY order : ",GetLastError());
         return(0);
        }
      // check for short position (SELL) possibility
      if  
             (ftlm<ftlmz&& ftlmzz<ftlmz    && std<stdlim &&  cci > ccilimh )
        {
         ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,Ask+StopLoss*Point,Bid-TakeProfit*Point,"",0,0,Yellow);Sleep(10000);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)) Print("SELL order opened : ",OrderOpenPrice());
           }
         else Print("Error opening SELL order : ",GetLastError());
         return(0);
        }
      return(0);
     }
   for(cnt=0;cnt<total;cnt++)
     {
      OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
      if(OrderType()<=OP_SELL &&   // check for opened position
         OrderSymbol()==Symbol())  // check for symbol
        {
         if(OrderType()==OP_BUY)   // long position is opened
           {
             if (Bid>=OrderOpenPrice()+tTakeProfit*Point)
                    
                {
                 OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position
                
                }
            return(0); // exit
           }
         else
           {
             if ( Ask<=OrderOpenPrice()-tTakeProfit*Point )
                
             {
              OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
               return(0); // exit
              }
            
           }
        }
     }
   return(0);
  }
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 18.1.2007, 21:29
Сообщение #13





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Благодарю! Всё получилось ...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 6.3.2007, 10:04
Сообщение #14





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



Ув. Serge!
Прошу прощения! Но в силу своих скромных познаний при разборе кода вроде бы нашел ошибку :
При проверке условий на вход в BUY, ПЕРВОЕ УСЛОВИЕ выглядит так:
// check for long position (BUY) possibility

if (ftlm >ftlmz&& ftlmz<ftlmzz && std<stdlim && cci < cciliml)
{
Однако. Мне представилось, что во втором неравенстве должно быть:
" ftlmz>ftlmzz " mad.gif
Тем более, если предположить, что условие нА вход в SELL ПОКАЗАНО ПРАВИЛЬНО:
// check for short position (SELL) possibility
if
(ftlm<ftlmz&& ftlmzz<ftlmz && std<stdlim && cci > ccilimh )
rolleyes.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
miranon
сообщение 9.3.2007, 12:13
Сообщение #15





Группа: Пользователи
Сообщений: 3
Регистрация: 7.12.2006
Пользователь №: 1 062
Спасибо сказали: 0 раз(а)



Цитата(SERGE @ 11.1.2007, 21:41) *

Нужно сначала оптимизировать на последнем месяце двух, перед новостями вырубать.


Подскажите, какие параметры нужно оптимизировать?

Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 9.3.2007, 12:33
Сообщение #16





Группа: Активный участник
Сообщений: 2 002
Регистрация: 14.4.2006
Из: г.Самара
Пользователь №: 28
Спасибо сказали: 11 раз(а)



И ещё вот вопрос. Если перед новостями вырубать - то как оптимизировать?
иЗ истории новости не вырежешь?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 10.3.2007, 14:25
Сообщение #17





Группа: Активный участник
Сообщений: 27
Регистрация: 10.6.2006
Пользователь №: 657
Спасибо сказали: 0 раз(а)



Цитата(leonid553 @ 6.3.2007, 10:04) *

Ув. Serge!
Прошу прощения! Но в силу своих скромных познаний при разборе кода вроде бы нашел ошибку :
При проверке условий на вход в BUY, ПЕРВОЕ УСЛОВИЕ выглядит так:
// check for long position (BUY) possibility

if (ftlm >ftlmz&& ftlmz<ftlmzz && std<stdlim && cci < cciliml)
{
Однако. Мне представилось, что во втором неравенстве должно быть:
" ftlmz>ftlmzz " mad.gif
Тем более, если предположить, что условие нА вход в SELL ПОКАЗАНО ПРАВИЛЬНО:
// check for short position (SELL) possibility
if
(ftlm<ftlmz&& ftlmzz<ftlmz && std<stdlim && cci > ccilimh )
rolleyes.gif

Условия указаны верно, можно еще немного фильтрануть -
if (0>ftlm >ftlmz&& ftlmz<ftlmzz && std<stdlim && cci < cciliml) условие покупки
if (0<ftlm<ftlmz&& ftlmzz<ftlmz && std<stdlim && cci > ccilimh ) условие продажи.

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




Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
miranon
сообщение 11.3.2007, 16:21
Сообщение #18





Группа: Пользователи
Сообщений: 3
Регистрация: 7.12.2006
Пользователь №: 1 062
Спасибо сказали: 0 раз(а)



Цитата(SERGE @ 10.3.2007, 15:25) *

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


Serge
Скажите а сколько времени у вас занимает оптимизация всех параметров по eur/usd по всем тикам за последний месяц?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 12.3.2007, 10:22
Сообщение #19





Группа: Активный участник
Сообщений: 27
Регистрация: 10.6.2006
Пользователь №: 657
Спасибо сказали: 0 раз(а)



Цитата(miranon @ 11.3.2007, 16:21) *

Цитата(SERGE @ 10.3.2007, 15:25) *

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


Serge
Скажите а сколько времени у вас занимает оптимизация всех параметров по eur/usd по всем тикам за последний месяц?

2-3 часа. Чтобы быстрее провести оптимизацию начальный шаг изменения переменных устанавливаю 10-20% от всего диапазона сканирования , затем в пределах найденных оптимальных значений провожу точную оптимизацию с минимальным шагом изменения переменных .
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 16.3.2007, 8:49
Сообщение #20





Группа: Активный участник
Сообщений: 27
Регистрация: 10.6.2006
Пользователь №: 657
Спасибо сказали: 0 раз(а)



2-3 часа. Чтобы быстрее провести оптимизацию начальный шаг изменения переменных устанавливаю 10-20% от всего диапазона сканирования , затем в пределах найденных оптимальных значений провожу точную оптимизацию с минимальным шагом изменения переменных
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

4 страниц V < 1 2 3 4 >
Ответить в эту темуОткрыть новую тему

 



- Текстовая версия Сейчас: 15.5.2024, 1:54