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

4 страниц V  1 2 3 > »   
Ответить в эту темуОткрыть новую тему
> Пипсовка Советником, МТС
SERGE
сообщение 1.12.2006, 11:07
Сообщение #1





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



Интересно , кто как относится к пипсовке? Желательно поделиться опытом.
Для закваски - код экспериментального пипсовщика.
Цитата

//+------------------------------------------------------------------+
//| FTLM-flat.mq4 |
//| |
//| |
//+------------------------------------------------------------------+
// Оптимизировать для евро -доллар 5 или 15 минут за последний месяц
extern double TakeProfit =12;
extern double tTakeProfit =6; // тейкпрофит меньше 10
extern double Lots =0.1;
extern double StopLoss =30;
extern double sStopLoss =25; // стоплосс меньше 10
extern double limh =0.0005;
extern double ftlimh =0.0005;
extern double stdper =18;
//+------------------------------------------------------------------+

int start()
{

double std;
double ftlm,ftlmz,ftlmzz;
double ftliml=0-ftlimh;
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); //http://www.lightpatch.com/forex/_MT4_Indicators/
ftlmzz=iCustom(NULL,0,"FTLM-STLM",1,2);
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<limh && ftlm < ftliml )

{ ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,2,Bid-StopLoss*Point,Ask+TakeProfit*Point,"ftlm ",12152,0,Red);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<limh && ftlm > ftlimh)

{ ticket=OrderSend(Symbol(),OP_SELL,Lots,Bid,2,Ask+StopLoss*Point,Bid-TakeProfit*Point,"ftlm ",12152,0,Blue);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);
}
//+-------------------------------close position-----------------------------------+

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()-sStopLoss*Point || Bid>=OrderOpenPrice()+tTakeProfit*Point)

{
OrderClose(OrderTicket(),OrderLots(),Bid,3,Violet); // close position

}
return(0); // exit
}
else
{
if (Ask>=OrderOpenPrice()+sStopLoss*Point || Ask<=OrderOpenPrice()-tTakeProfit*Point )

{
OrderClose(OrderTicket(),OrderLots(),Ask,3,Violet); // close position
return(0); // exit
}

}
}
}
return(0);
}
//+-----------------------------------------------------------------
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 1.12.2006, 11:54
Сообщение #2





Группа: Активный участник
Сообщений: 514
Регистрация: 1.5.2006
Из: Украина, Кременчуг
Пользователь №: 146
Спасибо сказали: 0 раз(а)



Среди МТС-ников бытует мнение что пипсовать советником - гиблое дело! Начиная от точности генерации тиков в тестере, заканчивая палками в колёсах от ДЦ. Так же рассказывают что результат теста от реала будет очень сильно отличаться, так как будут присутствовать проскальзывания и постоянные реквоты на быстром рынке.
К сожалению личного опыта не имею, пока не было желания проверять на собственной шкуре smile.gif
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 3.12.2006, 14:15
Сообщение #3





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



Цитата(NoName @ 1.12.2006, 11:54) *

Среди МТС-ников бытует мнение что пипсовать советником - гиблое дело! Начиная от точности генерации тиков в тестере, заканчивая палками в колёсах от ДЦ. Так же рассказывают что результат теста от реала будет очень сильно отличаться, так как будут присутствовать проскальзывания и постоянные реквоты на быстром рынке.
К сожалению личного опыта не имею, пока не было желания проверять на собственной шкуре smile.gif

Ну это не совсем пипсовка, попытка реализовать точный вход с коротким тейком при внутридневном флэте, время удержания позиции в зависимости от волатильности - от 20 мин до 1-2 часов. Цель пипеток 30-40 в день, на новостях вырубать.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 10.1.2007, 13:36
Сообщение #4





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



Усовершенствованный вариант советника для "тихого" рынка.

Код
//+------------------------------------------------------------------+
//|                                                FTLM-CCI-flat.mq4 |
//|                                      
//|                                      
//+------------------------------------------------------------------+
//для евро -доллар 5-15 мин            
extern double tTakeProfit    =7;
extern double TakeProfit    =10;
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<stdlimh && 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);
  }
  
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mifrill
сообщение 10.1.2007, 21:56
Сообщение #5





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



Проверил на демке... Просадка абсолютная по паре евро\доллар. Может, не в то время проверял?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 11.1.2007, 20:41
Сообщение #6





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



Цитата(Mifrill @ 10.1.2007, 21:56) *

Проверил на демке... Просадка абсолютная по паре евро\доллар. Может, не в то время проверял?

Нужно сначала оптимизировать на последнем месяце двух, перед новостями вырубать.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 11.1.2007, 20:56
Сообщение #7





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



to SERGE:
Я не спец. Подскажите, пож., как переделать текст советника в исходный файл ? - в "ромбик"?
Или надо всё это перепечатывать в METAEDITOR?
-----------------------------------------------------------------------
Вот нашелся тоже пипсовочный советник. Основное достоинство - почти не сливает!
Но работает почему-то только в Seii!(тестировал на м5 по фунту...)


Прикрепленные файлы
Прикрепленный файл  pipsun.rar ( 1.22 килобайт ) Кол-во скачиваний: 788
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 12.1.2007, 17:39
Сообщение #8





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



Цитата(leonid553 @ 11.1.2007, 20:56) *

to SERGE:
Я не спец. Подскажите, пож., как переделать текст советника в исходный файл ? - в "ромбик"?
Или надо всё это перепечатывать в METAEDITOR?
-----------------------------------------------------------------------
Вот нашелся тоже пипсовочный советник. Основное достоинство - почти не сливает!
Но работает почему-то только в Seii!(тестировал на м5 по фунту...)

Любой код можно воткнуть через МЕ. Выбирарайте в МЕ "файл" - "создать"- "советник", впишите навание , теперь "готово". Вместо появившегося шаблона копируете нужный код и "компилировать". Не забудьте что используемые в советнике индикаторы должны быть среди ваших пользовательских.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 12.1.2007, 18:16
Сообщение #9





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



Прошу прощения за назойливость.
Сделал всё "как велено"!
Даже индикатор поставил FTLM_STLM.
При компиллировании обнаружились ошибки. Устранил!
Кроме одной:
"stdlimh - variable not defined" - file-МТ4/expert/название-(67, 49)
Что можно предпринять?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 12.1.2007, 18:44
Сообщение #10





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



Цитата(leonid553 @ 12.1.2007, 18:16) *

Прошу прощения за назойливость.
Сделал всё "как велено"!
Даже индикатор поставил FTLM_STLM.
При компиллировании обнаружились ошибки. Устранил!
Кроме одной:
"stdlimh - variable not defined" - file-МТ4/expert/название-(67, 49)
Что можно предпринять?

Исправьте в коде stdlimh на stdlim и скомпилируйте , я недоглядел.

Кстати "пипсун"-фуфло сливает "на всех тиках" в ноль.

Сообщение отредактировал SERGE - 12.1.2007, 18:47
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 



- Текстовая версия Сейчас: 27.4.2024, 23:44