Система StockKey - страница 4

 
На часовых барах чуть похуже, но тоже нормально=)
Bars in test 18805
Ticks modelled 1463440
Modelling quality 89.99%
Initial deposit 10000.00
Total net profit -9840.00

На 5минутках
Bars in test 39999
Ticks modelled 582694
Modelling quality 90.00%
Initial deposit 10000.00
Total net profit 31170.00
Это начиная с 2005.09.02 15:04

Вроде на 15ках лучше всего=)
 
Strategy Tester Report
FlatTrade

Symbol GBPUSD (Great Britain Pound vs US Dollar)
Period 15 Minutes (M15) 2005.07.21 11:15 - 2006.03.10 22:45
Model Every tick (based on all available least timeframes with fractal interpolation of every tick)
Bars in test 15953 Ticks modelled 528557 Modelling quality 89.99%

Initial deposit 10000.00
Total net profit 384870.00
 
Ronen:
mandor:
Система лежит здесь: https://www.mql4.com/ru/forum/2784/
Там её нет. Где можно найти?
 
mandor:
arzuma:
Там её нет. Где можно найти?
Наплюй, ну подумаешь эта система зарабатывает. Не правильно она зарабатывает. И вообще, не в этом счастье ...
Mandor! Почему больше не тестируешь? Или ты уже на канарах? Какие результаты?
P.s. если не хочешь тут,плз пришли результаты тестирования на ronenkag@zahav.net.il .... а то я тут себе уже виллу присматриваю..... =)))
 
ну ладно ладно... я эту систему доработал.. теперь вроде не такая рисковая...и сейчас тестирую,просто хотел узнать,как прошлая версия.. жива ли еще...
 

Ronen писал (а):

Ок! Да,наверное все-таки уберу,а то системы Вильямса,Эллиота и прочих биржевых изобретателей тоже когда-то прибыль приносили, пока их все не "скачали" :))))

Mandor! А как насчет того чтоб еще одну систему потестировать... я тут разработал еще кой-чаво... вроде в прибыль идет.. но я код не дам пока,а вот сам советник поставлю...
он еще использует стоп-лоссы и таке-профиты... но потестировать стоит... тестировать надо на 15минутках и на eurusd,gbpusd,audusd,nzdusd,usdchf, usdjpy!

Привет

я Заинтересован в FlatTrade
но ссылка не идет

5one51 at googlemail.com

Спасибо
 
FlatTrade уже отжила свое как отдельный советник,перетерпев множество модификаций превратилась в часть другой системы... над которой я сейчас работаю...
 
Я тоже месяц назад модифицировал StockKey, немного снизив риски при резком тренде, однако все равно падение доллара 29-30 июня, два раза пробило стоплосс. Но даже при этом я остался в плюсе. В среднем советник дает около 150%-200% в месяц :), резкий тренд убивает где-то 40% депо, и даже при этом остается 90% прибыли.
Потестирую месяц, может запущу на реале :)
Ув. Ронен, был бы очень признателен если вышлите мне на мыло FlatTrade, взамен могу выслать свой вариант StockKey (хотя там от него ничего и не осталось ;) ).
мыло: mae-stro@mail.ru
 

Спасибо,интересно посмотреть,что еще из StockKey удалось произвести!!!! мыло: ronen[dog]rin.ru

Вообщем,всем кому интересен FLatTrade вот его код!!! Сразу предуперждаю, что разобраться в нем будет не просто,я уже сам с трудом вспоминаю в чем там идея,
но вроде он отлавливает резкие движения , допустим вниз,а потом когда цена откатывается на сколько-то вверх,продает и также в другую сторону...
а да,и ТраилингСтоп там смысл,что он идет за ценой и какбы тянет планку,а когда цена разворачивается открывает....

//+------------------------------------------------------------------+
//|                                                    FlatTrade.mq4 |
//|                                                            Ronen |
//|                                            RonenKag@zahav.net.il |
//+------------------------------------------------------------------+
#property copyright "Ronen"
#property link      "RonenKag@zahav.net.il"
 
//---- input parameters
#define   width              23        // size of bars buffer to calculate extremiums
double    TakeProfit; 
double    StopLoss;   
double    Lots=1;  
double    height;
double    TrailingStop; // Distance to open position from extremium
double    border;
int       shift;
 
double           barsH[width]; 
double           barsL[width]; 
 
int    counter=-1;
datetime lastBarTime=0;
 
double flatMax=0;
int    flatMaxPlace=0;
int    maxBar=0;
 
double flatMin=100000;
int    flatMinPlace=0;
int    minBar=0;
 
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
 
