vypchela

 
Уровень 12

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


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

Рейтинг 2146



РЕКОМЕНДУЮ




Лучшее от vypchela



Советник по Фибоначчи Комментариев 8
2020-11-10 16:12:30Рейтинг 0

Советник для МТ5 Комментариев 17
2022-10-22 17:34:39Рейтинг 0

Советник на индикаторе SuperTrend

Здравствуйте Андрей, если возможно прошу внедрить (перенести) код индикатора SuperTrend в код вашего советника http://mql.opentraders.ru/33943.html. Индикатор можно взять здесь http://zakaz.opentraders.ru/54805.html
Условия:
Покупка/Продажа при изменении цвета, остальные настройки советника оставить те же.
За ранее спасибо.
  • 0
  • Просмотров: 2519
  • 27 января 2021, 15:54
  • vypchela
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

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

+
0
на 2-е
avatar

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

  • 27 января 2021, 19:45
+
0
avatar

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

  • 27 января 2021, 20:28
+
0
Спасибо, но это совсем не то. Нужно было перенести расчетную часть индикатора в советник а не сделать внешним. Хотелось увидеть как это делается, если конечно можно.
avatar

  12  vypchela Автор Сообщений: 112

  • 28 января 2021, 03:20
+
0
#resource «Indicators\Indicator.ex4»

double value=iCustom(_Symbol,_Period,"::Indicators\\Indicator.ex4",0,0);

И после компиляции советника индикатор будет не нужен, если я вас правильно понял.
Но, не надейтесь на супертренде с логикой в 2 строчки получить прибыльную систему.
Редактирован: 28 января 2021, 09:54
avatar

  7  Covax Сообщений: 17 - Covy

  • 28 января 2021, 09:52
+
0
Это все понятно, мне интересен сам перенос кода индикатора в советник но не через iCustom.
avatar

  12  vypchela Автор Сообщений: 112

  • 28 января 2021, 10:07
+
0
чтобы перенести код индикатора в советник, нужно знать логику построения индикатора. если вам известна логика, опишите ее и я перенесу.
avatar

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

  • 28 января 2021, 21:22
+
0
Как понять логику построения, есть индикатор с открытым кодом для вас думаю не составит труда понять куда и что и как можно сделать условия для покупки/продажи. Вообще тема интересная и данный пример думаю будет полезен не только меня но и для других пользователей данного ресурса.*good* 
avatar

  12  vypchela Автор Сообщений: 112

  • 29 января 2021, 08:53
+
0
Для бесплатной версии и такие советники хорошо. А вам еще и индюк туда всунь*think* 
avatar

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

  • 29 января 2021, 14:21
+
0
Ну а как, век живи и век учись.*think* 
avatar

  12  vypchela Автор Сообщений: 112

  • 29 января 2021, 15:19
+
0
Как понять логику построения, есть индикатор с открытым кодом для вас думаю не составит труда понять куда и что и как можно сделать условия для покупки/продажи. Вообще тема интересная и данный пример думаю будет полезен не только меня но и для других пользователей данного ресурса


если совсем просто, то в этом индикаторе покупки если сси>0, продажи сси<0. период cci 50.
Редактирован: 30 января 2021, 08:19
avatar

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

  • 30 января 2021, 07:51
+
0
Да, Андрей нужно время, буду искать инфо. В любом случае спасибо и извини что отнял время.
avatar

  12  vypchela Автор Сообщений: 112

  • 30 января 2021, 08:08
+
0
Да, Андрей нужно время, буду искать инфо. В любом случае спасибо и извини что отнял время.


тут нужно все построчно расшифровывать. сейчас до середины перевел на свойский.
avatar

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

  • 30 января 2021, 08:21
+
0
Если никому не интересно и сложно, заказ можно отменить.
avatar

  12  vypchela Автор Сообщений: 112

  • 29 января 2021, 15:28
+
0
avatar

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

  • 29 января 2021, 15:29
+
0
ssg, а если индикатор перенести в советник он при тестировании в тестере будет отображаться.
Или после остановки тестера будет отображаться или нет, не в курсе.
avatar

  20  alex30774 Сообщений: 748

  • 29 января 2021, 15:48
+
0
Честно говоря, я уже и не помню.Давно читал эти статьи.Надо перечитывать.
Наверняка нет.
avatar

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

  • 29 января 2021, 20:17
+
0
вот здесь все по CCI 50, плюс небольшие поправочки на период графика.

avatar

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

  • 30 января 2021, 08:26
+
0
в итоге код советника такой будет:


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

//--- Inputs
extern double Lots       = 0.1;      // лот
extern double Risk       = 2;        // риск
extern double Depo       = 10000;    // депо
extern int StopLoss      = 444;      // лось
extern int TakeProfit    = 555;      // язь
extern int Round         = 2;        // округление
extern int Shift         = 1;        // бар индикатора
extern int Slip          = 30;       // реквот
extern int Magic         = 123;      // магик

int Zero = 0;
int CCI_Period = 50;
extern int ATR_Period = 55;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   Comment("");

   switch(Period())
     {
      case PERIOD_M1:
         CCI_Period = 80;
         break;
      case PERIOD_M5:
         CCI_Period = 55;
         break;
      case PERIOD_M15:
         CCI_Period = 70;
         break;
      case PERIOD_M30:
         CCI_Period = 60;
         break;
      case PERIOD_H1:
         CCI_Period = 50;
         break;
      case PERIOD_H4:
         CCI_Period = 50;
         break;
      default:
         CCI_Period = 50;
     }
//---
   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);
     }

   if(AccountFreeMarginCheck(Symbol(),type,Lot())<=0)
     {
      Print("Недостаточно средств для открытия позиции объемом: ",Lot());
      return;
     }

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

   if(Lots==0)
     {
      lot=NormalizeDouble((AccountEquity()*Risk/100)/StopLoss,Round);
     }

   if(lot<minl)
      lot=minl;
   if(lot>maxl)
      lot=maxl;

   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()
  {
   double cci1 = iCCI(NULL, 0, CCI_Period, PRICE_TYPICAL, Shift);
   double cci2 = iCCI(NULL, 0, CCI_Period, PRICE_TYPICAL, Shift + 1);

   double SumDifHighLow = 0;
   double AverCandleHeight = 0;

   for(int i = Shift; i <= Shift + 3; i++)
      SumDifHighLow += High[i] - Low[i];

   AverCandleHeight = SumDifHighLow / 4.0;

   if(CountTrades()<1)
     {
      if(cci1>0 && cci2<0)
        {
         PutOrder(0,Ask);
        }
      if(cci1<0 && cci2>0)
        {
         PutOrder(1,Bid);
        }
     }

   Comment("\n Lot: ",NormalizeDouble((Depo*Risk/100)/StopLoss,Round));
  }
//+------------------------------------------------------------------+

avatar

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

  • 30 января 2021, 08:29
+
0
вторая половина кода индикатора влияет только на построение линий.

так будет выглядеть по сути все внедрение:


   double cci = iCCI(NULL,0,CCIPeriod,PRICE_TYPICAL,Shift);

   if(CountTrades()<1)
     {
      if(cci>0)
        {
         PutOrder(0,Ask);
        }
      if(cci<0)
        {
         PutOrder(1,Bid);
        }
     }




www.opentraders.ru/downloads/2916/

avatar

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

  • 30 января 2021, 08:45
+
0
Спасибо Андрей, принцип понятен.
avatar

  12  vypchela Автор Сообщений: 112

  • 31 января 2021, 10:50

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