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

Рейтинг 2146



РЕКОМЕНДУЮ



Smart Money EA

Здравствуйте, ребята. Нужен советник по системе Смарт Мани Майкла Хаддлстона. Советник на МТ 5, сложный, многомодульный, поэтому за несколько топиков. На данный топик нужен поручитель! Буду благодарен за поручительство!

1 функция — определяем глобальный тренд на дневном графике. В хэндл подгружаем индикатор Зиг Заг, настройки ЗигЗага выводим в настройки советника.

Считаем 5 последних минимумов и максимумов. Если последний минимум выше 1, 4 и 5 минимума — тренд растет и функция отправляет 0. Если последний максимум ниже 1, 4 и 5 максимума, то тренд падает и тогда функция отправляет 1.

Если максимумы понижаются — функция отправляет 1, тренд падает. В нашем примере тренд идет на вырост:


2 функция. Определяем премиум и дискаунт зоны. Подгружаем второй хэндл второго ЗигЗага, его настройки также в настройках. Второй ЗигЗаг на часовом графике. На последнее движение ЗигЗага 2 натягиваем сетку Фибо, деление только одно — 50. Если первая функция отправила 0, то рассматриваем только покупки в зоне дисконта, от 50 и ниже. Если первая функция отправила 1, рассматриваем только продажи в зоне премии, 50 и выше.



Советник первого топика открывает сделки выше/ниже зоны премии и дисконта, в соответствии с главной функцией. Открытие покупок ниже уровня 50, закрытие на уровне 100, открытие продаж выше уровня 50 — закрытие на уровне 0.

Более профессиональные ТВХ из системы Смарт Мани будут в следующих топиках на доработку данного советника.

Поручитель, найдись)
  • 0
  • Просмотров: 1971
  • 23 марта 2023, 07:46
  • Shtenco
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Я буду поручителем. В ручной торговле по системе какой примерно винрейт? Просадка?
avatar

  6  Ramboo Сообщений: 92 - Ram

  • 23 марта 2023, 08:14
+
0
Нет у вас такого права *lalala* 
avatar

  18  Boris54 Сообщений: 810 - ПенSионер

  • 23 марта 2023, 09:24
+
0
)))
avatar

  6  Ramboo Сообщений: 92 - Ram

  • 23 марта 2023, 10:02
+
0
Как только в личном кабинете увидите Параметр: Уровень3 — так можете громко кричать.
avatar

  18  Boris54 Сообщений: 810 - ПенSионер

  • 23 марта 2023, 10:07
+
0
нужен уровень 3?
avatar

  6  Ramboo Сообщений: 92 - Ram

  • 23 марта 2023, 12:41
+
0
да, для поручительства нужен
avatar

  45  Bishop Сообщений: 5802 - АЛЬФАХАМЕЦ-Машковод

  • 23 марта 2023, 16:04
+
0
Кто такой поручитель?
avatar

  9  cehfy Сообщений: 204 - Сергей

  • 23 марта 2023, 10:12
+
+1
Правила для заказов и про поручительство тут project.opentraders.ru/20424.html
avatar

  18  Boris54 Сообщений: 810 - ПенSионер

  • 23 марта 2023, 13:08
+
+1
Закодил сам систему… Не на всех парах работает к сожалению, на некоторых прямо Грааль и на реальных тиках, а на некоторых сливной(Нужно вшивать вход по имбалансу или ордер блоку, чтобы точно входил....
avatar

  9  Shtenco Автор Сообщений: 238

  • 23 марта 2023, 10:48
+
0
Дык это не страшно, что не на всех. Ликвидности и одной пары хватит, чтобы ярды поднять :)  Лишь бы работал и не страдал от переобучения
avatar

  45  Bishop Сообщений: 5802 - АЛЬФАХАМЕЦ-Машковод

  • 23 марта 2023, 16:04
+
0
Буду поручителем.
avatar

  10  mihhail777 Сообщений: 159 - Михаил

  • 23 марта 2023, 12:48
