0
Лучше этот «например» нарисовать скриншотом.
avatar

work2it

  • 4 ноября 2017, 00:35
0
Позвольте… А как вы прогоняете ренко-график на истории? Насколько мне известно, оффлайн график в тестере MT4 прогнать нельзя. в MT5 такого понятия нет совсем…
avatar

work2it

  • 3 ноября 2017, 10:55
0
Хорошо бы проверить результаты исполнения OrderSend, OrderClose и, хотя бы, вывести на печать _LastError.
И совсем не понятно упоминание про excel…
avatar

work2it

  • 15 октября 2017, 17:52
+1
Они могут… Сначала принять закон, а после обсуждать его со специалистами. Достаточно вспомнить про зимнюю резину для грузовиков…
А на счет биткоинов — мыльный пузырь, который ничем не обеспечен и в недалеком будущем лопнет сам. Регулятор не будет заниматься этой мифической валютой, т.к. не сможет обеспечить гарантию средств инвесторов.
avatar

work2it

  • 12 октября 2017, 19:41
+2
Характерные признаки декомпиллированного кода — наличие огромного количества «нечеловеческих» переменных с префиксами Gi_, Gd_, Gs_ и т.п. Не один программист не будет так именовать переменные — сам голову сломает. Про бан на mql5 я пишу то, что знаю (сам попадал по неопытности). Открытый код этой программы — результат декомпилляции. Если здесь найдется программист, не уважающий труд себе подобных — вперед. Но нужно помнить золотую фразу: обходись с людьми так, как ты хотел бы, чтобы обходились с тобой.
avatar

work2it

  • 12 октября 2017, 17:52
+1
Программа, прицепленная к топику является откровенным декомпиллом.
Вообще-то, за согласие работы с декомпиллированным кодом, на MQL5 программистов выносят в бан. Аналогично, как и заказчиков.
Уважающие себя программисты не будут заниматься с таким кодом.
avatar

work2it

  • 11 октября 2017, 05:47
0
Да никто не подлечит, кроме АМ2. Похоже здесь только он может чего-то выкладывать…
avatar

work2it

  • 10 октября 2017, 16:12
0
Как-то все здесь сложно с загрузкой файлов.
avatar

work2it

  • 25 сентября 2017, 19:31
0
Индикатор перерисовывается на нулевом баре — может несколько раз показать красный/синий. Какой бар должен быть сигнальным? Нулевой или первый?
avatar

work2it

  • 25 сентября 2017, 17:19
0
Будет спрос — будет предложение.
avatar

work2it

  • 11 сентября 2017, 03:32
0
Как сигнал-то должен формироваться? Приведите скриншот для примера.
avatar

work2it

  • 8 июня 2017, 01:16
0
Вводите в параметры время начала и длительность в барах. Тогда будет не важен переход через полночь.
avatar

work2it

  • 2 июня 2017, 03:27
0
#property indicator_chart_window //Назначаем окно для вывода графика (там, где бары)
#property indicator_buffers 5 //Выделяем для индикатора три буфера
#property indicator_color1 DodgerBlue //Назначаем цвет для отображения данных 1 буфера
#property indicator_color2 DodgerBlue //Назначаем цвет для отображения данных 2 буфера
#property indicator_color3 DodgerBlue //Назначаем цвет для отображения данных 3 буфера
#property indicator_color4 Red //Назначаем цвет для up стрелки
#property indicator_color5 Yellow //Назначаем цвет для Down стрелки
//---- input parameters //объявление вводимых внешних параметров
extern int Range=14; //по умолчанию вводимое значение равно 14
extern int Distance_to_the_arrow=10;//Расстояние до стрелки
extern int Size_arrow=3;//Размер стрелки
extern bool Alerts=true;//ВКЛ/Выкл Алерт.
extern bool Emails=true;//ВКЛ/Выкл Email.
extern int Shift=0;//Смещение сигнала
extern int Proboi_Punkts=5;
//---- buffers
double UpBuffer[]; //обявление переменной UpBuffer типа "массив с плавающей точкой"
double DnBuffer[]; //обявление переменной DnBuffer типа "массив с плавающей точкой"
double MdBuffer[]; //обявление переменной MdBuffer типа "массив с плавающей точкой"
double G_ibuf_92[];
double G_ibuf_96[];

int Barr;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init() //инициализация переменных
  {
  
   if (Digits == 3 || Digits == 5)
        {
        Proboi_Punkts=Proboi_Punkts*10;
        }
  
   string short_name; //обявление переменной short_name типа "строковый"
//---- indicator line
   SetIndexStyle(0,DRAW_LINE,1,2); //установка стиля для первого значения индикатора
   SetIndexStyle(1,DRAW_LINE,1,2); //установка стиля для второго значения индикатора
   SetIndexStyle(2,DRAW_LINE,2); //установка стиля для третьего значения индикатора
   SetIndexBuffer(0,UpBuffer); //значение записываемое в 0 буфер равно переменной UpBuffer
   SetIndexBuffer(1,DnBuffer); //значение записываемое в 1 буфер равно переменной DnBuffer
   SetIndexBuffer(2,MdBuffer); //значение записываемое в 2 буфер равно переменной MdBuffer
   SetIndexStyle(4, DRAW_ARROW, STYLE_SOLID, Size_arrow);
   SetIndexStyle(3, DRAW_ARROW, STYLE_SOLID, Size_arrow);
   SetIndexArrow(4, 233);
   SetIndexArrow(3, 234);
   SetIndexBuffer(4, G_ibuf_92);
   SetIndexBuffer(3, G_ibuf_96);
//---- name for DataWindow and indicator subwindow label
   short_name="PriceChannel("+Range+")";  //переменной short_name присваиваем строковое
                                                  //значение равное выражению
   IndicatorShortName(short_name);  //для отображения на графике присвоим индикатору краткое
                                    //наименование
   SetIndexLabel(0,"Up Channel");   //для отображения на графике присвоим метке отображающей
                                    //значения 0 буфера имя Up Channel
   SetIndexLabel(1,"Down Channel"); //для отображения на графике присвоим метке отображающей
                                    //значения 1 буфера имя Down Channel
   SetIndexLabel(2,"Middle Channel"); //для отображения на графике присвоим метке отображающей
                                      //значения 2 буфера имя Middle Channel
//----
   SetIndexDrawBegin(0,0); //установка начальной точки прорисовки для 0 буфера
   SetIndexDrawBegin(1,0); //установка начальной точки прорисовки для 1 буфера
   SetIndexDrawBegin(2,0); //установка начальной точки прорисовки для 2 буфера
//----
   return(INIT_SUCCEEDED); //возврат из секции инициализации
  }
