Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



фрактальный снайпер.

1)делаем сетку, с шагом H=1000п
2)в истории d=количество баров 100
3 ищем фракталы +-100 п. от H.
4)определяем максимальное количество фракталов на сетке, и записываем ее H (уровень).
5)если цена пересекает уровень, открываем сделку.

Если кто видел подобный ботик, или возможно захочет написать его, буду очень благодарен.
  • +1
  • Просмотров: 6943
  • 26 ноября 2015, 15:11
  • ars2005tron
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Переделать советник
Следующая запись в группе  
Прошу создать советник
26 ноября 2015
26 ноября 2015

Брокер для ваших роботов, 15 лет на рынке

Комментарии (69)

+
0
Не совсем понятное ТЗ. Можете на скринах все показать?
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 26 ноября 2015, 15:24
+
0
не судите строго, на меня находит что то написать раз в год, вот и сейчас что то нахлынуло, -))
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 26 ноября 2015, 15:37
+
0
ботик работает! только сейчас проверил -) может кому надо…
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 26 ноября 2015, 15:42
+
0
Здравствуйте, h1 — уровень+ диапазон, это цена округленная. т.е 1.06 или 1.07, если шаг 500 то 1.0650, 1.070, 10750, сетка строится на высоту 5000 п в верх и в низ от тек цены. фракталы искать в пределах временных = d и ценовых h = 150 п от тек цены.

Редактирован: 27 ноября 2015, 09:38
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 26 ноября 2015, 15:31
+
0
//+------------------------------------------------------------------+
//| sesya.mq4 |
//| Moscow_ars |
//| |
//+------------------------------------------------------------------+
#property copyright «buy»
#property link ""

extern double SL_b=500; //б-500;s-750;
extern double TP_b=2500; //б-2500;s-2500
extern double lots=0.10; //начальный лот.
extern int Cikl_b=2; //б-2;s-3; //Время начала зоны разрешения.
extern int Start_time_b=8;//б-8;s-11; //временной период на открытие.
extern double uv_lot_martin=1; //число мартина.
extern int Luft_prokol_b =60; //б-60;s-75 // отступ цены от ключевого уровня.
extern double pauza=2;

extern double b_ma = 10;
extern double b_masdvig= 0;
double ma;

int tip=1;//2-buy;1-sell
int kol_vo_o; //количество ордеров в истории.
double lots_o; //лот после мартина.

//+------------------------------------------------------------------+
// — /
int start()
{
// — / система мартингейла.
kol_vo_o=OrdersHistoryTotal();
if (kol_vo_o==0)
{
lots_o = lots;
}
OrderSelect(kol_vo_o-1,SELECT_BY_POS,MODE_HISTORY);
if(OrderProfit()<0)
{
lots_o=OrderLots()*uv_lot_martin;
}
else
{
lots_o=lots;
}
// — / расчет ближайшего уровня в заданном диапазоне.
double Luft_up1000= NormalizeDouble(Ask,2)+Luft_prokol_b*Point; //округляем цену до 1й фигуры, расчет цены люфта выше уровеня.
double Luft_up500= NormalizeDouble(Ask,2)+0.00500+Luft_prokol_b*Point; //округляем цену до половины фигуры, расчет цены люфта выше уровеня.
double Luft_dw1000= NormalizeDouble(Ask,2)-Luft_prokol_b*Point; //расчет цены люфта ниже уровеня.
double Luft_dw500= NormalizeDouble(Ask,2)-0.00500-Luft_prokol_b*Point;
// — /
// — / Исполняемый модуль.
if (uroven(Luft_dw1000,Luft_up1000)==1)
{
if (OrdersTotal()==0) //если нет открытых и отложенных ордеров.
{
OrderSend(Symbol(),OP_BUY, lots_o, Ask, 3, (Ask — SL_b*Point), (Bid + TP_b*Point), "...", 125, 0, Blue);
}
OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES);
int H_th = TimeHour(OrderOpenTime());
int th = TimeHour(TimeCurrent());
if((OrdersTotal()!=0)&(th-H_th > pauza) )
{
OrderSend(Symbol(),OP_BUY, lots_o, Ask, 3, (Ask — SL_b*Point), (Bid + TP_b*Point), "...", 125, 0, Blue);
}
}
return(0);
}
//+------------------------------------------------------------------+
// — /функция ищет в истории отработку уровней для buy возвращает = 1;
int uroven(double In_dw1000,double In_up1000)
{
if(time_zona(Cikl_b,Start_time_b)==1) //разрешение на торговлю.
{
if(Ask < In_dw1000)// в данный момент цена вошла в нужную временную зону и находится ниже сигнального уровня.
{
int th= TimeHour(TimeCurrent()); //текущий час.
//найти в заданном диапазоне, цену выше сигнального уровня.
for(int time_bars=Cikl_b+1;time_bars<=th;time_bars++) //
{
double history_high =iHigh(NULL,0,th-time_bars); //получаем цену в указанне время,
if(history_high > In_up1000)//если цена бара в указанное время была выше уровня…
{
return(1);
}
}
}
}
}
// — /
//+------------------------------------------------------------------+
// функция считает время разрешения на торговлю.
int time_zona(int Cikl_in,int Start_time_in) //объявление в функции локальных параметров начала и конца зоны.
{
if((TimeHour(TimeCurrent()) > Cikl_in) && (TimeHour(TimeCurrent()) < (Start_time_in+Cikl_in)) ) //берем час от текущего времени и проверяем его на соответствие условию.
return(1); //если успех, вернем 1
return(5); //иначе 5.
}
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 26 ноября 2015, 15:35
+
+1
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 26 ноября 2015, 16:02
+
0
Файлик в тегах кода сделайте, а иначе кго не восстановишь в компиляторе.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 26 ноября 2015, 17:04
+
0
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 26 ноября 2015, 20:06
+
0
Experts 1.2.rar (10 Kb)