+
0
Не получается опубликовать код, выдает что не хватает символов(
avatar

  9  Shtenco Автор Сообщений: 238

  • 23 марта 2023, 22:22
+
0
двумя частями или тремя
avatar

  22  ruslan71 Сообщений: 988 - Руслан

  • 24 марта 2023, 13:55
+
0
также можете выложить в файлообменник как вариант
avatar

  22  ruslan71 Сообщений: 988 - Руслан

  • 26 марта 2023, 13:48
+
0
Не получается именно в этом топике код опубликовать. Пишет что текст комментария должен быть больше 2 знаков. Хотя он и так больше. А в других топиках коды публикует…
avatar

  9  Shtenco Автор Сообщений: 238

  • 25 марта 2023, 14:37
+
0
Опубликуйте в другом топике. А тут напишите ссылку на публикацию.
Ну или закачать в «файлы».
Редактирован: 25 марта 2023, 16:10
avatar

  18  Boris54 Сообщений: 810 - ПенSионер

  • 25 марта 2023, 16:09
+
0
Код без тэга кода, просто как комментарий, тоже не публикует… Что за ерунда…
avatar

  9  Shtenco Автор Сообщений: 238

  • 25 марта 2023, 14:37
+
0
avatar

  9  Shtenco Автор Сообщений: 238

  • 25 марта 2023, 14:38
+
0
Вам же пишут: от 2 до 3000 символов!!!
Вы пытаетесь запостить больше 3000 знаков.
Разбейте код советника на 2-5 сообщений. По 2-3 функции советника в каждом сообщении. Кому надо потом соберет советник сам в один код.
avatar

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

  • 25 марта 2023, 16:53
+
0
1 часть:

//+------------------------------------------------------------------+
//|                                                   SMARTMONEY.mq5 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"

#include <Trade\Trade.mqh>             // Подключаем торговый класс CTrade
input double Lots      = 0.1;  // лот
input double KLot      = 2;    // увеличение лота
input double MaxLot    = 5;    // максимальный лот
input int    StopLoss  = 0;    // стоплосс
input int    TakeProfit= 0;    // тейкпрофит
input int    CloseSig  = 1;    // 1-закрытие по сигналу
input int    Slip      = 100;  // проскальзывание
input int days=5;
input bool fibo=0;
input color rect=Aqua;
CTrade trade;                // Используем торговый класс CTrade
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

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

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void DelObject(string name)
  {
   for(int i=ObjectsTotal(0,0); i>=0; i--)
     {
      string s=ObjectName(0,i);
      if(StringFind(s,name)>=0)
         ObjectDelete(0,ObjectName(0,i));
     }
  }
//+------------------------------------------------------------------+
//| Создание объекта FIBO                                            |
//+------------------------------------------------------------------+
void PutFibo(string name,datetime t1,double p1,datetime t2,double p2)
  {
   ObjectDelete(0,name);
//--- создадим "Уровни Фибоначчи" по заданным координатам
   ObjectCreate(0,name,OBJ_FIBO,0,t1,p1,t2,p2);
//--- установим цвет
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,0);
//--- включим (true) или отключим (false) режим перемещения линии мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutTrendLine(string name,datetime time1,double price1,datetime time2,double price2,color clr)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_TREND,0,time1,price1,time2,price2);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим стиль отображения линии
   ObjectSetInteger(0,name,OBJPROP_STYLE,0);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,0);
//--- включим (true) или отключим (false) режим перемещения линии мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutRect(string name,datetime t1,double p1,datetime t2,double p2)
  {
   ObjectDelete(0,name);
//--- создадим прямоугольник по заданным координатам
   ObjectCreate(0,name,OBJ_RECTANGLE,0,t1,p1,t2,p2);
//--- установим цвет прямоугольника
   ObjectSetInteger(0,name,OBJPROP_COLOR,rect);
//--- установим стиль линий прямоугольника
   ObjectSetInteger(0,name,OBJPROP_STYLE,0);
//--- установим толщину линий прямоугольника
   ObjectSetInteger(0,name,OBJPROP_WIDTH,3);
//--- включим (true) или отключим (false) режим заливки прямоугольника
   ObjectSetInteger(0,name,OBJPROP_FILL,1);
//--- отобразим на переднем (false) или заднем (true) плане
   ObjectSetInteger(0,name,OBJPROP_BACK,false);
//--- включим (true) или отключим (false) режим продолжения отображения линии вправо
   ObjectSetInteger(0,name,OBJPROP_RAY_RIGHT,false);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,0);
