andre71g
andre71g

 
Уровень 11

  Торгую в компаниях:


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

Рейтинг 2151



РЕКОМЕНДУЮ



2 свечи(апгрейд)

Потестировал на истории и нашёл некоторые недоделки в ТС — а для этого и нужны автоматизированные программы.
Прошу доработать этот советник: zakaz.opentraders.ru/53886.html

Итак:
Размеры тел свечей 1 и 2 нужно считать от уровня закрытия предыдущей свечи до уровня закрытия измеряемой. То есть тело свечи 1 будет равно расстоянию от уровня закрытия свечи 0 до уровня закрытия свечи 1
тело свечи 2 = расстояние от уровня закрытия свечи 1 до уровня закрытия свечи 2.
Этим самым мы исправляем влияние гэпов на размеры свеч, так как торговля предполагается на дневном ТФ.

В настройках всё же нужны «суперлось» и «супертейк». Они будут прибавляться или отниматься(при отрицательных значениях в настройках) от нынешних, что по умолчанию(язь=тело1+тело2, лось=хай/лоу свечи1+спред).
Так как суммы тел свеч 1 и 2 будут разные, то значения суперлося и суперязя в настройках прошу сделать в % от значений по умолчанию.
Например, в настройках «суперлось» и суперязь" равны 0. Значит, стоплосс и тейкпрофит выставляются как сейчас.
Другой вариант: «суперлось» = 10, «суперязь» = -20
В этом случае стоплосс увеличивается на 10%, а тейкпрофит уменьшается на 20%.
Вот и все изменения и дополнения.
  • 0
  • Просмотров: 3013
  • 1 мая 2020, 09:15
  • andre71g
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
просьба скинуть все тз целиком, чтобы было перед глазами
avatar

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

  • 1 мая 2020, 13:20
+
0
Ордер селл открывается, если 2 свечи подряд(1 и 2) медвежьи, хай свечи 1 больше хая предыдущей свечи (свеча 0), размер тел свечей 1 и 2 не меньше указанного в настройках и сумма тел свечей 1 и 2 не меньше указанной в настройках.
Для ордеров бай — всё зеркально.
Тейк встроен в код и равен сумме тел свечей 1 и 2.
Стоп встроен в код и ставится за хаем/лоем свечи 1.

Доработка:

Размеры тел свечей 1 и 2 нужно считать от уровня закрытия предыдущей свечи до уровня закрытия измеряемой. То есть тело свечи 1 будет равно расстоянию от уровня закрытия свечи 0 до уровня закрытия свечи 1
тело свечи 2 = расстояние от уровня закрытия свечи 1 до уровня закрытия свечи 2.
Этим самым мы исправляем влияние гэпов на размеры свеч, так как торговля предполагается на дневном ТФ.

В настройках всё же нужны стоп и тейк: «суперлось» и «супертейк». Они будут увеличивать или уменьшать (при отрицательных значениях в настройках) нынешние стоп и тейк, встроенные в код(язь=тело1+тело2, лось=хай/лоу свечи1+спред).
Так как суммы тел свечей 1 и 2 будут часто сильно отличаться у разных ордеров, то значения «суперлося» и «суперязя» в настройках прошу сделать в % от встроенных.
Например, в настройках «суперлось» и суперязь" равны 0. Значит, стоплосс и тейкпрофит рассчитываются как сейчас.
Другой вариант: «суперлось» = 10, «суперязь» = -20
В этом случае стоплосс увеличивается на 10%, а тейкпрофит уменьшается на 20%.
Редактирован: 1 мая 2020, 15:20
avatar

  11  andre71g Автор Сообщений: 168 - andre71g

  • 1 мая 2020, 15:18
+
0
на 8-е
avatar

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

  • 1 мая 2020, 15:41