Поможет ли-)
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 26 ноября 2015, 20:07
+
0
Поможет ли-)

Больше поможет если сделаете как я просил в самом начале, скрины с подробным описанием.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 27 ноября 2015, 02:07
+
0
Здравствуйте, прилагаю скрин.

avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 09:31
+
0
Здравствуйте, h1 — уровень+ диапазон(5), уровень — цена округленная. т.е 1.06 или 1.07, если шаг 500 то 1.0650, 1.070, 10750, сетка строится на высоту 5000 п(5-уровней) в верх и в низ от тек цены. фракталы искать в пределах временных = d=57дней и ценовых h = 150п от тек цены.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 09:39
+
0
Скажем сейчас цена 1.0629.
Провести на 100 баров 5 линий вверх и 5 вниз с шагом 1000 это можно.
Как посчитать количество фракталов на каждом этаже, это еще думать нужно?
Сделку на пробой круглого уровня тоже можно сделать.
А фракталы для чего считать?
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 27 ноября 2015, 10:46
+
0
Здравствуйте, 1-задаем количество шагов от округленной цены. можно 1000 а можно и 500 а можно и 250!!!
Редактирован: 27 ноября 2015, 10:50
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 10:49
+
0
2. считать фракталы просто, смотрим в истории d = 57 дней на данном целевом уровне + — 150 п -это h1 фракталы.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 10:51
+
0
3. фракталы считаем для установления фильтра важности уровня!!! на рисунке в данных условиях действительных 2 уровня, от них цена должна отбится!!! сделки совершаем спаузой 1 день. механизм реализован ниже, там же и способ открытия.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 10:53
+
0
считать фракталы просто,


Пальцем на экране посчитать конечно просто! :D 
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 27 ноября 2015, 10:56
+
0
У вас сколько времени ушло чтобы сделать тот вариант который есть?
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 27 ноября 2015, 11:01
+
0
пя очень плохо с циклами… соображаю, поэтому долго недели 2. Спасибо что сделали функции, осталось в крутить в тело эти функии + сделать нужное количество этажей. Надеюсь в ближайшее время на меня найдет муза, я с марта не писал -)). Вы наверное уже все? Спасибо за помощь если так -)
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 13:58
+
0
Мне еще интересно сделать функцию, которая круглые уровни считает :) 
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 27 ноября 2015, 14:02
+
0
Так у меня есть же

avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 15:09
+
0
Мне свое надо.




//+------------------------------------------------------------------+
//|                                                   DayFractal.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