//--- включим (true) или отключим (false) режим перемещения линии мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,1);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lots=Lots;
   if(PositionsTotal()>0)
      lots=NormalizeDouble(Lots*MathPow(KLot,PositionsTotal()),2);
   return(lots);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CloseAll(int type=-1)
  {
   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelectByTicket(PositionGetTicket(i)))
        {
         if(PositionGetInteger(POSITION_TYPE)==type || type==-1)
           {
            trade.PositionClose(PositionGetTicket(i));
           }
        }
     }
  }
avatar

  9  Shtenco Автор Сообщений: 238

  • 27 марта 2023, 15:24
+
0
2 часть:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int CountTrades(int type=-1)
  {
   int count=0;

   for(int i=PositionsTotal()-1; i>=0; i--)
     {
      if(PositionSelectByTicket(PositionGetTicket(i)))
        {
        if(PositionGetString(POSITION_SYMBOL)==_Symbol)
        if(PositionGetInteger(POSITION_TYPE)==type || type==-1)
           {
            count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
  //---
   double p11=iLow(NULL,PERIOD_D1,1);
   double p22=iLow(NULL,PERIOD_D1,2);
   double p33=iLow(NULL,PERIOD_D1,3);
   double p1=iHigh(NULL,PERIOD_D1,1);
   double p2=iHigh(NULL,PERIOD_D1,2);
   double p3=iHigh(NULL,PERIOD_D1,3);
   int i=0; i<=days;
   
      double p382=0,p444=0,p618=0;
      double dn=iLow(NULL,PERIOD_D1,i+1);
      double up=iHigh(NULL,PERIOD_D1,i+1);
      datetime t1=iTime(NULL,PERIOD_D1,i-1);
      datetime t2=iTime(NULL,PERIOD_D1,i);
      if(CountTrades()<1)
      if(i==0)
        {
         t1=iTime(NULL,PERIOD_D1,0);
         t2=t1+24*3600;
        }

      p382=NormalizeDouble(up-((up-dn)*0.40),_Digits);
      p444=NormalizeDouble(up-((up-dn)*0.50),_Digits);
      p618=NormalizeDouble(up-((up-dn)*0.60),_Digits);

      if(fibo)
         PutFibo("FiboDay"+" fibo "+(string)i,t1,up,t2,dn);

      PutTrendLine("FiboDay"+" dn "+(string)i,t1,dn,t2,dn,Red);
      PutTrendLine("FiboDay"+" up "+(string)i,t1,up,t2,up,Blue);

      PutRect("FiboDay"+" rect "+(string)i,t1,p382,t2,p618);
   
   double sl=0,tp=0;
   double Ask=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
   double Bid=SymbolInfoDouble(_Symbol,SYMBOL_BID);
   double BImbalance=iLow(NULL,PERIOD_D1,0)-iHigh(NULL,PERIOD_D1,2);
   double SImbalance=iHigh(NULL,PERIOD_D1,0)-iLow(NULL,PERIOD_D1,2);
   bool buy=Ask<p444 && p11>p22 && p22>p33 && (iHigh(_Symbol,PERIOD_D1,1)>iHigh(_Symbol,PERIOD_D1,2) && iLow(_Symbol,PERIOD_D1,1)>iLow(_Symbol,PERIOD_D1,2) && iClose(_Symbol,PERIOD_D1,1)>iClose(_Symbol,PERIOD_D1,2));
   bool sell=Bid>p444 && p1<p2 && p2<p3 && (iLow(_Symbol,PERIOD_D1,1)<iLow(_Symbol,PERIOD_D1,2) && iLow(_Symbol,PERIOD_D1,1)<iLow(_Symbol,PERIOD_D1,2) && iClose(_Symbol,PERIOD_D1,1)<iClose(_Symbol,PERIOD_D1,2));
   bool buyClose=Ask>p618 && Ask>p382;
   bool sellClose=Bid<p382 && Ask<p618;
   if(CloseSig>0)
     {
      if(sellClose)
         CloseAll(1);
      if(buyClose)
         CloseAll(0);
     }

   if(PositionsTotal()<1)
     {
      if(buy)
        {
         if(StopLoss>0)
            sl=NormalizeDouble(Bid-StopLoss*_Point,_Digits);
         if(TakeProfit>0)
            tp=NormalizeDouble(Bid+TakeProfit*_Point,_Digits);
         trade.PositionOpen(_Symbol,0,Lot(),Ask,sl,tp);
        }

      if(sell)
        {
         if(StopLoss>0)
            sl=NormalizeDouble(Ask+StopLoss*_Point,_Digits);
         if(TakeProfit>0)
            tp=NormalizeDouble(Ask-TakeProfit*_Point,_Digits);
         trade.PositionOpen(_Symbol,1,Lot(),Bid,sl,tp);
        }
     }

   Comment("\n p1: ",p1,
           "\n p2: ",p2,
           "\n 38.2: ",p2+(p1-p2)*0.382,
           "\n 50.0: ",p2+(p1-p2)*0.5,
           "\n 61.8: ",p2+(p1-p2)*0.618);
  }
//+------------------------------------------------------------------+
avatar

  9  Shtenco Автор Сообщений: 238

  • 27 марта 2023, 15:25
+
0
Андрей, сможете ли вы вшить к имеющимся условиям отправку отложенного ордера по последнему значимому ордер блоку?:) 
avatar

  9  Shtenco Автор Сообщений: 238

  • 27 марта 2023, 15:26
+
0
Приветствую. Что значит ЗНАЧИМЫЙ ордер?
avatar

  7  kvashnin007 Сообщений: 598 - Андрей

  • 27 марта 2023, 17:36
+
0
Не ордер, а ордер блок, это паттерн в Смарт Мани такой)
avatar

  9  Shtenco Автор Сообщений: 238

  • 28 марта 2023, 14:04
+
0
Понятно. А кто определяет ордер-блоки и, тем более, их значимость?
avatar

  7  kvashnin007 Сообщений: 598 - Андрей

  • 29 марта 2023, 00:36
+
0
тот же кто и определяет значимость индикаторов*hi* 
avatar

  22  ruslan71 Сообщений: 988 - Руслан

  • 29 марта 2023, 12:06
+
0
Руслан, привет. Ерунда это всё. Моё мнение. Не навязываю.
avatar

  7  kvashnin007 Сообщений: 598 - Андрей

  • 30 марта 2023, 21:08
+
0
Функцию нужно писать)И она непростая)
avatar

  9  Shtenco Автор Сообщений: 238

  • 29 марта 2023, 12:24
