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

Рейтинг 2089



РЕКОМЕНДУЮ



Советник на основе MA Chanels FIBO

Доброго времени суток!
Просьба автоматизировать мою стратегию(из граалей), основанной на одном единственном индикаторе MA Chanels FIBO.
Алгоритм следующий.Смотрим на скриншот. При пробитии ценой уровня 61.8, выставляется стоповый ордер по заданным параметрам. Далее возможны два сценария. Если цена пошла в нашу сторону, стоповый ордер активируется и закрывается по заданному тейк профиту. Цикл завершен. Второй сценарий, цена пошла против нас. Смотрим скриншот. Через заданный шаг выставляется еще один стоповый ордер по ранее заданным параметрам. И т.д., до тех пор, пока цена не развернется в нашу сторону. Именно так у меня случилось в ручном режиме на GBPAUD H4 ( на скриншоте). Цена гуляла вверх-вниз, открывая стоповые ордера и закрывая их. Цикл завершится тогда, когда закроется по заданному тейк профиту самый ранний стоповый ордер. А пока данный инструмент остается в работе, продолжая собирать профит.
MA Chanels FIBO.mq4 (5 Kb)

В параметрах советника прописываются параметры индикатора MA Chanels FIBO(по умолчанию), величина ордера, тейк профит ордера, шаг между стоповыми ордерами. Цена закрытия у каждого стопового ордера будет своя(согласно заданным параметрам). Если остались непонятки, спрашивайте.
  • +2
  • Просмотров: 1949
  • 1 марта 2023, 03:10
  • marattmb
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
на 7-е
avatar

  34  AM2 Сообщений: 15895 - Андрей

  • 1 марта 2023, 18:43
+
0
Хорошо.
avatar

  11  marattmb Автор Сообщений: 704

  • 1 марта 2023, 18:44
+
+1
интересно. такого я еще не делал: www.opentraders.ru/downloads/3535/


Редактирован: 1 марта 2023, 21:50
avatar

  34  AM2 Сообщений: 15895 - Андрей

  • 1 марта 2023, 21:25
+
0
Только у Вас на скриншоте sell stop там, где должны быть buy stop. А buy stop там, где должны быть sell stop. Правильно, когда цена пробивает 61.8 вверху(снизу вверх), выставляется sell stop. И наоборот, когда цена пробивает 61.8 внизу, выставляется buy stop.
Редактирован: 2 марта 2023, 01:52
avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 01:17
комментарий был удален 2023-03-02 01:39:21 marattmb

+
0
Поменяйте направление выставления стоповых ордеров, и будет правильно. У меня же на скриншоте показано.
avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 01:41
+
0
Поменяйте направление выставления стоповых ордеров, и будет правильно. У меня же на скриншоте показано.


посмотрите внимательно в реалтайм. все прописано правильно
avatar

  34  AM2 Сообщений: 15895 - Андрей

  • 2 марта 2023, 18:06
+
0
Интересно
avatar

  17  Boris54 Сообщений: 762 - ПенSионер

  • 2 марта 2023, 15:56
+
0
Ну еще бы. Не каждый день граали выкладываю.
avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 15:58
+
0
Советник работает неправильно, не по алгоритму в тз.
avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 18:12
+
0
норм советник сделки открывает, как вы просили
avatar

  11  njdftgh Сообщений: 216 - Shoom

  • 2 марта 2023, 19:41
+
0
В тестере открыл с опозданием и в не ту сторону (скриншот 1).На реале не открыл, хотя условия соблюдены (скриншот 2)



Это нормально?
avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 20:27
+
0
Вот так нужно.

avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 20:38
+
0
На реале все-таки открыл, но очень сильно с опозданием. Открыл правильно. Но почему такие косяки в тестере. И ничего нельзя сделать, чтобы открывал
вовремя?
avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 21:02
+
0
В настройках есть пункт- расстояние от цены. Может быть из за него.
avatar

  11  njdftgh Сообщений: 216 - Shoom

  • 2 марта 2023, 21:42
+
0
И ничего нельзя сделать, чтобы открывал
вовремя?


вовремя это как? у меня стоит поза на открытии свечи
avatar

  34  AM2 Сообщений: 15895 - Андрей

  • 2 марта 2023, 22:20
+
0
avatar

  11  njdftgh Сообщений: 216 - Shoom

  • 2 марта 2023, 21:04