extern int Step=1000;
extern int BarsCount=100;
extern int LevelsCount=5;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FractalsOnLevel(double p1,double p2)
  {
   int k=0;
   double fup=0,fdn=0;
   for(int i=2; i<BarsCount; i++)
     {
      fup=iFractals(NULL,0,MODE_UPPER,i);
      if(fup!=0 && fup>p1 && fup<p2) k++;
      fdn=iFractals(NULL,0,MODE_LOWER,i);
      if(fdn!=0 && fdn>p1 && fdn<p2) k++;
     }
   return(k);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double UpLevels(int count,int step)
  {
   double level=0;
   level=NormalizeDouble(Close[0],2)+count*step*Point;
   return(level);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double DnLevels(int count,int step)
  {
   double level=0;
   level=NormalizeDouble(Close[0],2)-count*step*Point;
   return(level);
  }  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(string name,datetime time1,datetime time2,double price)
  {
   ObjectCreate(0,name,OBJ_TREND,0,time1,price,time2,price);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,true);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int kup=0,kdn=0;
   double fup=0,fdn=0;
   for(int i=2; i<BarsCount; i++)
     {
      fup=iFractals(NULL,0,MODE_UPPER,i);
      if(fup!=0) kup++;
      fdn=iFractals(NULL,0,MODE_LOWER,i);
      if(fdn!=0) kdn++;
     }

   for(int i=1; i<=LevelsCount; i++)
     {
      PutTrendLine("LineUP"+IntegerToString(i),Time[BarsCount],Time[0],UpLevels(i,1000));
      PutTrendLine("LineDN"+IntegerToString(i),Time[BarsCount],Time[0],DnLevels(i,1000));
     }

   Comment("\n Верхних фракталов: ",kup,
           "\n Нижних фракталов: ",kdn,
           "\n Всего фракталов: ",kdn+kup,
           "\n На первом этаже: ",FractalsOnLevel(1.06,1.1));
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 27 ноября 2015, 15:12
+
0
В чем конкретно у вас возникли затруднения? Набросал функции которые считают фракталы за указанное количество баров, отдельно верхние и нижние и все вместе по этажам.




//+------------------------------------------------------------------+
//|                                                   DayFractal.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

extern int Step=1000;
extern int BarsCount=100;
extern int LevelsCount=5;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FractalsOnLevel(double p1,double p2)
  {
   int k=0;
   double fup=0,fdn=0;
   for(int i=2; i<BarsCount; i++)
     {
      fup=iFractals(NULL,0,MODE_UPPER,i);
      if(fup!=0 && fup>p1 && fup<p2) k++;
      fdn=iFractals(NULL,0,MODE_LOWER,i);
      if(fdn!=0 && fdn>p1 && fdn<p2) k++;
     }
   return(k);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int kup=0,kdn=0;
   double fup=0,fdn=0;
   for(int i=2; i<BarsCount; i++)
     {
      fup=iFractals(NULL,0,MODE_UPPER,i);
      if(fup!=0) kup++;
      fdn=iFractals(NULL,0,MODE_LOWER,i);
      if(fdn!=0) kdn++;
     }

   Comment("\n Верхних фракталов: ",kup,
           "\n Нижних фракталов: ",kdn,
           "\n Всего фракталов: ",kdn+kup,
           "\n На первом этаже: ",FractalsOnLevel(1.06,1.1));
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 27 ноября 2015, 12:32
+
0
Добрый вечер, скажите пожалуйста у вас есть возможность доделать ботика, чтобы он хоть куда нить открывался по отбою от ключевых уровней
, описания переменных у вас с моим не сходится, к примеру FractalsOnLevel(1.06,1.1)); не понимаю почему жестко заданна цена, в моем примере берется текщая цена и согласно переменной на нужное расстояние строятся уровни! а тут получилось то они только с низу то с верху… Что за 1.1 вообще не понял, напишите коментарии логики, потому что я не вьезжаю… моя головушка совсем диградировала.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 17:35
+
0
напишите коментарии логики, потому что я не вьезжаю… моя головушка совсем диградировала.


чужой код потемки! :D 
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 27 ноября 2015, 17:38
+
0
Возможно хороший ботик выйдет! если уровни работают конечно…
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 20:24
+
0
блин, ну рас Вы столько времени потратили нужно же закончить как то, скажите будет итог или вы не будите делать…
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 20:21
+
0
что я могу сейчас сделать, ко ментов нет, логику я немного по другому расписал FractalsOnLevel(1.06,1.1)); по другому должно быть 1.6 браться от тек цены, округлятся как в моем примере. строить сетку не обязательно наверное, главное чтобы она виртуально была в логике.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 27 ноября 2015, 20:23
+
0
Опишите подробнее торговые условия.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 28 ноября 2015, 04:53
комментарий был удален 2015-11-30 18:31:54 ars2005tron

+
0
Вот советник, который проверяет количество баров на этаже сравнивает их и открывает позицию.


//+------------------------------------------------------------------+
//|                                                   DayFractal.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots      = 0.1;      // лот
extern int StopLoss     = 500;      // лось
extern int TakeProfit   = 500;      // язь
extern int Slip         = 30;       // реквот
extern int Step         = 1000;     // высота этажа
extern int BarsCount    = 100;      // баров для расчета
extern int LevelsCount  = 5;        // число этажей
extern int Magic        = 123;      // магик

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FractalsOnLevel(int type,double p1,double p2)
  {
   int k=0;
   double fup=0,fdn=0;
   for(int i=2; i<BarsCount; i++)
     {
      fup=iFractals(NULL,0,MODE_UPPER,i);
      if(fup!=0 && fup>p1 && fup<p2)
        {
         if(type==0 || type==1)
           {
            k++;
           }
        }
      fdn=iFractals(NULL,0,MODE_LOWER,i);
      if(fdn!=0 && fdn>p1 && fdn<p2)
        {
         if(type==0 || type==2)
           {
            k++;
           }
        }
     }
   return(k);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double UpLevels(int count,int step)
  {
   double level=0;
   level=NormalizeDouble(Close[0],2)+count*step*Point;
   return(level);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double DnLevels(int count,int step)
  {
   double level=0;
   level=NormalizeDouble(Close[0],2)-count*step*Point;
   return(level);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(string name,datetime time1,datetime time2,double price)
  {
   ObjectCreate(0,name,OBJ_TREND,0,time1,price,time2,price);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int    r=0;
   double sl=0,tp=0;
   int up=FractalsOnLevel(1,DnLevels(1,Step),UpLevels(0,Step));
   int dn=FractalsOnLevel(2,DnLevels(1,Step),UpLevels(0,Step));

   for(int i=0; i<=LevelsCount; i++)
     {
      PutTrendLine("LineUP"+IntegerToString(i),Time[BarsCount],Time[0],UpLevels(i,1000));
      PutTrendLine("LineDN"+IntegerToString(i),Time[BarsCount],Time[0],DnLevels(i,1000));
     }
   if(t!=Time[0])
     {
      if(CountTrades()<1)
        {
         //--- sell conditions
         if(up>dn)
           {
            if(StopLoss>0) sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
            if(TakeProfit>0) tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);
            r=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,sl,tp,"",Magic,0,Red);
            t=Time[0];
            return;
           }

         //--- buy conditions
         if(dn>up)
           {
            if(StopLoss>0) sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
            if(TakeProfit>0) tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);
            r=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,sl,tp,"",Magic,0,Blue);
            t=Time[0];
            return;
           }
        }
     }
//---
   Comment("\n Верхних фракталов: ",FractalsOnLevel(1,DnLevels(1,Step),UpLevels(0,Step)),
           "\n Нижних фракталов: ",FractalsOnLevel(2,DnLevels(1,Step),UpLevels(0,Step)),
           "\n Всего фракталов: ",FractalsOnLevel(0,DnLevels(1,Step),UpLevels(0,Step)),
           "\n Верхний уровень этажа: ",UpLevels(0,Step),
           "\n Нижний уровень этажа: ",DnLevels(1,Step));
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 30 ноября 2015, 13:31
+
0
Здравствуйте, к сожалению столько Ваших трудов, и времени пропали зря, то что получилось совершенно не соответствует задумке.
1) сделка должна открываться всегда от уровня! т. е цена открытия всегда будет целой 1.06, 1.07 итд +-5п, исключение если открытие по закрытию бара!
2) этажей нужно 2 так как 1 потолок, другой пол, и все. если на потолке достаточно ламп(фракталов) падаем со стула, если на полу достаточно гвоздей(фракталов) взлетаем к потолку.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 30 ноября 2015, 18:11
+
0
Завтра буду делать алгоритм ближе к ТЗ. сегодня просто добавил торговую функцию.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 30 ноября 2015, 18:13
комментарий был удален 2015-12-01 10:21:27 ars2005tron