+
0
Привет Андрей ордер блоки отрабатываются так же с определенной долей вероятности, был какой то год что они не работали, все относительно
avatar

  22  ruslan71 Сообщений: 988 - Руслан

  • 31 марта 2023, 10:12
+
0
Руслан, привет. отработка любого события фифти фифти. Свершилось или нет. Хотя, если задать временной параметр, то я бы сказал, что есть три равновероятностных события. Цена отбилась от полосы, пробила полосу или осталась в полосе. с учетом относительно малых стопов и большим потенциалом получения прибыли, можно строить стратегию.

Есть и другие вспомогательные алгоритмы. Но это отдельная тема. Здесь её частично затронул Шаман, со своим ЗаеБотом. Но не развил её.

Сегодняшний уровень ИИ в трейдинге, что предлагается здесь, не способен тягаться с алгоритмом, предложенным умным человеком. Так что мой вывод: изучать надо, но пока рано на него рассчитывать.
Не навязываю.
Редактирован: 31 марта 2023, 20:23
avatar

  7  kvashnin007 Сообщений: 598 - Андрей

  • 31 марта 2023, 20:20
+
0
Ну уж точно не для моих познаний.
avatar

  7  kvashnin007 Сообщений: 598 - Андрей

  • 30 марта 2023, 21:09

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