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

Рейтинг 2073



РЕКОМЕНДУЮ



Конвертация

Доброе время суток!

Так все-таки можно попросить конвертировать в MQL5? Очень надо!

88_signal_2_1.mq4 (15 Kb)
  • 0
  • Просмотров: 2283
  • 23 июля 2021, 05:10
  • sekretometrT
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

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

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

+
0
тз рассмотрю
avatar

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

  • 23 июля 2021, 18:25
+
0
если в задании ничего не указывается, значит свобода творчества приветствуется :D 



www.opentraders.ru/downloads/3065/
avatar

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

  • 24 июля 2021, 09:27
+
0
А что надо указывать в задании, если я просто просила переделать индикатор для торговли под МТ5. Я же не просила ничего не убирать, ничего не добавлять. Просто переписать, как есть, один в один с образцом, под МТ5. Эти круглые уровни совершенно не нужны!!!
И отсутствуют значения индикатора как в mql4.


Редактирован: 24 июля 2021, 12:18
avatar

  11  sekretometrT Автор Сообщений: 177 - sekretometrT

  • 24 июля 2021, 12:01
+
+1
я просил описать логику индикатора. посмотрел код и увидел что 88 сигнал основан на пересечении ценой круглых уровней и написал свой вариант.

перед этим нанес уровни на график и увидел стрелки после пересечения их ценой.



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

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

  • 24 июля 2021, 12:28
+
0
Вах, молодец!
avatar

  24  ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.

  • 24 июля 2021, 14:22
+
0
он и для МТ4 также подходит, только сохранить надо в другом формате
avatar

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

  • 24 июля 2021, 16:03
+
0
извините как его сохранить в другом формате?
avatar

  11  lukich555 Сообщений: 41

  • 25 июля 2021, 21:23
+
0
создайте новый индикатор в МТ4, скопируйте туда код и скомпилировать
avatar

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

  • 26 июля 2021, 07:51
+
0
вот только что сам все это проделал:




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

#property indicator_buffers 2
#property indicator_plots 2

#property indicator_label1  "Signal UP"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLime
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2

#property indicator_label2  "Signal DN"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrRed
#property indicator_style2  STYLE_SOLID
#property indicator_width2  2

input int step=500;

double up[],dn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,up,INDICATOR_DATA);
   PlotIndexSetInteger(0,PLOT_ARROW,233);

   SetIndexBuffer(1,dn,INDICATOR_DATA);
   PlotIndexSetInteger(1,PLOT_ARROW,234);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
   ObjectsDeleteAll(0,0,OBJ_HLINE);
  }
//+------------------------------------------------------------------+
//| Горизонтальная линия                                             |
//+------------------------------------------------------------------+
void PutHLine(string name,double p,color clr=Red)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_HLINE,0,0,p);
//--- установим цвет линии
   ObjectSetInteger(0,name,OBJPROP_COLOR,clr);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,2);
//--- скроем (true) или отобразим (false) имя графического объекта в списке объектов
   ObjectSetInteger(0,name,OBJPROP_HIDDEN,0);
//--- включим (true) или отключим (false) режим перемещения линии мышью
//--- при создании графического объекта функцией ObjectCreate, по умолчанию объект
//--- нельзя выделить и перемещать. Внутри же этого метода параметр selection
//--- по умолчанию равен true, что позволяет выделять и перемещать этот объект
   ObjectSetInteger(0,name,OBJPROP_SELECTABLE,1);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   double a=MathMod(iClose(NULL,0,0)/_Point,step);
   double b=iClose(NULL,0,0)-a*_Point;
   double c=b+step*_Point;

   PutHLine("Round Level 1",b,Lime);
   PutHLine("Round Level 2",c,Tomato);

   for(int i=0; i<=rates_total-1; i++)
     {
      if(close[i]>b && open[i]<b)
        {
         up[i]=low[i];
        }
      if(close[i]<c && open[i]>c)
        {
         dn[i]=high[i];
        }
     }

   Comment("\n Round Level 1: ",b,
           "\n Round Level 2: ",c);


//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+

avatar

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

  • 26 июля 2021, 08:28
+
0
Посмотрите в коде индикатора 88_signal_2_1.mq4 эти строки и Вы все поймете:

int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
double up, dn;
int indexUp=0, indexDn=0;
bool condRL=false;
//int digitHi, digitLo;
string kruglash = "";
//double mult = 1;
bool inZone = false;
int limit, counted_bars = IndicatorCounted();
if(counted_bars < 0)
return(-1);
//if(Digits == 5 || Digits == 4) mult = 100;
//if(Digits == 3 || Digits == 2) mult = 1;

limit = HistoryBars;
//Print(" limit = ", limit);
if(Bars < HistoryBars + Len)
{
Print(" Мало баров. Bars = ", Bars);
return(0);
}
for(int i = limit; i >=0; i--)
{
IndBufUp[i] = iCustom(NULL,0, «89_filter», Len, HistoryBars, SignalLevel, 0,i);
IndBufDn[i] = iCustom(NULL,0, «89_filter», Len, HistoryBars, SignalLevel, 1,i);
}
for(int i = limit; i >=0; i--)
{
up = IndBufUp[i];
dn = IndBufDn[i];

Думаю сейчас Вы поняли принцип работы индюка. А 89_filter у Вас уже есть!!! Или 88_filter, их по разному обзывают!
Редактирован: 26 июля 2021, 13:23
avatar

  20  nonych Сообщений: 125 - Евгеша

  • 26 июля 2021, 13:19

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