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

Рейтинг 2146



РЕКОМЕНДУЮ



Советник по квадрату из 9

Здравствуйте. Советник будет работать по торговой системе Ганна квадрат из 9.


1) Когда вершина выше предыдущей вершины а низина выше предыдущей и к этому времени уже еще и образовался нижний фрактал как на рисунке



Мы отнимаем High 1 — Low 1 если значение в пунктах равно точно 30 пунктов или точнее сказать 3 пункта без десятичной если не считать… Продолжаем… После High 1 — Low 2 ( это низина фрактала ) если значение равно в пунктах 60 или 6 пунктов точно все правильно.


2) После мы прибавляем к High 1 вот точно эти пункты c десятичной по 5 котировочном — 66, 100, 142, 192, 250, 316, 390, 472, 562, 660, 766, 880, 1002, 1132, 1270…

3) После выставляем по этим уровням селл лимиты


По мартингейлу 1 лот потом 2 лота и т.д. Вывести функцию в советник.

3) Если цена пошла вниз фрактала отменяем все ордера и ждем новый сигнал. Если появился еще один сигнал то по нем тоже выставляем селл лимиты.

4) Функции стоп лосс и тейк профит.

5) Программа по которым составлялся советник — Gannzilla.



Большое спасибо Андрей!!!
  • +1
  • Просмотров: 4828
  • 7 ноября 2019, 17:08
  • Mtyvnel
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
Программа по которым составлялся советник — Gannzilla.

т.е. у вас уже есть советник?
avatar

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

  • 7 ноября 2019, 18:03
+
0
Нет это ручная программа в которую нужно вводить числа и она выдает другие числа последовательность чисел. Андрей что бы протестировать эту программу я выбрал один пример из тысяч. Там как для других пунктов она выдает другие числа… www.youtube.com/watch?v=T6k-LqpiO6o 2 минутное видео.
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 7 ноября 2019, 18:09
+
0
на сколько ордеров делать советник?
avatar

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

  • 7 ноября 2019, 18:23
+
0
Андрей внизу без фрактала сделайте так он может и не откроет не одной сделки все условия что бы сошлись будет очень малая вероятность… Оставим только это одно условие… Мы отнимаем High 1 — Low 1 если значение в пунктах равно точно 30 пунктов или точнее сказать 3 пункта без десятичной если не считать… Продолжаем… После High 1 — Low 2 если значение равно в пунктах 60 или 6 пунктов точно все правильно.
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 7 ноября 2019, 19:29
+
0
В место фрактала отмена сигнала происходит когда цена пошла вниз Low 2 отменяем все ордера и ждем новый сигнал. Если появился еще один сигнал то по нем тоже выставляем селл лимиты.
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 7 ноября 2019, 19:49
+
0
На все выше перечисленные числа это 15 ордеров. Это минимум я выбрал она до ста и более уровней дает…
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 7 ноября 2019, 18:28
+
0
Интересненько.
avatar

  11  Sam34 Сообщений: 146 - Sem34

  • 7 ноября 2019, 19:14
+
0
на 14-е
avatar

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

  • 7 ноября 2019, 21:10
+
0
Большое спасибо :) 
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 7 ноября 2019, 21:14
+
0
Мы отнимаем High 1 — Low 1 если значение в пунктах равно точно 30 пунктов или точнее сказать 3 пункта без десятичной если не считать… Продолжаем… После High 1 — Low 2 ( это низина фрактала ) если значение равно в пунктах 60 или 6 пунктов точно все правильно.


сделал набросок с этим условием. ни одной сделки.


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

//--- Inputs
extern double Lots       = 0.1;       // лот
extern double KLot       = 2;         // умножение лота
extern double MaxLot     = 5;         // максимальный лот
extern int StopLoss      = 111;       // лось
extern int TakeProfit    = 222;       // язь
extern int Delta         = 30;        // дельта
extern int Sigma         = 60;        // сигма
extern int Slip          = 30;        // реквот
extern int Magic         = 123;       // магик

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderProfit()<0)
            lot=OrderLots()*KLot;
        }
     }

   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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()<2)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<1)
     {
      if(High[1]-Low[1]==Delta*_Point && High[1]-Low[2]==Sigma*_Point)
        {
         PutOrder(0,Ask);
        }
     }
  }
//+------------------------------------------------------------------+

avatar

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

  • 11 ноября 2019, 20:03
