Доработка ботов (советников, индикаторов) vol. 2

sergeysv

Активный участник
Здравствуйте--
Помогите пожалуйста реализовать идею для удобства. Если это возможно конечно
Суть:-- Имеем кнопки с левой стороны чарта с порядковыми номерами шаблонов. При нажатии на кнопку на чарт загружается нужный шаблон.
С правой стороны кнопки с буквами S №1 и т.д. Возможно ли и не затруднит ли людей знающих сделать так чтоб при нажатии на кнопку S №1 автоматически без вопросов сохранялся шаблон №1 и так далее по кнопкам.
 

Вложения

  • КНОПКИ SAVE.mq4
    10,6 КБ · Просмотры: 47

marattmb

Гуру форума
Уважаемые специалисты! Хотелось бы узнать Ваше мнение. Насколько реально автоматизировать мою идею на прилагаемом скриншоте. Идея для парного трейдинга. Индикаторы OverLayChart и Bollindger Bands с отклонением 3. Цена пробивает(либо касается) противоположные крайние линии BB коррелирующих пар. Это момент для входа в позицию.
 

Вложения

  • 0.png
    0.png
    19,7 КБ · Просмотры: 224

Jesper

Прохожий
Всем привет. Можете к этому индикатору прикрутить аллерты со стрелками к данным полосам . Так что-бы цена коснувшись одной из полос сигналила на возможный разворот (что-бы аллерт был 1 раз на баре при касании) + с возможностью отключения аллертов от каждой полосы (а то при сильном тренде достанет сигналами)

prntscr.com/j8859d
 

Вложения

  • TMA with Distances S&N 1.02.ex4
    35,7 КБ · Просмотры: 56
Последнее редактирование модератором:

MrGreen86

Гуру форума
Всем привет. Можете к этому индикатору прикрутить аллерты со стрелками к данным полосам . Так что-бы цена коснувшись одной из полос сигналила на возможный разворот (что-бы аллерт был 1 раз на баре при касании) + с возможностью отключения аллертов от каждой полосы (а то при сильном тренде достанет сигналами)

prntscr.com/j8859d
Нужен исходник в формате mq4. Если у вас его нет можно дописать надстройку - второй индикатор который по данным этого индикатора будет рисовать тоже самое но с дополнением которое вы описали. В этом случае нужно будет ставить на график только надстройку, при этом если в терминале не будет первого индикатора она не будет работать.
 

MrGreen86

Гуру форума
Уважаемые специалисты! Хотелось бы узнать Ваше мнение. Насколько реально автоматизировать мою идею на прилагаемом скриншоте. Идея для парного трейдинга. Индикаторы OverLayChart и Bollindger Bands с отклонением 3. Цена пробивает(либо касается) противоположные крайние линии BB коррелирующих пар. Это момент для входа в позицию.

Вполне себе автоматизируется. В МТ4 тестировать это стандартным способом не получится. Можно сделать виртуальное тестирование при котором отчет будет в виде файла. Либо же все сделать на базе МТ5.
 

flomaster

Активный участник
Всем привет. Такой вопрос - как посчитать количество баров с момента открытия ордера до текущего момента.
 

Jesper

Прохожий
Исходник есть в следующем посту #15108 и #15109 . Администратор проверяет , вот и выкладывается не сразу
 

mobidik

-----
Всем привет. Такой вопрос - как посчитать количество баров с момента открытия ордера до текущего момента.

1) нужно найти/узнать время открытия ордера.
2) воспользоваться стандартной ф-цией iBarShift(), которая вернет значение бара на котором была открыта позиции, что будет равносильно количество баров с момента открытия ордера до текущего момента.
 

griny79

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

Вложения

  • HMA Color.mq4
    3,5 КБ · Просмотры: 20

MrGreen86

Гуру форума
Уважаемые специалисты!Помогите пожалуйста сделать буфер обмена по цветам индикатору.

там все проще. вам нужен 1 и 3 буфер.
если на 1 !=EMPTY_VALUE && 3 ==EMPTY_VALUE то тренд бай, цвет зеленый
если на 1 ==EMPTY_VALUE && 3 !=EMPTY_VALUE то тренд селл, цвет
красный.

надо проверять оба так как в переходные моменты они оба имеют значения, но еще не факт что тренд сменится.
 

sergeysv

Активный участник
Подскажите ,пожалуйста, как скрины закрытых ордеров по папкам разложить ?
string ord="",LP="",FL="",DATA="";
// ПАРА _Symbol