int init()
  {
//----
setParametres();
for (int i=0;i<width;i++)
   {
   barsH[i]=High[i];
   barsL[i]= Low[i];
   if (barsL[i]==0) barsL[i]=10000;
   } 
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start(){
rearrangeData();
 
   if (mayOpen()) 
      if ((flatMax-Bid>TrailingStop*Point)&&(flatMax-Bid<(TrailingStop+border)*Point)&&(maxBar()<shift)&&(getHeight()>height))openOrder(OP_BUY); 
         else if ((Ask-flatMin>TrailingStop*Point)&&(Ask-flatMin<(TrailingStop+border)*Point)&&(minBar()<shift)&&(getHeight()>height))openOrder(OP_SELL);
   return(0);
}
//+------------------------------------------------------------------+
//+HelpFunctionsDescription------------------------------------------+
//+------------------------------------------------------------------+
void rearrangeData(){
   double highCurrent=High[0];
   double lowCurrent=Low[0];
   if (Time[0]!=lastBarTime){
      lastBarTime=Time[0];
      counter++;
     
      if (counter==width) counter=0;
      if (counter==flatMaxPlace)
         {
         barsH[counter]=highCurrent;
         flatMaxPlace=ArrayMaximum(barsH);
         flatMax=barsH[flatMaxPlace];   
         }
      if (counter==flatMinPlace)
         {
         barsL[counter]=lowCurrent;
         flatMinPlace=ArrayMinimum(barsL);
         flatMin=barsL[flatMinPlace];   
         }
      }
      else
      {
      barsH[counter]=highCurrent;
      barsL[counter]= lowCurrent;
      if (flatMax<highCurrent){
        flatMax=highCurrent;
        flatMaxPlace=counter; 
      }
   if (flatMin> lowCurrent){
      flatMin= lowCurrent;
      flatMinPlace=counter;       
      }
   }
}
int minBar() // returns distance in bars of minimum bar from now
{
if (flatMinPlace<counter)  return (counter-flatMinPlace);
if (flatMinPlace>counter)  return (width-(flatMinPlace-counter));
if (flatMinPlace==counter) return (0);
}
 
int maxBar() // returns distance in bars of maximum bar from now
{
if (flatMaxPlace<counter)  return (counter-flatMaxPlace);
if (flatMaxPlace>counter)  return (width-(flatMaxPlace-counter));
if (flatMaxPlace==counter) return (0);
}
// OP_BUY = 0,OP_SELL = 1
int openOrder(int bs){
double a = Ask;
double b = Bid;
Print("Trying to send order!");
if (bs==OP_BUY)  return (OrderSend(Symbol(), OP_BUY,Lots,a,3,a-StopLoss*Point,a+TakeProfit*Point,0,0,0,Green));
if (bs==OP_SELL) return (OrderSend(Symbol(),OP_SELL,Lots,b,3,b+StopLoss*Point,b-TakeProfit*Point,0,0,0,Red));
}
double getHeight(){return((flatMax-flatMin)/Point);}
 
bool setParametres()
{
//-------------------------------------------------------------------------
string symb = Symbol();
int s_no=-1;
if (symb=="EURUSD")s_no=0;
if (symb=="GBPUSD")s_no=1;
if (symb=="AUDUSD")s_no=2;
if (symb=="NZDUSD")s_no=3;
if (symb=="USDCHF")s_no=4;
if (symb=="USDJPY")s_no=5;
//--------------------------------------------------------------------------
double Params[6][6];
 
// [?] [-] -> 0,1,2,3,4,5 -   eurusd,gbpusd,audusd,nzdusd,usdchf,usdjpy
// [-] [?] -> 0,1,2,3,4,5     TakeProfit,StopLoss,Height,TrailingStop,shift,border
 
//             TakeProfit  StopLoss height   TrailingStop      shift    border
// eurusd         17          13      100       21                 5      25   ok
// gbpusd         15          13       60       23                 1      25   ok
// audusd         15          14       35       22                 4      21   ok
// nzdusd         18          17       50       25                 4      22   ok
// usdchf         15          16       70       33                 3      22   ok 
 
 
Params[0][0]=17 ;    Params[1][0]=15 ;      Params[2][0]=15 ;
Params[0][1]=15 ;    Params[1][1]=13 ;      Params[2][1]=14 ;
Params[0][2]=100 ;   Params[1][2]=60 ;      Params[2][2]=35 ;
Params[0][3]=21 ;    Params[1][3]=23 ;      Params[2][3]=22 ;
Params[0][4]=5 ;     Params[1][4]=1 ;       Params[2][4]=4 ; 
Params[0][5]=25 ;    Params[1][5]=25 ;      Params[2][5]=21 ; 
 
Params[3][0]=18 ;      Params[4][0]=15 ;      Params[5][0]=15 ;
Params[3][1]=17 ;      Params[4][1]=16 ;      Params[5][1]=16 ;
Params[3][2]=50 ;      Params[4][2]=70 ;      Params[5][2]=70 ;
Params[3][3]=25 ;      Params[4][3]=33 ;      Params[5][3]=33 ;
Params[3][4]=4 ;       Params[4][4]=3 ;       Params[5][4]=3 ;
Params[3][5]=22 ;      Params[4][5]=22 ;      Params[5][5]=12 ;
//--------------------------------------------------------------------------
 
TakeProfit=   Params[s_no][0];
StopLoss=     Params[s_no][1];
height=       Params[s_no][2];
TrailingStop= Params[s_no][3];
shift=        Params[s_no][4];
border=       Params[s_no][5];
 
return (true);
}
 
bool mayOpen(){
int total=OrdersTotal();
for (int i=0;i<total;i++)
   if (OrderSelect(i,SELECT_BY_POS))
      if (OrderSymbol()==Symbol()){
      
         double osl=OrderStopLoss();
         double otp=OrderTakeProfit();
         double oop=OrderOpenPrice();
         int    ot =OrderType();
         
                  
         if (ot==OP_BUY) 
            if ((!isEqual(oop-osl,StopLoss*Point))||(!isEqual(otp-oop,TakeProfit*Point)))
                    OrderModify(OrderTicket(),0,oop-StopLoss*Point,oop+TakeProfit*Point,0,0);
         
         if (ot==OP_SELL) 
            if ((!isEqual(osl-oop,StopLoss*Point))||(!isEqual(oop-otp,TakeProfit*Point)))
                    OrderModify(OrderTicket(),0,oop+StopLoss*Point,oop-TakeProfit*Point,0,0);
      
         return (false);
         }
return (true);
}
 
bool isEqual(double a,double b){
if (MathAbs(a-b)>=Point) return (false);
   else return (true);
}





 

У меня ФТ почему-то не открывает даже первую позу. Не пойму в чем дело. :-(

Ронен, вы получили мой вариант? Если можете прокомментировать, отпишитесь мне на мыло плиз.

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