+
0
а высота этажа не нужна, так как потолок = ближайшему целому уровню, так и пол. думаю так будет проще. потолок и пол, все. главное считать фракталы в заданном диапазоне. т.е в уровне. Скорее всего нужно кидать отложенный ордер на уровень, но тогда проблема с их удалением, когда они станут не актуальными.
Редактирован: 30 ноября 2015, 18:54
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 30 ноября 2015, 18:17
+
0
1) задаем квадрат поиска скопления фракталов возле уровня. Тек цена 1.05800 значит потолок будет 1.06 а пол 1.05. задаем количество баров в истории по которым будем искать фракталы= 57 дням.
2) задаем отступ (150п) в верх и в низ от пола и потолка в котором будет осуществятся поиск фракталов, границы поиска будут 1.05850 и 1.06150 потолок, 1.05150 1.04850 пол.
3)Определяем важность уровня, к примеру количество фракталов должно быть больше 10, допустим на потолке только что образовался 11 фрактал, значит при росте цены до уровня 1.06 будет открыт короткий ордер. Допустим цена пошла ниже, и прошла сквозь уровень 1.05, ордера не были открыты так как уровень 1.05 не действительный — на полу мало гвоздей <10, цена опускается еще ниже, за это время на уровне 1.05 который теперь является потолком, образовывается новый фрактал, общее количество ламп превышает 10, значит уровень 1.05 стал действительным, при касании цены данного уровня откроется короткая сделка, но цена идет выше и стоп лось срабатывает, на 1.0550. после чего цена преодолевает уровень 1.06, но ордер в низ не открывается, так как в задоаном промежутке времени нужного количество фракталов нет, т. е уровень уже не является важным, т.е на потолке теперь не хватает ламп. далее все повторяется по логике.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 30 ноября 2015, 18:31
+
0
extern double Lots = 0.1; // лот
extern int StopLoss = 500; // лось
extern int TakeProfit = 500; // язь
extern int Slip = 150; // реквот ОТСТУП!
extern int BarsCount = 100; // баров для расчета
extern int LevelsCount = 3; //1 — потолок, 2 — пол 3 — все в месте. сделки будут как в верх так и в низ. ОЧЕНЬ ВАЖНО!
extern int Magic = 123; // магик
extern int FRAKTALS_caunt = 10; // количество фракталов. для определения важности уровня.
extern int time_zona = 2 // растояние между ордерами, т.е раньше чем через 2 часа новый ордер не будет открыт, даже если поступит сигнал.
Редактирован: 30 ноября 2015, 19:02
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 30 ноября 2015, 18:39
+
0
// — / расчет ближайшего уровня в заданном диапазоне.
double Luft_up1000= NormalizeDouble(Ask,2)+Luft_prokol_b*Point; //округляем цену до 1й фигуры, расчет цены люфта выше уровеня.