+
0
Размеры тел свечей 1 и 2 нужно считать от уровня закрытия предыдущей свечи до уровня закрытия измеряемой. То есть тело свечи 1 будет равно расстоянию от уровня закрытия свечи 0 до уровня закрытия свечи 1
тело свечи 2 = расстояние от уровня закрытия свечи 1 до уровня закрытия свечи 2.


на скринах все покажите
avatar

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

  • 3 мая 2020, 11:22
+
0

avatar

  11  andre71g Автор Сообщений: 168 - andre71g

  • 4 мая 2020, 07:33
+
0
Ордер селл открывается, если 2 свечи подряд(1 и 2) медвежьи, хай свечи 1 больше хая предыдущей свечи (свеча 0), размер тел свечей 1 и 2 не меньше указанного в настройках и сумма тел свечей 1 и 2 не меньше указанной в настройках.

Для ордеров бай — всё зеркально.
Тейк встроен в код и равен сумме тел свечей 1 и 2.
Стоп встроен в код и ставится за хаем/лоем свечи 1.

Доработка:

Размеры тел свечей 1 и 2 нужно считать от уровня закрытия предыдущей свечи до уровня закрытия измеряемой. То есть тело свечи 1 будет равно расстоянию от уровня закрытия свечи 0 до уровня закрытия свечи 1

тело свечи 2 = расстояние от уровня закрытия свечи 1 до уровня закрытия свечи 2.
Этим самым мы исправляем влияние гэпов на размеры свеч, так как торговля предполагается на дневном ТФ.

В настройках всё же нужны стоп и тейк: «суперлось» и «супертейк». Они будут увеличивать или уменьшать (при отрицательных значениях в настройках) нынешние стоп и тейк, встроенные в код(язь=тело1+тело2, лось=хай/лоу свечи1+спред).

Так как суммы тел свечей 1 и 2 будут часто сильно отличаться у разных ордеров, то значения «суперлося» и «суперязя» в настройках прошу сделать в % от встроенных.

Например, в настройках «суперлось» и суперязь" равны 0. Значит, стоплосс и тейкпрофит рассчитываются как сейчас.

Другой вариант: «суперлось» = 10, «суперязь» = -20
В этом случае стоплосс увеличивается на 10%, а тейкпрофит уменьшается на 20%.





avatar

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

  • 5 мая 2020, 09:19
+
0
напрасно настолько усложнили. теперь в вычислениях черт ногу сломит:



www.opentraders.ru/downloads/2616/
avatar

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

  • 6 мая 2020, 20:55
+
0
Почему-то робот у некоторых ордеров правильно выставляет стоп и тейк(скриншот 2), а у других — как раньше(скриншот 1). Прогон один, в настройках суперлось = 50, суперязь = -50.

avatar

  11  andre71g Автор Сообщений: 168 - andre71g

  • 6 мая 2020, 22:03
+
0
см. коммент выше
avatar

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

  • 6 мая 2020, 22:43
+
0
Можно было тогда проще сделать — у вас же есть в коде формулы для тейка и стопа — взять их в скобки и умножить на значения в настройках «суперлось» и «супертейк». Чтобы уменьшить, ставим значение меньше 1, чтобы увеличить — больше 1. Тогда ± убираются и проценты. Например в настройках суперлось = 1.2, суперязь = 0.5. Тогда тейк =(тело 1 + тело 2)х0.5, стоп = (расстояние от цены до хая/лоя свечи 1)х 1.2.
avatar

  11  andre71g Автор Сообщений: 168 - andre71g

  • 6 мая 2020, 22:53
+
0
поправлю сегодня
avatar

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

  • 7 мая 2020, 17:33
+
0
avatar

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

  • 7 мая 2020, 22:16
+
0
К сожалению робот то правильно выставляет стоп и тейк, то по старому — стоп на хае/лое, тейк сумма двух тел, не обращая внимания на значения суперлося и суперязя в настройках. Вот например, при суперлось= 100 и суперязь= -50, слева 2 сделки правильно увеличил стоп и уменьшил тейк, а справа 2 сделки не обратил внимания, что это нужно сделать. Это происходит и на баевых, и на селовых сделках.