+
0
Но у меня, фактически, через несколько свечей.
avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 23:57
+
0
Ладно. Все-равно спасибо за труд!
avatar

  11  marattmb Автор Сообщений: 704

  • 2 марта 2023, 23:59
+
0
Разобрался с параметрами. Теперь все хорошо.
Респект за советник!!!
avatar

  11  marattmb Автор Сообщений: 704

  • 3 марта 2023, 06:17
+
0
а умножение лота если указать в настройки сов. когда начинает работать я так и не понял?
avatar

  8  Najj Сообщений: 102

  • 3 марта 2023, 10:22
+
0
Смотрите на демо-счете, но не в тестере.
avatar

  11  marattmb Автор Сообщений: 704

  • 3 марта 2023, 10:24
+
0
Сегодня в первый раз советник допустил ляп. На одном инструменте открылся правильно. На другом нет. Андрей, в чем может быть причина? Параметры советника одинаковы на обоих инструментах.

avatar

  11  marattmb Автор Сообщений: 704

  • 6 марта 2023, 13:15
+
0
avatar

  11  marattmb Автор Сообщений: 704

  • 6 марта 2023, 13:16
+
0
На NZDCHF советник косячит. Сегодня второй раз стоповый ордер выставил в не ту сторону.
avatar

  11  marattmb Автор Сообщений: 704

  • 6 марта 2023, 16:49
+
0
советник косячи


советник открывает четко по сигналу. в индикаторе буферы могут меняться местами
avatar

  34  AM2 Сообщений: 15895 - Андрей

  • 6 марта 2023, 17:49
+
0
Открывает то, открывает. Но почему на NZDCHF не в ту сторону.
avatar

  11  marattmb Автор Сообщений: 704

  • 6 марта 2023, 17:53
+
0
Перестал работать параметр «Умножение лота». В параметр прописывал 2, по факту получается 1, т.е, все последующие ордера такие-же, как и первый ордер. Хотя изначально работал правильно.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 01:02
+
0
Почему может возникать такого рода техническая проблема? Это ж программа, она и через 10 лет должна работать по заданному алгоритму.
avatar

  17  Boris54 Сообщений: 762 - ПенSионер

  • 7 марта 2023, 01:31
+
0
Я не программист. Ответить не могу. По-видимому, проблема в индикаторе. Но это мое предположение.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 01:33
+
0
Попробуйте убрать из индикатора все неиспользуемые буферы. Оставьте только 2.
Например так:

//+------------------------------------------------------------------+
//|                                          MA Chanels FIBO min.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|                                                   MA Chanels.mq4 |
//|                                                           °njel° |
//|                                                     iamnotlinked |
//+------------------------------------------------------------------+
//http://zakaz.opentraders.ru/105580.html#comment166875
#property copyright "°njel°"
#property link      "iamnotlinked"

#property indicator_chart_window
#property indicator_buffers 2

#property indicator_color1 Red
#property indicator_color8 Red
//---- input parameters
extern int     BarsCount = 500;
extern int     MAPeriod=100;
extern int     MAMethod=MODE_SMA;
extern int     MAPrice=PRICE_CLOSE;
extern int     fontsize=10;
double  max =0;
double  min =0;