+
0
Большое спасибо вам Андрей. И у меня не одной сделки.
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 11 ноября 2019, 20:17
+
0
Я не понимаю а почему советник открывает так странно ордера? Он еще не до конца сделан да Андрей? Сделайте его до конца если получиться. Я вчера добавил вот это к советнику Дельта 2 и Сигма 2 )) Это мой первый советник за 2 часа я понял суть программирования ))))) Я читал на MQL 4 справочник )))

if(High[1]-Low[1]>Delta*_Point && High[1]-Low[2]>Sigma*_Point)
{
if(High[1]-Low[1]<Delta2*_Point && High[1]-Low[2]<Sigma2*_Point)

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

//--- Inputs
extern double Lots       = 0.1;       // лот
extern double KLot       = 2;         // умножение лота
extern double MaxLot     = 5;         // максимальный лот
extern int StopLoss      = 111;       // лось
extern int TakeProfit    = 222;       // язь
extern int Delta         = 30;        // дельта
extern int Sigma         = 60;        // сигма
extern int Slip          = 30;        // реквот
extern int Magic         = 123;       // магик              
extern int Delta2       = 90;
extern int Sigma2        = 180;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void PutOrder(int type,double price)
  {
   int r=0;
   color clr=Green;
   double sl=0,tp=0;

   if(type==1 || type==3 || type==5)
     {
      clr=Red;
      if(StopLoss>0)
         sl=NormalizeDouble(price+StopLoss*Point,Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price-TakeProfit*Point,Digits);
     }

   if(type==0 || type==2 || type==4)
     {
      clr=Blue;
      if(StopLoss>0)
         sl=NormalizeDouble(price-StopLoss*Point,Digits);
      if(TakeProfit>0)
         tp=NormalizeDouble(price+TakeProfit*Point,Digits);
     }

   r=OrderSend(NULL,type,Lot(),NormalizeDouble(price,Digits),Slip,sl,tp,"",Magic,0,clr);
   return;
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double Lot()
  {
   double lot=Lots;

   if(OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))
     {
      if(OrderSymbol()==Symbol() && OrderMagicNumber()==Magic)
        {
         if(OrderProfit()<0)
            lot=OrderLots()*KLot;
        }
     }

   if(lot>MaxLot)
      lot=Lots;
   return(lot);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
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()<2)
               count++;
           }
        }
     }
   return(count);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(CountTrades()<1)
     {
      if(High[1]-Low[1]>Delta*_Point && High[1]-Low[2]>Sigma*_Point)
        {
         if(High[1]-Low[1]<Delta2*_Point && High[1]-Low[2]<Sigma2*_Point)
        {
         PutOrder(0,Ask);
       }
        }
     }
  }
//+------------------------------------------------------------------+
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 12 ноября 2019, 02:20
+
0
Проверил с одной дельтой 120 и сигмой 240, работает после выстрела цены на М5 Ну и трал добавил
avatar

  12  Slava78 Сообщений: 598

  • 12 ноября 2019, 19:34
+
0
Сделайте его до конца если получиться


нужно менять вот это условие чтобы что то получилось


if(High[1]-Low[1]>Delta*_Point && High[1]-Low[2]>Sigma*_Point)
avatar

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

  • 12 ноября 2019, 17:32
+
0
Поменяем это условие на другое… При образовании фрактала верхнего от его вершины отнимаем определение пункты… Например 300 Потом 400 и т.д И ставит ордера с мартингейлом. Ставим Селл Лимиты. Сигнал отменяется при пересечении верхнего фрактала. Пусть при образовании другого фрактала тоже ставит Селл Лимит. На одном баре пусть открывает только один сигнал. Если будет работать потом добавим и Бай Лиммиты. Потом Андрей я сам что-то если получиться добавить добавлю буду изучать ваш код! )
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 12 ноября 2019, 20:54
+
0
avatar

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

  • 13 ноября 2019, 22:02
+
0
Выглядит очень красиво :)  Спасибо!
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 13 ноября 2019, 22:22
+
0
Все работает как надо кроме одного… Советник не ставит ордера как я описал с мартингейлом… Первый лот 0.1 отложка второй лот 0.2 отложка 3 лот 0.4 и так до 15 лота… Колено и лот задаем с настроек… Для каждого сигнала надо начинать все заново. Это надо только исправить. А так все супер! Большое вам спасибо!
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 13 ноября 2019, 22:58
+
+1
лот с мартином: www.opentraders.ru/downloads/2482/

avatar

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

  • 14 ноября 2019, 22:17
+
0
Супер! Спасибо :) 
avatar

  6  Mtyvnel Автор Сообщений: 138

  • 14 ноября 2019, 23:49
+
0
советник сам ставить сделки?
avatar

  0  serega99924 Сообщений: 1

  • 21 ноября 2019, 00:29

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