double Luft_dw1000= NormalizeDouble(Ask,2)-Luft_prokol_b*Point; //расчет цены люфта ниже уровеня.


Редактирован: 1 декабря 2015, 16:23
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 30 ноября 2015, 18:46
+
0
Здравствуйте, к сожалению столько Ваших трудов, и времени пропали зря, то что получилось совершенно не соответствует задумке.


Действительно времени и сил потрачено немерено, а конца так и не видно. Обратитесь к платному.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 1 декабря 2015, 09:48
+
0
Спасибо.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 1 декабря 2015, 10:21
+
0
платно если только за бутыль, вина.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 1 декабря 2015, 10:23
+
0
Здравствуйте, Андрей я отблагодарю вас на новый год вином, конец очень даже виден! я максимально упростил логику, подробно ее сформировал и описал.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 1 декабря 2015, 13:29
+
0
Я не употребляю вообще с 2003 года :) 
То что можно быстро сделать делаю.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 1 декабря 2015, 13:56
+
0
яж деньгами рублей 700 на бутыль скину! а зачем не употребляете
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 1 декабря 2015, 16:17
+
0
яж деньгами на тел. рублей 700 скину! а зачем не употребляете
Главное логика бота полностью проработана, понятно вроде что нужно, и как оно должно работать.
Редактирован: 1 декабря 2015, 16:18
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 1 декабря 2015, 16:18
+
0
яж деньгами на тел. рублей 700 скину!

Я сейчас не делаю платно.

а зачем не употребляете

Я трезвый себя намного лучше чувствую и постепенно совсем отказался.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 1 декабря 2015, 17:03
+
0
А как же с креветками живого, пшеничного… эх…
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 1 декабря 2015, 17:35
+
0
так что, закрываем проект, или пока оставим… на не определенное время.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 1 декабря 2015, 18:00
+
0
Бывает возвращаюсь, если мне это интересно.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 1 декабря 2015, 19:26
+
0
Сейчас в советнике все есть. Строит уровни, входит на уровне, считает фракталы на потолке и в подвале. Условие на вход у меня простейшее: цена на отбой от уровня — т.е. цена подошла к уровню сверху — бай, снизу селл.
Вам остается только добавить свои условия.