// ПАПКА МЕСЯЦ
DATA = TimeToStr(TIME_DATE );
// DATA ={"ЯНВАРЬ ","ФЕВРАЛЬ ","МАРТ ","АПРЕЛЬ ","МАЙ ","ИЮНЬ ","ИЮЛЬ ",
// "АВГУСТ ","СЕНТЯБРЬ ","ОКТЯБРЬ ","НОЯБРЬ ","ДЕКАБРЬ " };

// ПАПКА ПРОФИТ ЛОСС
if(OrderProfit()<0)LP="LOSS"; else LP="PROFIT";

// ПАПКА БАЙ ИЛИ СЕЛ
if(OrderType()==0)FL="BUY"; if(OrderType()==1)FL="SELL";

// ОПИСАНИЕ СКРИНА
if(OrderType()==0)ord="BUY"; if(OrderType()==1)ord="SELL";
string name1= ord+" # "+(string)OrderTicket()+" "
+TimeToStr(OrderCloseTime(),TIME_MINUTES )+".gif";

StringReplace(DATA,":",".");
StringReplace(name1,":",".");
WindowScreenShot(_Symbol+"/"+DATA+"/"+LP+" "+FL+"" +name1,Width,Hight);
P.S.Куралесю как могу а оно не куралесится :)
 

Вложения

  • СКРИНОТЕНЬ.jpg
    СКРИНОТЕНЬ.jpg
    56,8 КБ · Просмотры: 50

mobidik

-----
Подскажите ,пожалуйста, как скрины закрытых ордеров по папкам разложить ?
string ord="",LP="",FL="",DATA="";
// ПАРА _Symbol

// ПАПКА МЕСЯЦ
DATA = TimeToStr(TIME_DATE );
// DATA ={"ЯНВАРЬ ","ФЕВРАЛЬ ","МАРТ ","АПРЕЛЬ ","МАЙ ","ИЮНЬ ","ИЮЛЬ ",
// "АВГУСТ ","СЕНТЯБРЬ ","ОКТЯБРЬ ","НОЯБРЬ ","ДЕКАБРЬ " };

// ПАПКА ПРОФИТ ЛОСС
if(OrderProfit()<0)LP="LOSS"; else LP="PROFIT";

// ПАПКА БАЙ ИЛИ СЕЛ
if(OrderType()==0)FL="BUY"; if(OrderType()==1)FL="SELL";

// ОПИСАНИЕ СКРИНА
if(OrderType()==0)ord="BUY"; if(OrderType()==1)ord="SELL";
string name1= ord+" # "+(string)OrderTicket()+" "
+TimeToStr(OrderCloseTime(),TIME_MINUTES )+".gif";

StringReplace(DATA,":",".");
StringReplace(name1,":",".");
WindowScreenShot(_Symbol+"/"+DATA+"/"+LP+" "+FL+"" +name1,Width,Hight);
P.S.Куралесю как могу а оно не куралесится :)

Держи, для создания скрина нужно вызвать ф-цию ScreenOrderTicket(нужный Ticket); и передать её нужный тикет ордера в момент закрытия, по истории нет поиска, но и тебе нужны только папки...
Вся остальная инфа по ордеру будет определена в этой ф-ции. Вторая ф-ция нужна для преобразования даты.
PHP:
//+------------------------------------------------------------------+
//| Screen Order Ticket                                              |
//+------------------------------------------------------------------+
void ScreenOrderTicket(int oTicket)
  {
    string ПапкаСимвол   = "";
    string ПапкаМесяц    = "";
    string ПапкаПрофЛось = "";
    string ПапкаТипОрдер = "";
    
    int      oType   = -1;
    double   oProfit = 0;
    datetime oCTime  = -1;
    string   oSymbol = "";
    
    if(OrderSelect(oTicket,SELECT_BY_TICKET,MODE_HISTORY))
     {
       oSymbol = OrderSymbol();
       oType   = OrderType();
       oProfit = OrderProfit();
       oCTime  = OrderCloseTime();
     }
    
    if(oSymbol!="") ПапкаСимвол = oSymbol;
    
    if(oCTime !=-1)
     {
       switch(TimeMonth(oCTime))
        {
          case 1:   ПапкаМесяц  = "Январь";   break;
          case 2:   ПапкаМесяц  = "Февраль";  break;
          case 3:   ПапкаМесяц  = "Март";     break;
          case 4:   ПапкаМесяц  = "Апрель";   break;
          case 5:   ПапкаМесяц  = "Май";      break;
          case 6:   ПапкаМесяц  = "Июнь";     break;
          case 7:   ПапкаМесяц  = "Июль";     break;
          case 8:   ПапкаМесяц  = "Август";   break;
          case 9:   ПапкаМесяц  = "Сентябрь"; break;
          case 10:  ПапкаМесяц  = "Октябрь";  break;
          case 11:  ПапкаМесяц  = "Ноябрь";   break;
          default:  ПапкаМесяц  = "Декабрь";  break;
        }  
     }
     
    if(oProfit>=0)     ПапкаПрофЛось = "Профит"; else ПапкаПрофЛось = "Лось";
    if(oType==OP_BUY)  ПапкаТипОрдер = "BUY";
    if(oType==OP_SELL) ПапкаТипОрдер = "SELL";
    
    string data = StrData(TimeToStr(oCTime));
    string FileName = StringConcatenate(oSymbol," - ",oTicket," - ",data);
    string PathFile = oSymbol+"\\"+ПапкаМесяц+"\\"+ПапкаПрофЛось+"\\"+ПапкаТипОрдер+"\\"+FileName;
    
    WindowScreenShot(PathFile+".gif",1366,768);
  }
