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

41 страниц V « < 24 25 26 27 28 > »   
Ответить в эту темуОткрыть новую тему
> Нестандартная тактика, Совместить несовместимое ...
leonid553
сообщение 23.7.2007, 10:36
Сообщение #251





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



Использую систему при ручной торговле по всем своим парам на Н4. Как один из подтверждающих сигналов. Некоторый недостаток, - стохастик перерисовывается на последней (текущей свече).
По киви - на н1. Работаеt система прилично.
А советник, - "любит" молотить против тренда! С этим надо бороться.
Вот вставил дополн. режим, - открытие встречной позиции если убыток текущей позиции превышает "m" пипсов. Но фильтр ещё видно нужно добавить. Добавил индюк Форсе, - но - результат слабый.
Код
//+------------------------------------------------------------------+
//|Stochastic_Env.mq4.mq4
//| leonid553 & Co
//| http://www.tradersforum.net.ru/
//+------------------------------------------------------------------+
#property copyright "leonid553 & Co"
#property link      "http://www.tradersforum.net.ru/"

//---- input parameters---------

extern int MagicNum = 294;
extern int MagicLock = 295;
//-----------------------------------
extern int     Stochastic_period=8;
extern int     Env_period=25;
extern int     Env_shift=1;
extern double  Env_deviation=20;
//------------------------------
extern int     TP=55;
extern int     SL=55;
extern int m=20;
extern int TP_lock=30;
extern int SL_lock=30;

extern double  Lot=0.1;
extern int     Slippage=3;
//-------------------
int ticket;

//*********************************************************************

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
if (Env_deviation==0) Env_deviation=0.1;
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
  
//----
   return(0);
  }

//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
  
  // int cnt=0;
   int total = OrdersTotal(); // количество открытых ордеров
  if( total==0)               //если нет открытых ордеров

  {  

double Stochastic_array[49];
//заполняем массив значениями Stochastic-----------------]
int    i=0;
while (i<50)
{
Stochastic_array[i]= iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, i);
i++;
}
//------------------------------------------------------

ArraySetAsSeries(Stochastic_array,true);
// Цепляем на стохастик конверт - Envelope :
double
En0_low=iEnvelopesOnArray(Stochastic_array,0,Env_period,0,Env_shift,Env_deviation,MODE_LOWER,0);

double
En0_up=iEnvelopesOnArray(Stochastic_array,0,Env_period,0,Env_shift,Env_deviation,MODE_UPPER,0);

double Stochastic_0=iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, 0);
double Stochastic_1=iStochastic(NULL, 0, Stochastic_period, 3,3,MODE_SMA,0,MODE_MAIN, 1);

//]===== Ищем возможность войти в рынок ]=========================================================


//проверяем условие на покупку-------------[/
  if   (
          (Stochastic_1<En0_low)  &&
          (Stochastic_0>En0_low)  )
   {  // ---покупаем-----
  ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-SL*Point,Ask+TP*Point,NULL,MagicNum,0,Blue);
  if (ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0); }              
   }


//--------проверяем условие на продажу
  if  ( //-------продаем------------
          (Stochastic_1>En0_up)  &&
          (Stochastic_0<En0_up))
   {      
  ticket=OrderSend(Symbol(),1,Lot,Bid,Slippage,Bid+SL*Point,Bid-TP*Point,NULL,MagicNum,0,Yellow);
  if (ticket<0) { Print("Ошибка открытия ордера SELL #", GetLastError()); return (0); }              
   }
  
//------------------------------------------------------------------
  }

//***************ЛОКИРОВАНИЕ**********************

if( total==1)//если есть открытый ордер  

