0
Тогда удачи!*war* 
avatar

axe44

  • 20 мая 2020, 19:58
0
Подравить ????

Строка 328
if(CountTrades()>1 && t!=Time[0])
avatar

axe44

  • 20 мая 2020, 19:33
+2
Слегка подправил код.
Не забываем говорить спасибо!!!
Суть кода в том, что удаляет объекты при смене времени на графиках, что бы старые сигналы не накладывались на новые.
Ну, да… Индикатор тогда перерисовывает, но удаляет не нужные объекты.

int deinit()
  {//-------- удаляем объекты-----------------------------------
   int obj_total=ObjectsTotal(); 
  
   for(int i=obj_total-1;i>=0;i--) 
     { 
      string name=ObjectName(i); 
      
      ObjectDelete(name); 
     } 
   return(0);
  }  
avatar

axe44

  • 17 мая 2020, 12:04
0
Может покажется странным, но в том топике нету никаких индикаторов кроме Зиг-Зага, который по сути не индикатор, а используется для определения движения и точки перелома с очень запоздалым моментом. Вместо него можно использовать только Дневные уровни.

Я понимаю, что хочется знать какие то базовые вещи, когда покупать или продавать и что бы отображалось в углу и при этом пялиться в экран с минимальным движением.

На мкл5.сом есть полуробот от уровней. Выставил уровень на графике, он продал или купил… Так тебе лучше будет.

avatar

axe44

  • 17 мая 2020, 07:05
0
StLevel у меня не работает… Точно нужно на этом индикаторе?
avatar

axe44

  • 16 мая 2020, 21:29
0
Хочешь попробовать?
avatar

axe44

  • 14 мая 2020, 11:20
0
Этот индикатор выставляет уровни в максимумах.
У меня там где чаще всего останавливается. То есть идея в том, что если уровень остановки проходим, то перескакиваем большинство, а значит идём по движению.
Пока это на уровне индикатора. Если будет поддержка деньгами, выложу более-менее рабочую версию.
avatar

axe44

  • 14 мая 2020, 10:59
0


Доделал алгоритм. Теперь робот делает уровни автоматически в местах остановок. Если кому интересно, могу поделиться. Цена чисто символически «сколько не жалко». Обращайтесь в личку.
avatar

axe44

  • 14 мая 2020, 10:31
0
<code>
  for (i=0; i<k; i++) 
  {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && OrderMagicNumber()==Magic) 
    {
      sotOS[i][1]=++;
      
    }
  }</code>

А потом простое сложение: если больше 0 то х++
avatar

axe44

  • 10 мая 2020, 18:44
0
Ну, можешь ко мне отправить, я много не возьму.

И с Праздником Победы!!! Ё!!!

Вопрос решается в цикле подсчёта ордеров.

Если ордер не равен не одному символу из массива
Массив[i+1]=(strins)Название;
avatar

axe44

  • 9 мая 2020, 23:30
0
А что тебе мешает выдать через эту функцию остальное? Я знаю что мешает: лень
avatar

axe44

  • 9 мая 2020, 10:07
0
При подсчёте ордеров перед строчкой «ретурн()» поставь строчку «сомент (ордеров столькото);»
Благодарностей не нужно
avatar

axe44

  • 9 мая 2020, 04:51
0


Победил немного сам алгоритм.
Идея была в том что бы задать параметр поиска вычислений вверх и вниз от текущей ситуации на рынке, потом наверно сделаю построже поиск.

Сам код

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

input double Lots    = 0.1;      // лот
input int StopLoss   = 0;        // лось
input int TakeProfit = 300;      // язь
input int Slip       = 30;       // реквот
input int Magic      = 123;      // магик

input int OpLevel    = 3;        // количество уровней 

datetime t=0;
double level[100],prise,xyz,LevPrise; 
int x,y;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---//тут через цикл наверно можно проработать количество уровней double MathCeil
prise=MarketInfo(NULL,MODE_BID);; //цена 
x=0;y=x;

for ( x; x<OpLevel; x++)//запускаем цикл установок уровней
   {
   //цикл уровней вверх
   LevPrise = MathCeil(prise*100+x);//округляем уровни вверх для цен и добавляем шаг (для текущей цены шаг 1)
   xyz = LevPrise/100;
   level[y] = xyz; // тут у меня ошибка
   PutHLine((string)level[y],level[y],Red);
   y++;
   Print( LevPrise, " = LevPrise, ",xyz," = level[",y,"]");
   //цикл уровней вниз
   LevPrise = MathCeil(prise*100-x);//округляем уровни вверх для цен и добавляем шаг (для текущей цены шаг 1)
   xyz = LevPrise/100;
   level[y] = xyz; // тут у меня ошибка 
   PutHLine((string)level[y],level[y],Red);
   y++;
   Print( LevPrise, " = LevPrise, ",xyz," = level[",y,"]");
   }
//---
   return(INIT_SUCCEEDED);
  }

Но ошибка тут level[y] = xyz; // тут у меня ошибка
Дело в том что параметр xyz не присвивается в параметр level[y]. Это я проверял через принт Print( LevPrise, " = LevPrise, ",level[y]," = level[",y,"]");.

Если не сложно, помогите. Спасибо.
avatar

axe44

  • 4 мая 2020, 17:36
0
//+------------------------------------------------------------------+
//|                                                        Level.mq4 |
//|                                              Copyright 2020, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict

input double Lots    = 0.1;      // лот
input int StopLoss   = 0;        // лось
input int TakeProfit = 300;      // язь
input int Slip       = 30;       // реквот
input int Magic      = 123;      // магик

input int OpLevel    = 3;        // количество уровней 

datetime t=0;
double level[6],prise; 
int x,y,LevPrise;

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---//тут через цикл наверно можно проработать количество уровней double MathCeil
prise=Bid; //цена 
x=1;y=x;
for ( x; x<=OpLevel; x++)//запускаем цикл установок уровней
   {
   //цикл уровней вверх
   LevPrise = MathFloor(prise*100+x);//округляем уровни вверх для цен и добавляем шаг (для текущей цены шаг 1)
   level[y](string)="Level"+y; // тут у меня ошибка в названии
   PutHLine((string)level[y],LevPrise/100,Red);
   y++;
   //цикл уровней вниз
   LevPrise = MathFloor(prise*100-x);//округляем уровни вверх для цен и добавляем шаг (для текущей цены шаг 1)
   level[y]="Level"+y;// тут у меня ошибка в названии
   PutHLine((string)level[y],LevPrise/100,Red);
   y++;
   }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+

Попробовал запуск уровней через цикл… и сразу ошибки.
У меня не получается сложить название уровня с номером цикла.

Как правильно?
avatar

axe44

  • 4 мая 2020, 08:45
0
Спасибо ещё раз. Посмотрю что можно изменить и потом отпишусь
avatar

axe44

  • 4 мая 2020, 07:31
0
Да, но там в перемешку с руками. На данный момент советник продаёт евро средним объёмом 10% от баланса
avatar

axe44

  • 30 апреля 2020, 19:05