//+------------------------------------------------------------------+
//| Str Data                                                         |
//+------------------------------------------------------------------+
string StrData(string dt)
  {
    string outdt  = "";
    string tempdt = "";
    
    for(int i=0; i<StringLen(dt); i++)
     {
       tempdt = StringSubstr(dt,i,StringLen(":"));
       if(tempdt==":") outdt = outdt+"."; else outdt = outdt+StringSubstr(dt,i,1);
     }
    return(outdt);
  }
//+------------------------------------------------------------------+
 

sergeysv

Активный участник
Держи, для создания скрина нужно вызвать ф-цию ScreenOrderTicket(нужный Ticket);
Применил к своей функции void--- критических ошибок нет а там будем посмотреть:)

2CGUTLu.png
 

MrGreen86

Гуру форума
Всем привет. Можете к этому индикатору прикрутить аллерты со стрелками к данным полосам . Так что-бы цена коснувшись одной из полос сигналила на возможный разворот (что-бы аллерт был 1 раз на баре при касании) + с возможностью отключения аллертов от каждой полосы (а то при сильном тренде достанет сигналами)

prntscr.com/j8859d

готово, настройки отображения стрелок и сигналов по ним в самом конце.
стрелки и сигналы сгрупированы по линиям.
High - синяя и красная
Mid (Middle) - голубая и томатная
Low - серебристые.
Посмотреть вложение TMA with Distances S&N 1.02_signal.mq4
 

malojorsk

Новичок форума
Сделайте пожалуйста в индикаторе расчет МА2 от МА1
 

Вложения

  • ma of ma.mq4
    2,6 КБ · Просмотры: 32

erakon

Интересующийся
Просьба осуществить доработку индикатора NoLoss v5.1
добавив туда:

1. Показ прибыли по всем Buy и Sell ордерам в п. по 5-знаку или 4х-знаку с
десятой после запятой - доп. к прибыли в $ к-я есть там.
Sell 2 -20.00$ -10.0р 0.20L
Buy 5 60.00$ 12.0р 0.50L
2. Показ в строке с Margin Call:
Margin Call 148.933 3200п. +40.0$ +80.53$(прибыль по всему счету из терминала, +40.0 - прибыль по инструменту )

3. Учет суммы спред+комиссия+своп в расчёте средней цены для Buy и Sell ордеров. (строки кода с р-том средних цен)
4. Задание в параметрах предельной просадки по эквити(средствам) в % (параметр) и вывод в окно линии уровня этой просадки
+ алерт при достижении средств этого уровня в т.ч. с отправкой по е-майл (да/нет).
5. Показ линии Margin Call на графике с выделением цветом зоны графика "за чертой Margin Call".

Будет для всех ТС отличный, полезный, более полный индикатор контроля за ордерами и счётом!

N7Lfc8gS.png
 

Вложения

  • NoLoss v5.1.mq4
    7,8 КБ · Просмотры: 56

vaas04

$$$$$$$$$
Всем привет. Ребят кто хорошо разбирается в отображении объектов, посмотрите инди плиз. Не фурычит автообновление а в мтф вообще беда. Сам по себе инди очень хорошо считает уровни. Авторефраш ставить не хочется, спасибо.
 

Вложения

  • SupDem_4z.mq4
    18,5 КБ · Просмотры: 54
Верх