{  
      double val=iForce(NULL, 0, 5,MODE_SMA,PRICE_CLOSE,0);        
    if (OrderSelect(0, SELECT_BY_POS, MODE_TRADES))

{
  
//----------------------------------------------------------------------
    if (OrderType() == OP_BUY && (OrderMagicNumber() == MagicNum)) //и если это - длинная позиция открыта----------
  {
     if ((OrderProfit() < (-m) ) && val<-0 )
      // - если убыток позиции превышает "m", то открываем лок SELL
    {
    
  ticket=OrderSend(Symbol(),1,Lot,Bid,Slippage, Bid+SL_lock*Point, Bid-TP_lock*Point,NULL,MagicLock,0,Aqua);
if (ticket<0) { Print("Ошибка открытия ордера SELL #", GetLastError()); return (0);}
        
     }
}
    //------------------------------------------------------------------
    if (OrderType() == OP_SELL && (OrderMagicNumber() == MagicNum)) //и если это - короткая позиция открыта----------
  {
     if ((OrderProfit() <(-m) ) &&  val>0)
      // - если убыток позиции превышает "m", то открываем лок BUY
    {    
ticket=OrderSend(Symbol(),0,Lot,Ask,Slippage,Bid-SL_lock*Point,Ask+ TP_lock*Point,NULL,MagicLock,0,Green);
    
  if (ticket<0) { Print("Ошибка открытия ордера BUY #", GetLastError()); return (0); }  
        
     }
    }
    //----------------------------------------------------------
   }
  }
      return(0);
      }
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Invest1979
сообщение 23.7.2007, 12:17
Сообщение #252





Группа: Активный участник
Сообщений: 12
Регистрация: 23.7.2007
Из: г. Оренбург
Пользователь №: 1 426
Спасибо сказали: 0 раз(а)



Может я чего не понимаю. Но в коде советника написано, что сравнение значения стохастика присходит всегда с текущим значение конверта. вот тут:

//проверяем условие на покупку-------------[/
if (
(Stochastic_1<En0_low) &&
(Stochastic_0>En0_low) )
То есть с текущим значением конверта сравнивается и значение стохастика свечку назад и текущее. Из-за этого не которые сигналы пропускаются. Если в ручную пройтись по графику и сравнить результат с резултатом советника. Мне кажется нужно добавит еще значение енвилопса свечку назад и тогда писать вот так:

//проверяем условие на покупку-------------[/
if (
(Stochastic_1<En1_low) &&
(Stochastic_0>En0_low) )
Тогда пропусков сигнала не будет. И еще у меня мысль. А что если сделать что бы советник работал только с закрытыми свечами. То есть без нулевого текущего бара. и сделать что бы система работала по переворотам.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 23.7.2007, 12:41
Сообщение #253





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



Не думаю, что входы пропускаются. Ведь цена двигается тиками, - туда/сюда, - и так или иначе условие всегда выполнится.
Чтобы сделать с закрытыми свечами, - нужно предусмотрееть работу советника по ценам открытия. Но в этом случае, - при длинных свечах (например на новостях) мы войдем в рынок с бо.о.ольшим опозданием! - когда уже и не надо, - на излете движения!
Вроде бы есть еще версия, - где предусмотрено закрытие текущей позиции при встречном сигнале! Т.е. переворот.
Посмотрю...
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
space
сообщение 23.7.2007, 20:48
Сообщение #254





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



с учётом последнего выложенного кода чуть позже выложу свою версию ))
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
leonid553
сообщение 24.7.2007, 6:55
Сообщение #255





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



Ок! Думаю что индикатор Форсе (и условие по нему) нужно выкинуть, и вместо него можно предусмотреть для лока обычный фильтр из 2-х сглаженных МА. И возможно в дальнейшем будет целесоображным - для лока - предусмотреть отдельный трейлинг!
Исходя из логики такой системы.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 24.7.2007, 7:26
Сообщение #256





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



Цитата(Invest1979 @ 23.7.2007, 15:17) *
Может я чего не понимаю. Но в коде советника написано, что сравнение значения стохастика присходит всегда с текущим значение конверта. вот тут:

//проверяем условие на покупку-------------[/
if (
(Stochastic_1<En0_low) &&
(Stochastic_0>En0_low) )
То есть с текущим значением конверта сравнивается и значение стохастика свечку назад и текущее. Из-за этого не которые сигналы пропускаются. Если в ручную пройтись по графику и сравнить результат с резултатом советника. Мне кажется нужно добавит еще значение енвилопса свечку назад и тогда писать вот так:

//проверяем условие на покупку-------------[/
if (
(Stochastic_1<En1_low) &&
(Stochastic_0>En0_low) )
Тогда пропусков сигнала не будет. И еще у меня мысль. А что если сделать что бы советник работал только с закрытыми свечами. То есть без нулевого текущего бара. и сделать что бы система работала по переворотам.