//+------------------------------------------------------------------+
//| PriceChannel                                                     |
//+------------------------------------------------------------------+
int start() //начало программы (расчета)
  {
   int i; //объявление целочисленной переменной i,k,sch

//----
   
   for(i=Bars-1;i>=0;i--)
   {
      UpBuffer[i]=High[Highest(NULL,0,MODE_UPPER,Range,i)];
      DnBuffer[i]=Low[Lowest(NULL,0,MODE_LOWER,Range,i)];
      MdBuffer[i]=(UpBuffer[i]+DnBuffer[i])/2;
      if(Iminn(i+Shift)<DnBuffer[i+Shift] &&DnBuffer[i+Shift]-Iminn(i+Shift)>=Proboi_Punkts*Point )G_ibuf_92[i]=Iminn(i)-Distance_to_the_arrow*Point;
      if(Imaxx(i+Shift)>UpBuffer[i+Shift] &&Imaxx(i+Shift)-UpBuffer[i+Shift]>=Proboi_Punkts*Point)G_ibuf_96[i]=Imaxx(i)+Distance_to_the_arrow*Point;
   }
   
   
   if(Iminn(Shift)<DnBuffer[Shift]&&DnBuffer[Shift]-Bid>=Proboi_Punkts*Point)
   {
   G_ibuf_92[0]=Iminn(0)-Distance_to_the_arrow*Point;
   if(Barr!=Bars)
   {
   string Comm=Symbol()+";"+f0_0(Period())+";"+"UP ";
   if(Alerts)Alert(Comm);
   if(Emails)SendMail(Comm,Comm+Close[0]);
   Barr=Bars;
   }
   }
   
   if(Imaxx(Shift)>UpBuffer[Shift]&&Bid-UpBuffer[Shift]>=Proboi_Punkts*Point)
   {
   G_ibuf_96[0]=Imaxx(0)+Distance_to_the_arrow*Point;
    if(Barr!=Bars)
   {
    Comm=Symbol()+";"+f0_0(Period())+";"+"Down ";
   if(Alerts)Alert(Comm);
   if(Emails)SendMail(Comm,Comm+Close[0]);
   Barr=Bars;
   }
   }
   return(0);
  }
//+------------------------------------------------------------------+
string f0_0(int Ai_0) {
   if (Ai_0 == 1) return ("M1");
   if (Ai_0 == 5) return ("M5");
   if (Ai_0 == 15) return ("M15");
   if (Ai_0 == 30) return ("M30");
   if (Ai_0 == 60) return ("H1");
   if (Ai_0 == 240) return ("H4");
   if (Ai_0 == 1440) return ("D1");
   if (Ai_0 == 10080) return ("W1");
   if (Ai_0 == 43200) return ("MN1");
   return ("");
}


 double Imaxx(int Per)
   {double perr;
    perr = NormalizeDouble (iHigh(Symbol(),0,Per),Digits);
    return (perr);
   }
   //---Миниму--//
   double Iminn(int Per)
   {double perr;
    perr = NormalizeDouble (iLow(Symbol(),0,Per),Digits);
    return (perr);
   }
   //--Цена открытия--//
   double Cotkr(int Per)
   {double perr;
    perr = NormalizeDouble (iOpen(Symbol(),0,Per),Digits);
    return (perr);
    }
    //--Цена закрытия--//
    double Czakr(int Per)
   {double perr;
    perr = NormalizeDouble (iClose(Symbol(),0,Per),Digits);
    return (perr);
   }
avatar

work2it

  • 29 апреля 2017, 06:22
0
наращиваем объем по тренду

Нет основного — определения тренда и сигнала на открытие первого ордера серии.
avatar

work2it

  • 27 апреля 2017, 16:25
0
(Сумма тел положительных свечей)^(1/Н)

^ — это что за знак? степень?
Всё определяет цена и надёжность соединения с интеренетом )))

И эта фраза понравилась… Неужели проблема только с доступом в интернет? Здесь, кстати, VPS дают бесплатно для теста советников…
avatar

work2it

  • 27 апреля 2017, 15:18
0
Не понятно ваше понимание задачи. Не хочется делать чего-нибудь, а после выяснять что что-то сделано не так. Тем более не хочется додумывать задание. Приветите скриншоты. Что в вашем понимании пробой, что отскок? какой из кучи линий индикатора является значимым?
avatar

work2it

  • 24 апреля 2017, 03:31
+1
Как должен вести себя советник, если на момент установки ордеров цена уже выше/ниже экстремумов?
avatar

work2it

  • 23 апреля 2017, 08:40
0
Важно не то, как сделка открывается — важнее то, как она сопровождается. Если в вашем случае цена чуть откатилась и вернулась, то суммарная позиция закроется по усреднению.
А если нет… И цена провалилась… Плакал ваш депо…
avatar

work2it

  • 21 апреля 2017, 18:26