double    Inc2 = 0.0000;
double    Inc3 = 0.0000;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer8[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"61.8%");
   SetIndexStyle(7,DRAW_LINE);
   SetIndexBuffer(7,ExtMapBuffer8);
   SetIndexLabel(7,"61.8%");   
   ObjectCreate("l1", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l1", "61.8%",fontsize,"Arial",Red);
   ObjectCreate("l8", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l8", "61.8%",fontsize,"Arial",Red);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   max =0;
   min =0;
   ObjectDelete("l1");
   ObjectDelete("l8");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   

   max =0;
   min =0;
   
   
   if (iBars(NULL,0) < BarsCount)
      BarsCount = iBars(NULL,0) -MAPeriod-1 ;
      
   for (int i =BarsCount; i>=0; i--)
   {
   
      double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i);
      double top = High[i] - m;      
      if (top > max)
         max = top;
      
      double bottom = Low[i] - m;      
      if (bottom < min)
         min = bottom;
      
   }
   
   if (MathAbs(max) >  MathAbs(min))
      Inc3 = max;
   else
      Inc3 = min;
       
      Inc2 = Inc3*0.618;
   

   for (i =BarsCount; i>=0; i--)
   {
      ExtMapBuffer1[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + Inc2;
      ExtMapBuffer8[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - Inc2;
   }
   ObjectMove("l1", 0, Time[0],ExtMapBuffer1[0]);
   ObjectMove("l8", 0, Time[0],ExtMapBuffer8[0]);
   return(0);
}
//+------------------------------------------------------------------+
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 06:30
+
0
Номера буферов не менял. Поэтому нужно только заменить название индикатора в советнике:

//extern string IndName    = "MA Chanels FIBO";
extern string IndName    = "MA Chanels FIBO min";
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 06:32
+
0
Проверьте. Если и сейчас будут ошибки, то наверное надо немного переделать индикатор. Хотя можно упростить и добавить расчет уровней выставления стоп ордеров в советник.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 06:36
+
0
В советнике у Андрея все прописано строго по ТЗ.

 double up=iCustom(NULL,0,IndName,BarCount,MAPeriod,0,Shift);
   double dn=iCustom(NULL,0,IndName,BarCount,MAPeriod,7,Shift);

   bool buy = Close[Shift]<dn && Open[Shift]>dn;
   bool sell = Close[Shift]>up && Open[Shift]<up;
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 06:43
+
0
К сожалению, я не прогер. Для меня это темный лес. Я только создаю граали. Может быть Андрей попробует?
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 06:38
+
0
Попробуйте скачать сокращенный индикатор, который я выложил. И замените название индикатора в советнике. Пример я привёл. Больше ничего менять не нужно в советнике. Только после проверки можно будет говорить о доработке.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 06:50
+
0
Не вижу сокращенный индикатор.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 06:57
+
0
Код индикатора открытый выше.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 08:31
+
0
Повторяю:

//+------------------------------------------------------------------+
//|                                          MA Chanels FIBO min.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|                                                   MA Chanels.mq4 |
//|                                                           °njel° |
//|                                                     iamnotlinked |
//+------------------------------------------------------------------+
//http://zakaz.opentraders.ru/105580.html#comment166875
#property copyright "°njel°"
#property link      "iamnotlinked"

#property indicator_chart_window
#property indicator_buffers 2

#property indicator_color1 Red
#property indicator_color8 Red
//---- input parameters
extern int     BarsCount = 500;
extern int     MAPeriod=100;
extern int     MAMethod=MODE_SMA;
extern int     MAPrice=PRICE_CLOSE;
extern int     fontsize=10;
double  max =0;
double  min =0;


double    Inc2 = 0.0000;
double    Inc3 = 0.0000;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer8[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"61.8%");
   SetIndexStyle(7,DRAW_LINE);
   SetIndexBuffer(7,ExtMapBuffer8);
   SetIndexLabel(7,"61.8%");   
   ObjectCreate("l1", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l1", "61.8%",fontsize,"Arial",Red);
   ObjectCreate("l8", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l8", "61.8%",fontsize,"Arial",Red);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   max =0;
   min =0;
   ObjectDelete("l1");
   ObjectDelete("l8");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   

   max =0;
   min =0;
   
   
   if (iBars(NULL,0) < BarsCount)
      BarsCount = iBars(NULL,0) -MAPeriod-1 ;
      
   for (int i =BarsCount; i>=0; i--)
   {
   
      double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i);
      double top = High[i] - m;      
      if (top > max)
         max = top;
      
      double bottom = Low[i] - m;      
      if (bottom < min)
         min = bottom;
      
   }
   
   if (MathAbs(max) >  MathAbs(min))
      Inc3 = max;
   else
      Inc3 = min;
       
      Inc2 = Inc3*0.618;
   

   for (i =BarsCount; i>=0; i--)
   {
      ExtMapBuffer1[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + Inc2;
      ExtMapBuffer8[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - Inc2;
   }
   ObjectMove("l1", 0, Time[0],ExtMapBuffer1[0]);
   ObjectMove("l8", 0, Time[0],ExtMapBuffer8[0]);
   return(0);
}
//+------------------------------------------------------------------+
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 08:32
+
0
Может быть имелось ввиду, изменить название индикатора( на какое Вы указали) и прописать его в советнике?
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 07:07
+
0
Сделал. Продолжаю наблюдать.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 07:17
+
0
Идея была в том, что бы в советнике использовать именно измененный (сокращенный) индикатор.
Если не затруднит поделитесь выводами при использовании этого, сокращенного, индикатора.
Может быть будет смысл строить канал с фибо = 0.618 для байстоп ордеров изпользуя только

double top = High[i] - m; 


и селстоп ордеров используя только

  double bottom = Low[i] - m;  

сейчас берется большее значение по модулю между ними:

 if (MathAbs(max) >  MathAbs(min))
      Inc3 = max;
   else
      Inc3 = min;
       
      Inc2 = Inc3*0.618;
   

avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 08:41
+
0
Попробуйте такой вариант сокращенного индикатора. Теперь для верхней линии расчёт только по максимальным ценам бара, а для нижней только по минимальным ценам бара.
Можно просто сделать так в уже существующем сокращенном варианте индикатора
MA Chanels FIBO min.mq4

 for (i =BarsCount; i>=0; i--)
   {
      ExtMapBuffer1[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + max*0.618;
      ExtMapBuffer8[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - min*0.618;
      
   //   ExtMapBuffer1[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + Inc2;
   //   ExtMapBuffer8[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - Inc2;
   }

А можете заменить весь код сокращенного индикатора.

//+------------------------------------------------------------------+
//|                                          MA Chanels FIBO min.mq4 |
//|                        Copyright 2014, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//|                                                   MA Chanels.mq4 |
//|                                                           °njel° |
//|                                                     iamnotlinked |
//+------------------------------------------------------------------+
//http://zakaz.opentraders.ru/105580.html#comment166875
#property copyright "°njel°"
#property link      "iamnotlinked"

#property indicator_chart_window
#property indicator_buffers 2

#property indicator_color1 Red
#property indicator_color8 Red
//---- input parameters
extern int     BarsCount = 500;
extern int     MAPeriod=100;
extern int     MAMethod=MODE_SMA;
extern int     MAPrice=PRICE_CLOSE;
extern int     fontsize=10;
double  max =0;
double  min =0;


double    Inc2 = 0.0000;
double    Inc3 = 0.0000;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer8[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"61.8%");
   SetIndexStyle(7,DRAW_LINE);
   SetIndexBuffer(7,ExtMapBuffer8);
   SetIndexLabel(7,"61.8%");   
   ObjectCreate("l1", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l1", "61.8%",fontsize,"Arial",Red);
   ObjectCreate("l8", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l8", "61.8%",fontsize,"Arial",Red);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   max =0;
   min =0;
   ObjectDelete("l1");
   ObjectDelete("l8");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   

   max =0;
   min =0;
   
   
   if (iBars(NULL,0) < BarsCount)
      BarsCount = iBars(NULL,0) -MAPeriod-1 ;
      
   for (int i =BarsCount; i>=0; i--)
   {
   
      double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i);
      double top = High[i] - m;      
      if (top > max)
         max = top;
      
      double bottom = Low[i] - m;      
      if (bottom < min)
         min = bottom;
      
   }
   
   if (MathAbs(max) >  MathAbs(min))
      Inc3 = max;
   else
      Inc3 = min;
       
      Inc2 = Inc3*0.618;
   

   for (i =BarsCount; i>=0; i--)
   {
      ExtMapBuffer1[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + max*0.618;
      ExtMapBuffer8[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - min*0.618;
      
   //   ExtMapBuffer1[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + Inc2;
   //   ExtMapBuffer8[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - Inc2;
   }
   ObjectMove("l1", 0, Time[0],ExtMapBuffer1[0]);
   ObjectMove("l8", 0, Time[0],ExtMapBuffer8[0]);
   return(0);
}
//+------------------------------------------------------------------+

В советнике ничего менять не надо в названии индикатора.
Отпешитесь по итогам тестипрвания в тестере.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 11:19
+
0
И еще вопрос. Сбой только на конкретной паре или может быть на любой паре?
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 11:21
+
0
Только на NZDCHF. На других правильно открывал. Кроме того, перестал работать параметр «Умножение лота".
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 11:24
+
0
А у Андрея и не прописаны условия изменения лота. Он задан жёстко:

extern double Lots       = 0.1;      // лот


И дальше по коду в функции выставления ордеров:
r=OrderSend(NULL,type,Lots,NormalizeDouble(price,_Digits),Slip,sl,tp,Comm,Magic,0,clr);
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 11:39
+
0
Мне проще исключить эту пару из торговли.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 11:26
+
0
Вы попробовали использовать на этой паре последний вариант сокращённого индикатора. Если да, то какой результат?
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 11:41
+
0
У Андрея всё по ТЗ:

 //берем значение верхней границы индикатора, +фибо = 0.618
   double up=iCustom(NULL,0,IndName,BarCount,MAPeriod,0,Shift);
   
  //берем значение нижней границы индикатора, -фибо = 0.618 
   double dn=iCustom(NULL,0,IndName,BarCount,MAPeriod,7,Shift);

   // выставить стоповый ордер на покупку если бар открылся выше нижней границы индикатора, а закрылся ниже её.
   bool buy = Open[Shift]>dn && Close[Shift]<dn;
   
    // выставить стоповый ордер на продажу если бар открылся ниже верхней границы индикатора, а закрылся выше её.
   bool sell = Open[Shift]<up && Close[Shift]>up;

avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 11:34
+
0
Важен результат. А нужного результата по тех.заданию нет.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 11:41
+
0
Так всё таки Вы попробовали использовать на этой паре последний вариант сокращённого индикатора.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 11:45
+
0
Перечитал ТЗ там не увидел пожелания по изменению размера лота.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 11:49
+
0
Согласен. Но тем не менее, в параметрах советника есть коэффициент увеличения лота, и самое главное, он работал.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 11:59
+
0
Последний вариант ничего не изменил.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 12:00
+
0
Код советника именно стоящего на паре зеландец/франк покажите. Сдается мне Вы что то путаете. Может у Вас есть два советника с похожими названиями и вы что то перепутали?
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:09
+
0
Прогоните в тестере советник на другой любой паре с сокращенным индикатором.
Мне самому стало интересна истина в этом вопросе. Если на самом деле ошиблись с советником, то просто вместе посмеёмся. Если нет, то ....?
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:12
+
0
Он не мог работать!!! По определению!!! Закомментируйте эту строку:

//extern double KLot       = 2;        // умножение лота
и эту

//extern double MaxLot     = 5;        // максимальный лот

и редактор не покажет ошибки.
Может Вы немного запутались с советниками? Покажите код советника который торговал на зеландец/франк.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:04
+
0
И покажите код советника где шло увеличение лота. Андрей просто скопировал набор настроек из другого советника или это у него из шаблона и не удалил.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:07
+
0
Этот советник и торговал, что написал Андрей. Поставьте его на М5-15, и сами убедитесь.
У меня есть аналог индикатора, MA_Chanels_FIBO_Pepelac. Там возможно менять уровни FIBO. Может имеет смысл заменить индикатор. Но это уже в следующем месяце. Если только не улучшу алгоритм, что вполне возможно.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 12:11
+
0
Вот ваш пепелац. Меняйте фибо здесь. В советнике название индикатора менять не нужно. Вывел возможность изменения уровней в настройки.

//+------------------------------------------------------------------+
//|                                              MA Chanels FIBO.mq4 |
//|                                                           °njel° |
//|                                                     iamnotlinked |
//+------------------------------------------------------------------+
//http://zakaz.opentraders.ru/105580.html#comment166875
#property copyright "°njel°"
#property link      "iamnotlinked"

#property indicator_chart_window
#property indicator_buffers 8

#property indicator_color1 Red
#property indicator_color2 Orange
#property indicator_color3 Yellow
#property indicator_color4 White
#property indicator_color5 White
#property indicator_color6 Yellow
#property indicator_color7 Orange
#property indicator_color8 Red
//---- input parameters
extern int     BarsCount = 500;
extern int     MAPeriod=100;
extern int     MAMethod=MODE_SMA;
extern int     MAPrice=PRICE_CLOSE;
extern int     fontsize=10;
//----Уровни фибо
extern double K236 = 0.236;
extern double K382 = 0.382;
extern double K5 = 0.5;
extern double K618 = 0.618;
//------------------------------
double  max =0;
double  min =0;

double    Inc0 = 0.0000;
double    Inc1 = 0.0000;
double    Inc2 = 0.0000;
double    Inc3 = 0.0000;
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
double ExtMapBuffer4[];
double ExtMapBuffer5[];
double ExtMapBuffer6[];
double ExtMapBuffer7[];
double ExtMapBuffer8[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexLabel(0,"61.8%");
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexLabel(1,"50%");   
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);
   SetIndexLabel(2,"38.2%");   
   SetIndexStyle(3,DRAW_LINE);
   SetIndexBuffer(3,ExtMapBuffer4);
   SetIndexLabel(3,"23.5%");   
   SetIndexStyle(4,DRAW_LINE);
   SetIndexBuffer(4,ExtMapBuffer5);
   SetIndexLabel(4,"23.5%");      
   SetIndexStyle(5,DRAW_LINE);
   SetIndexBuffer(5,ExtMapBuffer6);
   SetIndexLabel(5,"38.2%");      
   SetIndexStyle(6,DRAW_LINE);
   SetIndexBuffer(6,ExtMapBuffer7);
   SetIndexLabel(6,"50%");   
   SetIndexStyle(7,DRAW_LINE);
   SetIndexBuffer(7,ExtMapBuffer8);
   SetIndexLabel(7,"61.8%");   
   ObjectCreate("l1", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l1", "61.8%",fontsize,"Arial",Red);
   ObjectCreate("l2", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l2", "50%",fontsize,"Arial",Red);
   ObjectCreate("l3", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l3", "38.2%",fontsize,"Arial",Red);
   ObjectCreate("l4", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l4", "23.5%",fontsize,"Arial",Red);
   ObjectCreate("l5", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l5", "23.5%",fontsize,"Arial",Red);
   ObjectCreate("l6", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l6", "38.2%",fontsize,"Arial",Red);
   ObjectCreate("l7", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l7", "50%",fontsize,"Arial",Red);
   ObjectCreate("l8", OBJ_TEXT, 0, 0, 0);
   ObjectSetText("l8", "61.8%",fontsize,"Arial",Red);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
   max =0;
   min =0;
   ObjectDelete("l1");
   ObjectDelete("l2");
   ObjectDelete("l3");
   ObjectDelete("l4");
   ObjectDelete("l5");
   ObjectDelete("l6");
   ObjectDelete("l7");
   ObjectDelete("l8");
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
   max =0;
   min =0;
     
   if (iBars(NULL,0) < BarsCount)
      BarsCount = iBars(NULL,0) -MAPeriod-1 ;
      
   for (int i =BarsCount; i>=0; i--)
   {
   
      double m = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i);
      double top = High[i] - m;      
      if (top > max)
         max = top;
      
      double bottom = Low[i] - m;      
      if (bottom < min)
         min = bottom;
      
   }
   
   if (MathAbs(max) >  MathAbs(min))
      Inc3 = max;
   else
      Inc3 = min;
      /*
      Inc2 = Inc3*0.618;
      Inc1 = Inc3*0.5;
      Inc0 = Inc3*0.236;
      Inc3 = Inc3*0.382;
      */
      Inc2 = Inc3*K618;
      Inc1 = Inc3*K5;
      Inc0 = Inc3*K236;
      Inc3 = Inc3*K382;

   for (i =BarsCount; i>=0; i--)
   {
      ExtMapBuffer1[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + Inc2;
      ExtMapBuffer2[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + Inc1;
      ExtMapBuffer3[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + Inc3;
      ExtMapBuffer4[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) + Inc0;
      ExtMapBuffer5[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - Inc0;
      ExtMapBuffer6[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - Inc3;
      ExtMapBuffer7[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - Inc1;
      ExtMapBuffer8[i] = iMA(NULL,0,MAPeriod,0,MAMethod,MAPrice,i) - Inc2;
   }
   ObjectMove("l1", 0, Time[0],ExtMapBuffer1[0]);
   ObjectMove("l2", 0, Time[0],ExtMapBuffer2[0]);
   ObjectMove("l3", 0, Time[0],ExtMapBuffer3[0]);
   ObjectMove("l4", 0, Time[0],ExtMapBuffer4[0]);
   ObjectMove("l5", 0, Time[0],ExtMapBuffer5[0]);
   ObjectMove("l6", 0, Time[0],ExtMapBuffer6[0]);
   ObjectMove("l7", 0, Time[0],ExtMapBuffer7[0]);
   ObjectMove("l8", 0, Time[0],ExtMapBuffer8[0]);
   return(0);
}
//+------------------------------------------------------------------+
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:24
+
0
Вот в тестере советник косячит со всеми инструментами. А на реальном графике только NZDCHF(на других инструментах не замечал). Нонсенс, но это так. Видимо, дело в индикаторе.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 12:16
+
0
Марат, в тестере тот советник который Вы прогоняли лоты менял или нет. Посмотрите в журнале. Ну не может советник Андрея менять лоты!
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:26
+
0
Менял или нет в тестере, не помню. Менял на реальном графике, когда я его в первый раз запустил. Потом перестал менять. Но Вы ведь можете у себя запустить его в тестере и увидите тоже самое, что я видел. В тестере я смотрел советник на GBPUSD.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 12:32
+
0
Вообще, правильным считается обращение к паре или парам прямо из настроек. Я это уже рассказывал и показывал как это делается одному форумчанину недавно.
У него кстати тоже были проблемы. Один советник и на разных парах с разными магиками ставился. И на какой то паре тоже был глюк.
Кстати проверьте какие магики. Может на зеландце магик дублируется с другой пары?
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:37
+
0
Менял или нет, для меня не суть важно. Важно правильное выставление стоповых ордеров в нужном направлении. Проще убрать инструмент, на котором советник косячит.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 12:37
+
0
В первый раз, когда советник косячил, магики были действительно одинаковые(я не посчитал нужным в конкретном случае изменить). Но потом я на всех инструментах, где стоял советник поменял магики. Они везде стали разными. И опять NZDCHF косячил.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 12:41
+
0
посмотрите ветку zakaz.opentraders.ru/104706.html

Советник на пробой линии
Редактирован: 7 марта 2023, 12:42
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:41
+
0
Посмотрел, идею понял. Буду проверять на демо и дорабатывать под себя.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 12:47
+
0
Андрей пишет советники шаблонно, для проверки наших стратегий и хотелок. Для реала конечно же нужны другие советники с кучей проверок на самые разные случаи которые могут произойти в торговом терминале или у брокера. В своих советниках для реала я их прописываю. Ну а для проверки идеи и тестера такое оформление, как у Андрея, вполне достаточно. Если стратегия хорошая и заказчик собрался торговать на реальном счёте, тогда он заказывает новую работающую версию за деньги.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 12:50
+
0
Справедливости ради, вручную у меня всегда получается лучше, чем у советника. Хотя работаем по одинаковому алгоритму. Просто, когда несколько счетов, и реальные и демо для проверки стратегий, руками не успеть.
avatar

  11  marattmb Автор Сообщений: 704

  • 7 марта 2023, 12:55
+
0
У советника нет нечеткой логики. Только или -«Да», или -«Нет»! А у человека есть или- «Да», или -«Нет», или -«ИЛИ». «Вот сейчас подожду новостей и если сигнал останется тогда.....». Хотя у маркетмейкеров и у банкиров наверняка стоят советники с ИИ. Куча торговых инстремтов (валюты, акции, фьючерсы и тд и тп), почти мгновенное изменение цены, гэпы, человеку точно не успеть.
avatar

  16  ssg Сообщений: 817

  • 7 марта 2023, 13:19
+
0
Кстати, последние ордера на NZDCHF открылись правильно, в нужном направлении. Возможно это связано с последними изменениями, которые были внесены и в индикатор, и в советник. Если это так, то проблема решена. Продолжаю наблюдать.
avatar

  11  marattmb Автор Сообщений: 704

  • 8 марта 2023, 04:48
+
0
Т.е. в советнике, как предложено, идёт прямое обращение к торгуемой паре?
avatar

  16  ssg Сообщений: 817

  • 8 марта 2023, 05:23
+
0
Может быть. Я только сейчас увидел правильное открытие на данном инструменте. Советник стоит на максимуме инструментов и на нескольких таймфреймах. Нужно еще контролировать другие счета, где торгую вручную. Не успеваю. Нужно наблюдать дальше.
avatar

  11  marattmb Автор Сообщений: 704

  • 8 марта 2023, 05:28
+
0
Если не затруднит, держите в курсе.*hi* 
Конечно, по хорошему, надо добавить в советник во всех функциях проверку на символ и магик.
avatar

  16  ssg Сообщений: 817

  • 8 марта 2023, 08:35

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