Не думаю что Вы заметите разницу изменив это условие.
Дело в том что разница значений Envelope на 0-м и 1-м барах, как правило, очень маленькая, в то время как стохастик перемещается большими шагами.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Invest1979
сообщение 24.7.2007, 7:57
Сообщение #257





Группа: Активный участник
Сообщений: 12
Регистрация: 23.7.2007
Из: г. Оренбург
Пользователь №: 1 426
Спасибо сказали: 0 раз(а)



Разница есть в открытии позиций. Но может быть она есть у меня так как я изменил советника что бы он торговал только по закрытым барам. То есть открытие позии происходит после того как стохастик закрепится выше или ниже конверта. И еще при таком способе открытия позиций оптимизация показывает что периоды стохастика для 4 часового графика должны быть достаточно большими. Кто нибудь сталкивался с этим?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
SERGE
сообщение 24.7.2007, 11:22
Сообщение #258





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



Цитата(Invest1979 @ 24.7.2007, 7:57) *

Разница есть в открытии позиций. Но может быть она есть у меня так как я изменил советника что бы он торговал только по закрытым барам. То есть открытие позии происходит после того как стохастик закрепится выше или ниже конверта. И еще при таком способе открытия позиций оптимизация показывает что периоды стохастика для 4 часового графика должны быть достаточно большими. Кто нибудь сталкивался с этим?

Стохастик может работать и как осциллятор во флете при малых периодах, и как трендовый индикатор наподобие кросс-ма при длительных. В соответствии с вашими ограничениями тестер подбирает вам флет или тренд.
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
NoName
сообщение 24.7.2007, 12:07
Сообщение #259





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



Цитата(Invest1979 @ 24.7.2007, 10:57) *

Разница есть в открытии позиций. Но может быть она есть у меня так как я изменил советника что бы он торговал только по закрытым барам. То есть открытие позии происходит после того как стохастик закрепится выше или ниже конверта. И еще при таком способе открытия позиций оптимизация показывает что периоды стохастика для 4 часового графика должны быть достаточно большими. Кто нибудь сталкивался с этим?


А не могли бы Вы повесить отчёт по тестированию Вашей версии советника?
В свое время так же пробовал работу по закрытым барам, но количество сделок сильно сокращалось, и были они далеко не самыми удачными. Всё дело в том что стохастик очень быстро "прошивает" канал и если ждать закрытия бара, он либо уже давно за второй границей (сигнала, соответственно, уже нет), либо вход уже в самом конце движения.
Как вы поступили с этим моментом в своём советнике?
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Invest1979
сообщение 24.7.2007, 13:00
Сообщение #260





Группа: Активный участник
Сообщений: 12
Регистрация: 23.7.2007
Из: г. Оренбург
Пользователь №: 1 426
Спасибо сказали: 0 раз(а)



Вешаю по паре евро фунт. Надо сказать не самые лучшие у нее результаты. А что касается прошивание канала то для меня в принципе это значения не имеет. (У меня если она пробила первый канал, то не важно пробила второй или нет, это в советнике не прописано). Я торгую по 4 часовикам и достаточно длительные по времени сделки. Поэтому при оптимизации стараюсь что бы параметры индюков были большие. Это конечно увеличивает стоп, тэйк и снижает размер позиций. В данном случае стохастик период больше 50, а по некоторым парам и за 200 есть. Конечно количество сделок уменьшается, но это по моему даже хорошо. Так как я торгую много пар. Но зато система становится более устойчивая. В данном случае оптимизация проводилась на периоде 1 полугодие 2007 года. И с этими же параметрами сносный результат показывает и на 2006 году. У меня она работает в качестве переворотной, если раньше стоп не сроботает. Хотя наверное нужно попробовать трал, но пока опыта в програмировании не хватает.



Эскизы прикрепленных изображений


Прикрепленные файлы
Прикрепленный файл  StrategyTester_gbp_eur.htm ( 20.05 килобайт ) Кол-во скачиваний: 796
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

41 страниц V « < 24 25 26 27 28 > » 
Ответить в эту темуОткрыть новую тему

 



- Текстовая версия Сейчас: 24.4.2025, 8:31