Посмотрел в код своим дилетенским взглядом, понял вроде, что свечи, которые я на скринах называл 0,1,2, вы называете 1,2,3. Может тут путаница произошла? Но почему то правильно, то нет, вот это интересно.
Редактирован: 9 мая 2020, 08:53
avatar

  11  andre71g Автор Сообщений: 168 - andre71g

  • 9 мая 2020, 08:52
комментарий был удален 2020-05-09 08:53:02 andre71g

+
0
Посмотрел в код своим дилетенским взглядом, понял вроде, что свечи, которые я на скринах называл 0,1,2, вы называете 1,2,3. Может тут путаница произошла?


это вы так называете, а для машины нумерация от последней
avatar

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

  • 9 мая 2020, 09:22
+
0
Вот например, при суперлось= 100 и суперязь= -50, слева 2 сделки правильно увеличил стоп и уменьшил тейк, а справа 2 сделки не обратил внимания, что это нужно сделать. Это происходит и на баевых, и на селовых сделках.


так не может быть там уменьшил здесь нет. советник действует четко по заданному алгоритму. проверьте возможно у вас осталась предыдущая версия.

вот еще обновленный код:


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

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double KLot       = 1;        // умножение лота
extern double MaxLot     = 5;        // максимальный лот
extern int StopLoss      = 100;      // супер лось
extern int TakeProfit    = -50;      // супер язь
extern int Delta         = 100;      // тело свечи 1-й свечи
extern int Sigma         = 200;      // тела 2-х свечей
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

datetime t=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//| Подсчет ордеров по типу                                          |
//+------------------------------------------------------------------+
int CountOrders(int type=-1)
  {
   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()==type || type==-1)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   for(int i=OrdersHistoryTotal()-1; i>=0; i--)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
        {
         if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
           {
            if(OrderProfit()>0)
               break;
            if(OrderProfit()<0)
              {
               lot=OrderLots()*KLot;
               break;
              }
           }
        }
     }
   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   int r=0;

   if(t!=Time[0])
     {
      double sl=0;
      double tp=MathAbs(Close[1]-Open[2])+(MathAbs(Close[1]-Open[2])*TakeProfit*0.01);

      if(Low[2]<Low[3] && Close[1]-Close[2]>Delta*_Point && Close[2]-Close[3]>Delta*_Point && Close[1]-Close[3]>Sigma*_Point)
        {
         sl=(Close[1]-Low[2])+(Close[1]-Low[2])*StopLoss*0.01;
         r=OrderSend(NULL,0,Lot(),NormalizeDouble(Ask,_Digits),Slip,NormalizeDouble(Ask-sl,_Digits),NormalizeDouble(Bid+tp,_Digits),"",Magic,0,Blue);
        }
      if(High[2]>High[3] && Close[2]-Close[1]>Delta*_Point && Close[3]-Close[2]>Delta*_Point && Close[3]-Close[1]>Sigma*_Point)
        {
         sl=(High[2]-Close[1])+(High[2]-Close[1])*StopLoss*0.01;
         r=OrderSend(NULL,1,Lot(),NormalizeDouble(Bid,_Digits),Slip,NormalizeDouble(Bid+sl,_Digits),NormalizeDouble(Ask-tp,_Digits),"",Magic,0,Red);
        }
      t=Time[0];
     }
  }
//+------------------------------------------------------------------+

avatar

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

  • 9 мая 2020, 10:02
+
0
А ведь точно! Название одинаково, я копировал с заменой mq4, а ex4 остался старый в терминале :) 
Большое спасибо! Всё работает правильно.
Теперь осталось подобрать фильтр, чтобы сделки не открывались в конце-середине тренда, может что-то типа машки, и(или) чтобы свеча 1 была фракталом и т.п.Это надо на истории потестить.
avatar

  11  andre71g Автор Сообщений: 168 - andre71g

  • 9 мая 2020, 11:16

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