//+------------------------------------------------------------------+
//|                                                   DayFractal.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots      = 0.1;      // лот
extern int StopLoss     = 500;      // лось
extern int TakeProfit   = 500;      // язь
extern int Slip         = 100;      // реквот
extern int Step         = 1000;     // высота этажа
extern int BarsCount    = 100;      // баров для расчета
extern int LevelsCount  = 3;        // число этажей
extern int Magic        = 123;      // магик

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FractalsOnLevel(int type,double p1,double p2)
  {
   int k=0;
   double fup=0,fdn=0;
   for(int i=2; i<BarsCount; i++)
     {
      fup=iFractals(NULL,0,MODE_UPPER,i);
      if(fup!=0 && fup>p1 && fup<p2)
        {
         if(type==0 || type==1)
           {
            k++;
           }
        }
      fdn=iFractals(NULL,0,MODE_LOWER,i);
      if(fdn!=0 && fdn<p1 && fdn>p2)
        {
         if(type==0 || type==2)
           {
            k++;
           }
        }
     }
   return(k);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double UpLevels(int count,int step)
  {
   double level=0;
   level=NormalizeDouble(Close[0],2)+count*step*Point;
   return(level);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double DnLevels(int count,int step)
  {
   double level=0;
   level=NormalizeDouble(Close[0],2)-count*step*Point;
   return(level);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(string name,datetime time1,datetime time2,double price)
  {
   ObjectDelete(name);
   ObjectCreate(0,name,OBJ_TREND,0,time1,price,time2,price);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int    r=0;
   double sl=0,tp=0,pr=0;
   int up=FractalsOnLevel(1,DnLevels(1,Step),UpLevels(0,Step));
   int dn=FractalsOnLevel(2,DnLevels(1,Step),UpLevels(0,Step));
   pr=NormalizeDouble(Close[0],2);
   
   for(int i=0; i<=LevelsCount; i++)
     {
      PutTrendLine("LineUP"+IntegerToString(i),Time[BarsCount],Time[0],UpLevels(i,Step));
      PutTrendLine("LineDN"+IntegerToString(i),Time[BarsCount],Time[0],DnLevels(i,Step));
     }

   if(CountTrades()<1)
     {
      //--- sell conditions
      if(Bid>=pr-Slip*Point && Bid<=pr+Slip*Point && Low[1]<pr)//цена на уровне
        {
         if(StopLoss>0) sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
         if(TakeProfit>0) tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);
         r=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,sl,tp,"",Magic,0,Red);
         t=Time[0];
         return;
        }

      //--- buy conditions
      if(Ask>=pr-Slip*Point && Ask<=pr+Slip*Point && High[1]>pr)//цена на уровне
        {
         if(StopLoss>0) sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
         if(TakeProfit>0) tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);
         r=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,sl,tp,"",Magic,0,Blue);
         t=Time[0];
         return;
        }
     }
//---
   Comment("\n Верхних фракталов на потолке: ",FractalsOnLevel(1,pr,pr+Step*Point),
           "\n Нижних фракталов в подвале: ",FractalsOnLevel(2,pr,pr-Step*Point),
           "\n Потолок: ",pr+Step*Point,
           "\n Пол: ",pr,
           "\n Подвал: ",pr-Step*Point);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 2 декабря 2015, 08:24
+
0
Добавил входы с учетом фракталов, но это ухудшило показатели системы.


//+------------------------------------------------------------------+
//|                                                   DayFractal.mq4 |
//|                                              Copyright 2015, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

//--- Inputs
extern double Lots      = 0.1;      // лот
extern int StopLoss     = 500;      // лось
extern int TakeProfit   = 500;      // язь
extern int Slip         = 100;      // реквот
extern int Step         = 1000;     // высота этажа
extern int FCount       = 5;        // количество фракталов
extern int BarsCount    = 100;      // баров для расчета
extern int LevelsCount  = 3;        // число этажей
extern int Magic        = 123;      // магик

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int FractalsOnLevel(int type,double p1,double p2)
  {
   int k=0;
   double fup=0,fdn=0;
   for(int i=2; i<BarsCount; i++)
     {
      fup=iFractals(NULL,0,MODE_UPPER,i);
      if(fup!=0 && fup>p1 && fup<p2)
        {
         if(type==0 || type==1)
           {
            k++;
           }
        }
      fdn=iFractals(NULL,0,MODE_LOWER,i);
      if(fdn!=0 && fdn<p1 && fdn>p2)
        {
         if(type==0 || type==2)
           {
            k++;
           }
        }
     }
   return(k);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double UpLevels(int count,int step)
  {
   double level=0;
   level=NormalizeDouble(Close[0],2)+count*step*Point;
   return(level);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double DnLevels(int count,int step)
  {
   double level=0;
   level=NormalizeDouble(Close[0],2)-count*step*Point;
   return(level);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(string name,datetime time1,datetime time2,double price)
  {
   ObjectDelete(name);
   ObjectCreate(0,name,OBJ_TREND,0,time1,price,time2,price);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,true);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades()
  {
   int count=0;
   for(int i=OrdersTotal()-1;i>=0;i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int    r=0;
   double sl=0,tp=0,pr=0;
   pr=NormalizeDouble(Close[0],2);
   int up=FractalsOnLevel(1,pr,pr+Step*Point);
   int dn=FractalsOnLevel(2,pr,pr-Step*Point);
   
   for(int i=0; i<=LevelsCount; i++)
     {
      PutTrendLine("LineUP"+IntegerToString(i),Time[BarsCount],Time[0],UpLevels(i,Step));
      PutTrendLine("LineDN"+IntegerToString(i),Time[BarsCount],Time[0],DnLevels(i,Step));
     }

   if(CountTrades()<1)
     {
      //--- sell conditions
      if(Bid>=pr-Slip*Point && Bid<=pr+Slip*Point)//цена на уровне
        {
         if(dn>FCount)//фракталов в подвале больше FCount
           {
            if(StopLoss>0) sl=NormalizeDouble(Bid+StopLoss*Point,Digits);
            if(TakeProfit>0) tp=NormalizeDouble(Bid-TakeProfit*Point,Digits);
            r=OrderSend(Symbol(),OP_SELL,Lots,NormalizeDouble(Bid,Digits),Slip,sl,tp,"",Magic,0,Red);
            t=Time[0];
            return;
           }
        }

      //--- buy conditions
      if(Ask>=pr-Slip*Point && Ask<=pr+Slip*Point)//цена на уровне
        {
         if(up>FCount)//фракталов в подвале больше FCount
           {
            if(StopLoss>0) sl=NormalizeDouble(Ask-StopLoss*Point,Digits);
            if(TakeProfit>0) tp=NormalizeDouble(Ask+TakeProfit*Point,Digits);
            r=OrderSend(Symbol(),OP_BUY,Lots,NormalizeDouble(Ask,Digits),Slip,sl,tp,"",Magic,0,Blue);
            t=Time[0];
            return;
           }
        }
     }
//---
   Comment("\n Верхних фракталов на потолке: ",up,
   "\n Нижних фракталов в подвале: ",dn,
   "\n Потолок: ",pr+Step*Point,
   "\n Пол: ",pr,
   "\n Подвал: ",pr-Step*Point);
  }
//+------------------------------------------------------------------+

avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 2 декабря 2015, 09:39
+
0
Здравствуйте, огромное вам спасибо, в ближайшее время в плотную займусь советником, отбой от уровня я реализовывал, фильтром у меня выступал временной период, когда можно торговать а когда нет, теперь я хочу проверить новый фильтр, скопление фракталов. Еще раз большое спасибо! скинте мне свой номер тел. Дед мороз сделает вам взнос -) на звонки и интернет!
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 2 декабря 2015, 19:14
+
0
а как прикрутить переменную времени, в моем боте у меня она была! как у вас реализуется данная вещь?
extern int time_zona = 2 // растояние между ордерами, т.е раньше чем через 2 часа новый ордер не будет открыт, даже если поступит сигнал.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 2 декабря 2015, 19:25
+
0
а как прикрутить переменную времени, в моем боте у меня она была! как у вас реализуется данная вещь?


Почему не добавите самостоятельно, если у вас все готово? Я уже 3 часа сижу с этой функцией!
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 3 декабря 2015, 10:21
+
0
Сегодня посмотрю что там со временем.
avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 3 декабря 2015, 07:39
+
0
Добавил время: www.opentraders.ru/downloads/952/

avatar

  35  AM2 Сообщений: 16285 - Андрей

  • 3 декабря 2015, 11:36
+
0
Еще раз, огромное спасибо! начал тестить советник, сразу бросилось в глаза:
1) extern int LevelsCount = 3; //1 — потолок, 2 — пол 3 — все в месте. сделки будут как в верх так и в низ. ОЧЕНЬ ВАЖНО!
-Не работает! т.е при увеличении рисует уровни, но как мы видим смысл уже в другом! нужен только пол и потолок! т. е при 1 должен нарисоваться только потолок, или пол, а при 3 и пол и потолок- значит сделки будут как в верх так и в низ! — в будущем мне это позволит разделить фракталы, верхние и нижние по логике торговли.

2)extern int Slip = 150; // реквот ОТСТУП!

-Не работает, либо имеется в виду что то другое! так на скрине ниже я установил реквот (канал поиска в уровне) 1 п, значит сделок вообще не должно было быть, так как нужного количества фракталов, с ценой + — 1п. от уровня просто нет! но тут сделки совершаются! значит реквот тут что то другое! хотелось бы узнать что? но самое важное, что я не смог реализовать — 'функция поиска фракталов на уровне в заданном диапазоне" реализовалась частично! я не погу указать диапазон! либо он не работает!
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 3 декабря 2015, 14:18
+
0
Еще раз, огромное спасибо! начал тестить советник, сразу бросилось в глаза:
1) extern int LevelsCount = 3; //1 — потолок, 2 — пол 3 — все в месте. сделки будут как в верх так и в низ. ОЧЕНЬ ВАЖНО!
-Не работает! т.е при увеличении рисует уровни, но как мы видим смысл уже в другом! нужен только пол и потолок! т. е при 1 должен нарисоваться только потолок, или пол, а при 3 и пол и потолок- значит сделки будут как в верх так и в низ! — в будущем мне это позволит разделить фракталы, верхние и нижние по логике торговли.

2)extern int Slip = 150; // реквот ОТСТУП!

-Не работает, либо имеется в виду что то другое!(Ниже написал что именно-). так на скрине ниже я установил реквот (канал поиска в уровне) 1 п, значит сделок вообще не должно было быть, так как нужного количества фракталов, с ценой + — 1п. от уровня просто нет! но тут сделки совершаются! реквот тут это кол пунктов при проскальзывании, а нужно самое важное, что я не смог реализовать — 'функция поиска фракталов на уровне в заданном диапазоне" В Вашем варианте реализация частична! я не могу указать диапазон (чувствительность поиска фракталов в уровне)!


Редактирован: 3 декабря 2015, 16:52
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 3 декабря 2015, 14:25
+
0
Но в целом нужно признать результаты подтверждаются, так в моей реализации, пришлось поменять логику на противоположную, уровни у меня не отталкивают, а пробивают цену! так получился прекрасный стабильный профит, в Вашем боте я уже вижу похожей сценарий! может после правильной реализации важности уровней ситуация изменится -))
Работы конечно много, но тестировать и подкручивать всегда приятно! чем Вам ломать голову над тем как такое чудо реализовать!
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 3 декабря 2015, 14:30
+
0
Slip — взглянул в коде, как оказалось это параметр проскальзывания при открытии ордера slippage.
я эту штуку вообще не думал когда свои ботики писал! я ее 3п. установил и забыл (OrderSend(Symbol(),OP_BUY, lots_o, Ask, 3,), каково мое удивление было при тесте, что она так сильно влияет на открытие ордеров!
Пока не нашел аналог моему «Luft_prokol» т.е отступ! как вы его реализовали?
я его делал примитивно…
double Luft_up1000= NormalizeDouble(Ask,2)+Luft_prokol_b*Point; //округляем цену до 1й фигуры, расчет цены люфта выше уровеня.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 3 декабря 2015, 16:49
+
0
Первые результаты тестирования, пока не перебирался Sl и TP. Сделка происходит примерно каждые 3-4 дня.

Редактирован: 3 декабря 2015, 20:01
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 3 декабря 2015, 19:57
+
+1
Лучший результат
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 4 декабря 2015, 00:23
+
+1
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 30 декабря 2015, 09:58
+
0
Итог: Оптимизация проводилась с 2000 по 2012год. в итоговом периоде с 2012 по 2016г закономерность сохранилась.
Фракталы показали четкую работоспособность (62%) или 1 к 9.4 просадка\прибыль.
Стоит отметить что, уровни сформированные фракталами, статистически чаще пробиваются, нежели от них цена отбивается.Так в предыдущем тесте, бот работал на отбой от уровня, но лучшие данные это 1 к 5.9 против пробойной тактики 1 к 9.4 просадка\прибыль.
Редактирован: 30 декабря 2015, 10:35
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 30 декабря 2015, 10:05
+
+1
А теперь все тоже самое, но с генерацией всех тиков…
Интересно результаты изменятся?
avatar

  13  Fargo Сообщений: 495

  • 30 декабря 2015, 14:47
+
0
так вы протестируйте, может что и изменится -) у меня истории нет, не бегает по тикам -)
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 30 декабря 2015, 16:53
+
+2
Вот прогон за 2015 год, EURUSD, H1.
Сов от ars2005tron.
Настройки дефолтные.
График


Отчет


Рациональное зерно вроде есть. Но нужно дорабатывать *think* 
avatar

  13  Fargo Сообщений: 495

  • 30 декабря 2015, 17:05
+
+1
Все тики показали примерно 490% прибыли за 16 лет, а это 30% годовых.

Редактирован: 3 января 2016, 08:57
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 3 января 2016, 08:51
+
0
Прогон бота по истории которая не была оптимизирована, показал подтверждение работоспособности бота -85% за 3 года, что составляет 28% годовых.
avatar

  19  ars2005tron Автор Сообщений: 1059 - Арсений

  • 3 января 2016, 09:04

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий